最近在做一個python項目,項目的有一部分是要提取Excel中的文本與圖片。
之前的需求只是提取Excel中的文本,這個功能的實現比較簡單,在python的官網有幾個庫可供選用,比如xlrd,openpyxl等。
后來需求要求將Excel中的圖片提取出來。我嘗試過使用openpyxl去提取,但是發現openpyxl並沒有讀取Excel文件的圖片信息,只有文本--用openpyxl打開一個有圖片的Excel,然后再保存這個Excel,你會發現圖片丟失了。網上有很多python庫,基本上只介紹了如何去寫Excel文件,讀的卻非常少。因為目標平台是Linux,故Win32COM/自動化也不在考慮之中。
最后從Android操作Excel的項目中得到啟示,Android中使用Apache POI實現對Excel的操作,Apache POI是純Java的代碼,依賴於jre,而jre在Linux和Windows上面都可以運行,於是就有了這個方案:將POI編譯成可執行文件,在目標機器上安裝jre,然后讓python通過命令行調用這個可執行程序,從而實現對特定Excel的圖片提取。
相對於其他的python的Excel庫,POI功能比較完善,除了Excel,還可以處理其他的Microsoft Office文檔。不足的地方是需要jre的支持。
個人認為這是一個可行方案之一,跨平台並且省時省力。不知道還有沒有其他更好的方案。