有一些内容相似的xlsx文件需要处理,就想到了脚本。
找到了python 的oepnpyxl。
可以修改单元格内容的同时,出现了问题。
对号在保存之后成了一个奇怪的符号。
而在我用libreoffice打开然后另存为一下之后,再用python处理就没有问题了。
我就试图用 iconv之类的把xlsx文件处理一下,不过貌似不行,不知道是不是不支持还是我操作不对,毕竟只是在网上copy了转码的代码。
对了,我还直接在windows上试了,也是有乱码。
最后,大家帮忙看看有办法解决吗...
最近编辑记录 hounh (2016-12-13 09:10:01)
离线
文件示例和代碼示例呢?
离线
文件示例和代碼示例呢?
嗯,我把它放这里了:
https://github.com/doublehou/temp
离线
字体问题。openpyxl 保存之后,所有的单元格文本字体都变成宋体了。而有些带符号的原本的字体是 Wingdings。libreoffice 保存之后字体信息应该是有变化,所以状态不太一样。使用 wps 打开还是有不少问题。
建议:用 Windows + COM 接口吧……
离线
字体问题。openpyxl 保存之后,所有的单元格文本字体都变成宋体了。而有些带符号的原本的字体是 Wingdings。libreoffice 保存之后字体信息应该是有变化,所以状态不太一样。使用 wps 打开还是有不少问题。
建议:用 Windows + COM 接口吧……
谢谢,那我再试试。
离线
首先感谢 @依云 的帮助,说一下我遇到的问题以供参考。
最开始的乱码问题,我以为是编码不同,@依云 指出是字体被替换了。
然后从这个思路,我搜到一个答案说“openpyxl can't handle style of xlsx , you can use pywin32”。
然后发现 " pip search win32 " 可以找到pywin32 ,但是安装不了,所以安装了pypiwin32。
但是不知道怎么用。。。还好搜到一个教程 “ python excel mini cookbook"。
最后遇到了一个问题:经常报错,类似这样:pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, 'Microsoft Excel'
, "Microsoft Excel cannot access the file 'path ... ”
这个使用os.path.abspath(filename)来获得一个路径然后传给pywin32,这样就没问题了。
That's all ,thank you .
离线