小田笔记

专注、改善

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

最近在做一个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的支持。

个人认为这是一个可行方案之一,跨平台并且省时省力。不知道还有没有其他更好的方案。

参考资料:xlrd的百度百科xlrd的官网openpyxl官网Apache POI官网

posted on 2015-10-10 18:04  魏小田  阅读(2518)  评论(2编辑  收藏  举报