2011-03-31 65 views
2

我正在做一些.xls excel文档的数据映射,并且我正在尝试编写一个快速脚本来将图像拉出excel文档。从Excel文档中提取图像

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

我正在运行Ubuntu 10.10,如果可能的话我宁愿用户python。

回答

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提取从PDF格式的图像(其似乎与Ubuntu捆绑):

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']) 

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

+0

不错的把戏!提取的图像是否有意义的名称? – ZJR 2014-11-18 14:18:30

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文件夹中。