我有一个Python程序,它根据一些其他文件中的一些工作表创建一个新的excel文件。下面的代码我完全复制了工作表,但无法复制工作表中的图像。如何使用Python将Excel工作表中的图像复制到另一个Excel工作簿?
path1 = "/mnt/e/RecEasy-MVP-Python/FlaskApp/Uploaded_files/" + key
print path1
path2 = "/mnt/e/RecEasy-MVP-Python/FlaskApp/Compiled/" + current_acc_group + "_" + current_gl_account + ".xlsx"
print path2
path_to_key_sheet = "/mnt/e/RecEasy-MVP-Python/FlaskApp/Uploaded_files/" + key + "_key_sheet.txt"
print "Path to key sheet file:"
print path_to_key_sheet
wb1 = xl.load_workbook(filename=path1, read_only=True, data_only=True)
ws1 = wb1.worksheets[2]
counter = 0
for sheet in wb1:
if (str(sheet.title) == str(content_of_key_sheet_file)):
ws1 = wb1.worksheets[counter]
print "Sheet selected"
print sheet.title
counter = counter + 1
ws2 = wb2.create_sheet(ws1.title)
print "Copying from the Excel file: " + path1
for row in ws1:
for cell in row:
if (cell.value != None):
ws2[cell.coordinate].value = cell.value
wb2.save(path2)
答案 0 :(得分:0)
我一直为此苦苦挣扎,因为我通常用来处理xlsx文件的大多数库似乎都不希望支持此功能。
幸运的是,.xlsx
是ooxml格式。因此,您所需要做的就是解压缩.xlsx
并将图片放在您将工作簿提取到的目录的xl/media/
中。
zip = ZipFile('yourWorkbook.xlsx')
zip.extractall()
现在您可以将它们重新插入新的电子表格电子表格
import openpyxl
wb = openpyxl.Workbook()
ws = wb.worksheets[0]
img = openpyxl.drawing.image.Image('test.jpg')
img.anchor(ws.cell('A1'))
ws.add_image(img)
wb.save('out.xlsx')
答案 1 :(得分:0)
install Pillow(只需pip install Pillow,不需要在文件中导入)
然后:
from openpyxl import drawing
。 。
img = drawing.image.Image('yourImg.png')
yourSheet.add_image(img, 'A2')
其中A2是您的手机