zoukankan      html  css  js  c++  java
  • excel表格支持带图片的导出

    1.概述

    #1,设置导出的表格列名字,默认图片在第一列
    #2,需要导出的内容,img_url 字段名不能变
    #3,导出的文件存放地址
    #4,开始导出
     1 import xlsxwriter,os
     2 from datetime import datetime
     3 from io import BytesIO
     4 from urllib.request import urlopen
     5 
     6 
     7 
     8 def exportUnfishImgTask(head_dict,boday_items,path):
     9     if not os.path.exists(path):
    10         os.makedirs(path)
    11 
    12     filename = "batchExport-{0}.xls".format(datetime.strftime(datetime.now(), "%Y%m%d%H%M%S"))
    13     workbook = xlsxwriter.Workbook(os.path.join(path,filename))
    14     worksheet = workbook.add_worksheet()
    15 
    16     worksheet.write(0, 0, "IMG")
    17     worksheet.set_column(0, 0, 40)
    18     for num, filed in head_dict.items():
    19         worksheet.write(0, num + 1, filed)
    20         worksheet.set_column(0, num + 1, 40)
    21 
    22     for i in range(len(boday_items)):
    23         worksheet.set_row(i + 1, 200)
    24         img_url = boday_items[i]['img_url']
    25         if img_url != '':
    26             try:
    27                 img_data = BytesIO(urlopen(img_url).read())
    28                 worksheet.insert_image(i + 1, 0, img_url,
    29                                        {'image_data': img_data, 'x_scale': 0.25, 'y_scale': 0.25, 'object_position': 1})
    30             except Exception as e:
    31                 worksheet.write(i + 1, 0, img_url)
    32         else:
    33             worksheet.write(i + 1, 0, '')
    34         for num, filed in head_dict.items():
    35             row_item = boday_items[i]
    36             worksheet.write(i + 1, num + 1, row_item[filed])
    37     workbook.close()
    38     return filename
    39 
    40 
    41 
    42 if __name__ == '__main__':
    43     #1,设置导出的表格列名字,默认图片在第一列
    44     head_filed = ['IMG','A','B','C','D']
    45     #2,需要导出的内容,img_url 字段名不能变
    46     export_items = [
    47                     {'img_url':'https://www.baidu.1.jpg','A':'aaa1','B':'bbb1','C':'cccc1',"D":'ddd1'},
    48                     {'img_url':'https://www.baidu.2.jpg','A':'aaa2','B':'bbb2','C':'cccc2',"D":'ddd2'},
    49                     {'img_url':'https://www.baidu.3.jpg','A':'aaa3','B':'bbb3','C':'cccc3',"D":'ddd3'},
    50                     ]
    51     #3,导出的文件存放地址
    52     export_path_dir = '/home/user/Descktop/export'
    53 
    54     #4,开始导出
    55     exportUnfishImgTask(head_filed,export_items,export_path_dir)
  • 相关阅读:
    权限管理
    书城项目第五阶段---book表的curd
    大话设计模式学习
    数据绑定流程分析
    GO 解决使用bee工具,报 bash: bee: command not found
    VScode插件:Todo Tree
    ant design pro如何实现分步表单时,返回上一步值依然被保存
    React开发流程
    为什么函数式组件没有生命周期?
    html2canvas@^1.0.0-rc.1
  • 原文地址:https://www.cnblogs.com/lelexiu/p/12896847.html
Copyright © 2011-2022 走看看