从Excel文档中提取图像

时间:2011-03-31 16:18:50

标签: image excel

我正在从.xls excel文档进行一些数据映射,我正在尝试编写一个快速脚本来将图像拉出excel文档。

以编程方式执行此操作的最快捷,最简单的方法是什么?

我正在运行Ubuntu 10.10,如果可能的话,我更愿意使用python。

2 个答案:

答案 0 :(得分:6)

XLSX文件是压缩文件。

$ unzip file.xlsx
xl/media/中的

都是图片。旧的.XLS文件不适用,但您可以使用现代版本的MS Office将它们转换为XLSX。

如果您没有MS Office,您可以使用LibreOffice执行相同的操作。 Convert the file to .ods and then open it as a zip file它将位于Pictures文件夹中。

答案 1 :(得分:4)

我讨厌回答我自己的问题,但我发现最好的方法只需要在命令行中输入两个命令(假设您安装了正确的软件)。

首先,使用unoconv将.xls转换为.pdf:

http://dag.wieers.com/home-made/unoconv/

在Ubuntu 10.10命令行上:

sudo apt-get install unoconv
unoconv -f pdf file.xls

然后使用pdfimages(似乎与Ubuntu捆绑在一起)从pdf中提取图像:

http://en.wikipedia.org/wiki/Pdfimages

返回命令行:

pdfimages file.pdf fileimage

完成了! .xls中的所有图像现在都位于目录中的单独文件中。使用您选择的语言,这可以在大多数Linux系统上轻松完成。在python中,例如:

import subprocess
subprocess.call(['unoconv','-f','pdf','file.xls'])
subprocess.call(['pdfimages','file.pdf','fileimage'])

如果有人有解决方案,我很乐意听到更简单的解决方案。