Как записать формат для диапазона ячеек.
То, что я делаю, - это циклический переход по именам столбцов в списке из оракула и форматирование столбцов как дат, где имя столбца начинается с «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()