定义不同的pandas xlsxwriter边框类型

时间:2018-04-10 14:40:24

标签: python pandas xlsxwriter

我想用xlsxwriter定义底边界的不同强度。我的问题是:如何在下面的示例中防止厚底HEADER边界被覆盖? 我想指出,如果我稍后使用条件格式开始一行,我会得到一行没有底边框。

_UpdateTimerClock = new DispatcherTimer();
_UpdateTimerClock.Interval = new TimeSpan(0, 0, 6);
_UpdateTimerClock.IsEnabled = true;
_UpdateTimerClock.Tick += UpdateTimerClockElapsed;


public void UpdateTimerClockElapsed(object tag, EventArgs args)
{
    try
    {
        Messenger.Default.Send(new NotificationViewModelRefresh());
    }
    catch (Exception err)
    {
        BusinessLogger.Manage(err);
    }
}

Thx&亲切的问候

1 个答案:

答案 0 :(得分:3)

我在下面提供了一种解决方法。我为第二行添加了另一种条件格式,仅称为' format2'。它将细胞的顶部设置为粗边框,底部设置为虚线。

import numpy as np
import pandas as pd

dates = pd.DataFrame(pd.date_range('2000-01-01', periods = 15), columns = ['date'])
d = pd.DataFrame(np.random.randint(1, 5, (15, 3)), columns = list('abc'))
d = pd.concat([dates, d], axis = 1)

writer = pd.ExcelWriter('dates_border.xlsx',
                    #OR: 'c:\\users\\USER_NAME\\desktop\\dates_border.xlsx',
                    datetime_format='yyyy.mm') 
d.to_excel(writer, 'Sheet1', index = False)
worksheet = writer.sheets['Sheet1']
workbook  = writer.book

# header: I LOSE THE THICK BOTTOM BORDER OF THE HEADER
header_format = workbook.add_format({'bottom': 2, 'bg_color': '#F9DA04'})
for col_num, value in enumerate(d.columns.values):
    worksheet.write(0, col_num, value, header_format)

# data with bottom borders
format1 = workbook.add_format()
format1.set_bottom(7)

#snippet added to op script
format2 = workbook.add_format()
format2.set_top(2)
format2.set_bottom(7)

worksheet.conditional_format(1, 0, 1, d.shape[1] -1,
{'type': 'cell',
 'criteria': '<>',
 'value': '""',
 'format': format2})
#end of snippet added to op script

worksheet.conditional_format(1, 0, d.shape[0], d.shape[1] -1,
{'type': 'cell',
 'criteria': '<>',
 'value': '""',
 'format': format1})

writer.save()

预期输出:

Expected Output

相关问题