我正在为一个客户端的DocumentML处理工作,我对OpenXML是全新的。我已经阅读并听取了Erik White的博客,OpenXML看起来非常强大。我遇到的问题是由OpenXML Productivity工具生成的代码中有21121行。我添加了一个类,并在其中粘贴了这段代码,现在任何时候我的解决方案都会尝试进入该类,但如果我尝试在IDE中打开该类,则VS会冻结。我之前从未遇到过这个问题,因为我的机器有8 GB的Ram和4核心处理器。OpenXML生成的代码冻结Visual Studio
有没有人有过这个问题?是否有需要为OpenXML完成的设置或某些事情?我正在运行VS 2010旗舰版SP1,并进行了完整安装。任何帮助将不胜感激。
感谢
编辑1
我试图访问一个复选框,我有我的方式。当我看到派生的XML,我看到
<w:sdtPr xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
<w:rPr>
<w:rFonts w:asciiTheme="minorHAnsi" w:hAnsiTheme="minorHAnsi" w:cstheme="minorHAnsi" />
<w:sz w:val="20" />
<w:szCs w:val="20" />
</w:rPr>
<w:id w:val="-210274200" />
<w14:checkbox xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml">
<w14:checked w14:val="0" />
<w14:checkedState w14:val="2612" w14:font="MS Gothic" />
<w14:uncheckedState w14:val="2610" w14:font="MS Gothic" />
</w14:checkbox>
</w:sdtPr>
我想检查节点是否包含复选框,所以我这样做。
private static XNamespace w14 =
"http://schemas.microsoft.com/office/word/2010/wordml>";
if (element.Elements(w + "sdtPr")
.Elements(w14 + "checkbox").Count() > 0)
{ }
但是代码永远不会落入该条件。有什么我在这里失踪? 感谢您的帮助 编辑完1
它看起来像一个大文件:)。为什么你需要使用生产力工具生成的整个代码?如果你想创建一个具有部分动态数据的文档,我建议创建一个带有一些内容控件的模板文档,并且只需填写你想要动态插入数据的地方。我在这里写了它:http://stackoverflow.com/questions/7891781/how-to-build-custom-sentences-with-openxml/7905155#7905155。如果它适用于您的情况,并且您需要帮助,请告诉我。 –
@LukaszM感谢提供的帮助,我将它们作为所有内容控件,但在用自定义对象中的数据替换数据时遇到问题。如果您有时间,我将非常感谢您的帮助。 –
因此,请编辑您的问题并提供一些详细信息,以替换内容控件以及要插入的数据类型。 –