我正在尝试使用OpenXML 2.5 SDK创建文档,如下所示:
我的代码看起来与此相同,但是当我尝试打开创建的.docx文件时,我得到了
无法打开文件DocumentEx.docx,因为内容存在问题。
作为Microsoft Word中的错误
问题出在document.xml文件中,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
<w:body>
<a:p xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main">
<a:r>
<a:t>Hello, Word!</a:t>
</a:r>
</a:p>
</w:body>
</w:document>
如果我将XML更改为:
<?xml version="1.0" encoding="utf-8"?>
<w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
<w:body>
<w:p>
<w:r>
<w:t>Hello, Word!</w:t>
</w:r>
</w:p>
</w:body>
</w:document>
文件将会打开。
如何将此保存为已损坏?我必须遗漏一些大的东西,因为我从MSDN中提取的代码出现了这样的错误。
我正在使用Visual Studio 2010 .NET Framework v 4.6 SP1进行开发,并尝试使用Microsoft Word 2010打开这些.docx文件。
提前谢谢。
答案 0 :(得分:3)
我的问题是我添加的对象的命名空间不正确。
我使用DocumentFormat.OpenXML.Drawing作为Text对象而不是DocumentFormat.OpenXML.Wordprocessing。这不是正确渲染文本并导致我的错误。
答案 1 :(得分:0)
这可能是为了缺少许多标题。 以下代码确实解决了它。我用过office 2010
<w:document xmlns:ve="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml">
<w:body>
<w:p>
<w:r>
<w:t>Hello , word</w:t>
</w:r>
</w:p>
<w:sectPr>
<w:pgSz w:w="12240" w:h="15840"/>
<w:pgMar w:top="1440" w:right="1440" w:bottom="1440" w:left="1440" w:header="708" w:footer="708" w:gutter="0"/>
<w:cols w:space="708"/>
<w:docGrid w:linePitch="360"/>
</w:sectPr>
</w:body>
</w:document>