python操作excel设置图片水印 xlsxwriter 或者pandas


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
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值