【发布时间】:2019-06-20 15:00:09
【问题描述】:
如何将格式写入一系列单元格。
我正在做的是循环遍历 oracle 列表中的列名,并将列格式化为日期,其中列名以“DT”开头。但是我也想让整个数据范围都有边框。
我想真正将日期格式应用于列,然后单独应用边框...但最后一个格式应用获胜,并且边框的应用会覆盖列上的日期格式。
理想情况下,我想用边框爆炸数据范围,然后将日期格式应用于日期列,同时保留边框。
您可以像在 VBA 中那样选择一个范围然后应用格式或进行范围交叉吗?
# Generate EXCEL File
xl_filename = "DQ_Valid_Status_Check.xlsx"
workbook = xlsxwriter.Workbook(xl_filename)
# Add a bold format to use to highlight cells.
bold = workbook.add_format({'bold': True})
date_format = workbook.add_format(
{'num_format': 'dd-mmm-yyyy hh:mm:ss'})
border = workbook.add_format()
border.set_bottom()
border.set_top()
border.set_left()
border.set_right()
worksheet_info = workbook.add_worksheet()
worksheet_info.name = "Information"
worksheet_info.write('A1', 'Report Description:', bold)
worksheet_info.write('B1', 'ARIEL Data Quality Report for Checking Authorisation Status of Marketing Applications')
worksheet_info.write('A2', 'Report Date:', bold)
worksheet_info.write('B2', datetime.datetime.now(), date_format)
worksheet_data = workbook.add_worksheet()
worksheet_data.name = "DQ Report"
worksheet_data.write_row('A1', col_names)
for i in range(len(results)):
print("result " + str(i) + ' of' + str(len(results)))
print(results[i])
worksheet_data.write_row('A' + str(i + 2), results[i])
#worksheet_data.set_row(i + 2, None, border)
# add borders
for i in range(len(results)):
worksheet_data.set_row(i + 2, None, border)
# format date columns
for i in range(len(col_names)):
col_name = col_names[i]
if col_name.startswith("DT"):
print(col_name)
worksheet_data.set_column(i, i, None, date_format)
workbook.close()
【问题讨论】:
标签: python excel xlsxwriter