打开现有的Excel文件,保留样式,在Python中编辑和插入图像

lnlaulya  于 2023-05-19  发布在  Python
关注(0)|答案(1)|浏览(168)

我有一个“Excel模板”:

1.打开现有文件
1.编辑单元格值而不修改样式(字体、单元格宽度和高度、单元格合并等)
1.添加或插入图像(jpg或png)以将其保存在新文件中。
目前我已经尝试了四种选择。
1.XLWT/XLRD-这个婴儿做什么,它似乎是最有效的工作,它打开了xlsx很好地保持所有的风格,这是很容易编辑单元格(与一些技巧,以保持风格),但它只插入位图(bmp)图像,当它插入图像,它成为拉伸,不保持方面电台也没有大小,我想知道它是否有解决方案。
1.XLSXWritter-它是非常功能和易于使用的创建新文件。它无法打开现有的。这不是一个选择。:(
1.openpyxl-它似乎插入图像与PIL(jpg,png,gif等),但当我打开现有的“模板”所有的样式都不见了,一切!!所以这不是一个选择。
1.pythonexcels-它似乎与Microsoft Office Excel和win32 com一起工作,所以可能它不是一个跨平台选项,我找不到一种方法来插入图像。
我想我也可以使用一些PDF创建器,但我需要保持页面大小,因为我需要将创建的文件发送到打印机,但不是用字母或A4大小,我需要打印不同大小的粘合剂标签。

问题:xlwt还有其他解决方案吗?

oipij1gg

oipij1gg1#

我们最近遇到了一个类似的问题,我们的目标是保持格式不变,我们的解决方案基于openpyxl。所以我知道openpyxl同时支持格式化。
这里我的简单的例子,解决了质疑点:

# working dir
|- test.xlsx
|- test42.png
|- test.py

test.xlsx

test.py

import openpyxl

path = "test.xlsx"
wb_obj = openpyxl.load_workbook(path)
sheet_obj = wb_obj.active
cell_obj = sheet_obj.cell(row=2, column=1)
cell_obj.value = "Earth"

img = openpyxl.drawing.image.Image('test42.png')
img.anchor = 'B2'
sheet_obj.add_image(img)

wb_obj.save("test_new.xlsx")

test_new.xlsx

相关问题