栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python xlsxwriter写入Excel插入图片

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python xlsxwriter写入Excel插入图片

import xlsxwriter
def write_excel(file_name, data_list):
    '''
    :param file_name:  D:/new.xlsx
    :param data_list: {'shot': shot_list}
    :return: 
    '''
    col_list = ['A', 'B', 'C', 'D', 'E']
    workbook = xlsxwriter.Workbook(file_name)
    worksheet = workbook.add_worksheet()
    worksheet.write('A1', u'a')
    worksheet.write('B1', u'b')
    worksheet.write('C1', u'c')
    worksheet.write('D1', u'd')
    worksheet.write('E1', u'e')
    for m, goods_info_dict in enumerate(data_list):
        shot = goods_info_dict['shot']
        user = goods_info_dict['user']
        time = goods_info_dict['time']
        note_list = goods_info_dict['note']
        if note_list:
            note = note_list[0].decode('gbk') # 中文转码
        else:
            note = ''
        image = goods_info_dict['image']
        if image:
            worksheet.set_column(0, 8, 20)  # 设置列宽20cm
            h_list = []
            for img in image:
                im = Image.open(img)  # 返回一个Image对象 img为图片的绝对路径
                h_list.append(im.size[1])
            h_list.sort(reverse=True)

            worksheet.set_row(m + 1, h_list[0]*0.25)  # 设置最大图片的高为行高
        else:
            worksheet.set_row(m + 1, 30)
            worksheet.set_column(0, 8, 20)  # 设置列宽20cm
        for n in range(5):  # 列
            if n == 0:
                worksheet.write(str(col_list[n]) + str(m + 2), shot)
            elif n == 1:
                worksheet.write(str(col_list[n]) + str(m + 2), user)
            elif n == 2:
                worksheet.write(str(col_list[n]) + str(m + 2), time)
            elif n == 3:
                worksheet.write(str(col_list[n]) + str(m + 2), note)
            elif n == 4:
                try:
                    for i in range(0, len(image)):
                        if i != 0:
                            im = Image.open(image[i-1])  # 返回一个Image对象
                            x_offset = im.size[0] * i * 0.3 + 20
                        else:
                            x_offset = 0
                        param = {'x_offset': x_offset, 'y_offset': 0, 'x_scale': 0.3, 'y_scale': 0.3}# 设置偏移和缩放
                        worksheet.insert_image(str(col_list[n]) + str(m + 2), image[i], param)
                except Exception as e:
                    print(e)
    workbook.close()
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/275582.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号