我正在使用python olefile库修改.xls和.doc文件。有趣的事实是,以下代码适用于.xls文件,但不适用于.doc文件。
以某种方式,.doc确实对内容进行了不同的编码/处理。在.xls中,当打印raw_content
时,我看到许多奇怪的字节,但也有完整的单词。
在.doc文件中,我看到了更多的\x00
,完整的单词就像每个字符之间有一个\x00
。
同样奇怪的是,olefile docs建议在链接的示例中这样做,甚至谈论单词。
file = open('my.doc', 'rb')
ole = olefile.OleFileIO(file.read())
raw_content = ole.openstream('WordDocument').read()
raw_content= raw_content.replace(
b'a-placeholder',
bytes(dynamic_value, 'utf-8') # made sure they are the same length!
)
# this works!
# raw_content= raw_content.replace(
# b'a',
# b'Z'
# )
ole.write_stream('WordDocument', raw_content)
ole.fp.seek(0)
file_contents = ole.fp.read()
# further processing...