2011-03-31 106 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文件夾中。