【发布时间】:2021-07-26 21:46:47
【问题描述】:
在 Microsoft Excel 2016 MSO (16.0.13929.20206) 中,可以插入动画 GIF 文件。插入后,它们可以播放,即使在保存和关闭文件后也是如此。在 Excel 中插入 GIF 的过程相当简单:激活“插入”选项卡,选择“图片”选项,浏览到文件并选择“插入”。
虽然手动将文件插入 Excel 工作簿相当简单,但我可以从自动化该过程的 Python 脚本中受益匪浅。我尝试使用xlsxwriter 和insert_image 方法来完成此操作,但无济于事。这是一个简短的代码示例,后面是抛出的错误:
import xlsxwriter
workbook = xlsxwriter.Workbook('test.xlsx')
worksheet = workbook.add_worksheet()
worksheet.insert_image('B2', '001.gif')
workbook.close()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/opt/Software/python/3.7/lib/python3.7/site-packages/xlsxwriter/workbook.py", line 304, in close
self._store_workbook()
File "/opt/Software/python/3.7/lib/python3.7/site-packages/xlsxwriter/workbook.py", line 634, in _store_workbook
self._prepare_drawings()
File "/opt/Software/python/3.7/lib/python3.7/site-packages/xlsxwriter/workbook.py", line 1084, in _prepare_drawings
self._get_image_properties(filename, image_data)
File "/opt/Software/python/3.7/lib/python3.7/site-packages/xlsxwriter/workbook.py", line 1192, in _get_image_properties
"%s: Unknown or unsupported image file format." % filename)
xlsxwriter.exceptions.UnsupportedImageFormat: 001.gif: Unknown or unsupported image file format.
显然,insert_image 方法不支持 GIF 文件。
我搜索了论坛,但找不到任何其他模块或方法可以让我在 Python 中执行这个简单的任务。
感谢您的意见!
【问题讨论】:
-
我是 XlsxWriter 的作者。不支持 GIF 文件的原因是 Excel 不支持动画 GIF,而且没有人对非动画类型有太大兴趣。如果 Excel 现在支持动画 gif,那么我愿意为 XlsxWriter 添加对 GIF 的支持。您可以在 Github 上打开功能请求。同时我相信 OpenPyXL 支持 GIF 作为图像格式。
-
谢谢你,@jmcnamara。 OpenPyXL 似乎可以解决问题。
-
我在 XlsxWriter 版本 1.4.2 中添加了对 GIF 图像(以及扩展的动画 GIF)的支持。您可以尝试使用上面的示例,如果它按预期工作(它应该)然后更新您的一篇文章以表明它适用于版本> = 1.4.2。谢谢。
标签: python excel gif xlsxwriter