import xlsxwriter
workbook = xlsxwriter.Workbook("background.xlsx")
worksheet = workbook.add_worksheet()
# Set the background image.
worksheet.set_background("logo.png")
workbook.close()
import pandas as pd
import io, os
try:
bio = io.BytesIO()
writer = pd.ExcelWriter(bio, engine="xlsxwriter", options={"strings_to_urls": False})
if report_data:
for num, sheet_name in enumerate(base_sheet_name):
if sheet_name == "基本信息":
temp_logs, columns = parse_base_data(report_data=report_data)
else:
continue
df = pd.DataFrame(data=temp_logs, columns=columns)
df.to_excel(writer, index=False, sheet_name=f"{sheet_name}")
workbook = writer.book
worksheet = writer.sheets[f'{sheet_name}']
if watermark_logo and os.path.exists(watermark_logo):
worksheet.set_background(watermark_logo)
for idx in range(df.shape[1]):
if idx in [0]:
else:
worksheet.set_column(idx, idx, 30)
# worksheet.freeze_panes(col=1, row=1) # 冻结首行
config_dict = {
'font_color': '#000000',
'bold': True,
'align': 'center',
'border': 1,
}
# excel需要设置颜色 csv不需要
if not file_type:
config_dict['bg_color'] = '#5B9DD5'
header_format = workbook.add_format(config_dict)
for col_num, value in enumerate(df.columns.values):
worksheet.write(0, col_num, value, header_format)
# break
else:
raise
writer.save()
bio.seek(0)
except Exception as e:
logger.log('ERROR', f'导出Excel出错原因:{e}')
raise
return bio