Excel:在XLSX文件中编辑XML


10

Excel XLSX文件是一个包含几个XML文件的zip存档。我试图提取所有XML文件,然后xl\connections.xml 使用XML编辑器进行编辑。那是因为我必须更改20多个连接才能指向其他服务器。

当我在Excel中打开编辑的存档时,它拒绝更改并修复文件。

有没有一种方法可以编辑XML存档中的XML文件?

Answers:


8

您打算如何进行编辑?我建议不要完全提取文件,而应仅以7-zip打开存档。然后,找到要编辑的文件,选择“编辑”,然后将其保存,7-zip应自动将其替换为存档。过去,当我完成此操作时,Excel便将其打开而没有任何麻烦,但是当实际提取然后重新压缩它时,我遇到了问题。


3
Excel的“ zip”文件内容并没有真正压缩(压缩),而是存储了它们。
whitequark 2010年

嗯,这可以解释为什么使用Windows内置的拉链重新压缩为zip会引起问题。现在,我很好奇是否使用7-zip并将压缩级别指定为“ store”是否可行。
nhinkle

1
@whitequark:不正确-内容确实放气了!Excel还会读取仅存储内容的“ zip”文件,但是如果您再次在Excel中保存相同的文件,无论如何都会对其进行压缩。@nhinkle:使用7-zip进行压缩始终对我有用,无论我选择“ store”还是“ normal-deflate”作为压缩级别。
Turismo

@Turismo:也许我错过了odf之类的东西。压缩那些XML确实是一个好主意。Windows拉链可能会损坏大脑。
whitequark 2010年

@whitequark我尝试使用Windows内置拉链进行压缩,并且excel可以毫无问题地打开它。最常见的错误是人们经常右键单击该文件夹并进行压缩,这是不对的。您必须选择该文件夹中的所有文件并进行压缩,因为[Content_Types].xml必须位于ooxml文件的根目录
phuclv

2

您绝对应该能够毫无问题地编辑存档中的XML。我已经对该xl\comments1.xml文件做了好几次了,而Excel却没有任何问题地打开了它。

我使用7-zip和Notepad ++。也许您的编辑器更改了XML的编码,或者您的拉链创建了一个与Excel不完全兼容的文件。

也许对存档中另一个文件的依赖性也必须更改。
您可以尝试在Excel中更改连接,并检查保存后存档中哪些文件已更改。


0

如果您有兴趣通过代码更新Excel XML,那么可以使用现有的开源项目来帮助您,例如ExcelPackage

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.