通常python读取excel有两个包,xlsxwriter和openpyxl,论单元格单独处理,openpyxl要方便一些,论sheet的整体编辑,插入图片,xlsxwriter能力要强一些,这里主要用xlsxwriter插入图片。
1、安装
pip install xlsxwriter
2、加载
先按路径加载完整的excel, xlsxwriter.Workbook(xlsx_path),新加一个sheet页demo3,赋值给sheet。值得注意的是,xlsxwriter主要针对新建的excel,对于要追加到已经有的图表中,不太合适,虽然于2016年5月13日添加了get_worksheet_by_name方法,但是只能获取通过book.add_worksheet添加的sheet,原有的sheet读取不到,所以需要用xlrd或openpyxl重新读取这个excel,再追加内容。
book = xlsxwriter.Workbook(xlsx_path)
sheet = book.add_worksheet('demo3')
1、调整单元格大小 为了合图片与excel单元格更贴合,要按图片大小调整单元格大小,set_row(row=1, height=128)调整行高,row从0开始算起。set_column(firstcol=1, lastcol=1, width=128)调整列宽,firstcol第第一列,从0开始算起,firstcol=1表示B列,这里对B2单元格进行调整。高度和宽度的单位不一样,但是与excel中的值是大体一致的。
# 调整行高,但是高度单位与windows的是不一样的
sheet.set_row(row=1, height=128)
sheet.set_column(firstcol=1, lastcol=1, width=128)
2、插入图片 传入文件路径,sheet.insert_image()将图片插入excel,options中可以传入一系列参数,如横向偏移x_offset,纵向偏移y_offset,横向缩放x_scale,纵向缩放y_scale,通常默认为图片左上角与单元格左上角重合,且不做缩放。
options={"x_scale":1,"y_scale":1}
sheet.insert_image(insert_location, filename=image_path, options=options)
3、保存 插入图片可以多次操作,也可以按之前介绍的修改单元格格式,操作完成后,需要通过book.close()保存到文件。
全部0条评论
快来发表一下你的评论吧 !