无法使用Interop c#从MS Word获取复选框值

时间:2016-11-10 14:20:42

标签: c# xml checkbox ms-word office-interop

我试图从一个.doc MS Word文档中获取复选框值,使用OPENXML从.docx读取它更容易,因为它隐含在输出XML中:

<w:checkBox>
    <w:sizeAuto/>
    <w:default w:val=\"1\"/>
</w:checkBox>

但是,使用Interop的输出XML从Document.Content.XML获取是不可能的,因为该值不是隐式的:

               <w:p wsp:rsidR=\"00040B2E\" wsp:rsidRPr=\"00A81C11\" wsp:rsidRDefault=\"00040B2E\" wsp:rsidP=\"001E040C\">
                        <w:pPr>
                            <w:spacing w:before=\"120\"/>
                            <w:rPr>
                                <w:rFonts w:ascii=\"Arial\" w:h-ansi=\"Arial\" w:cs=\"Arial\"/>
                                <wx:font wx:val=\"Arial\"/>
                                <w:sz w:val=\"18\"/>
                                <w:sz-cs w:val=\"18\"/>
                            </w:rPr>
                        </w:pPr>
                        <w:r wsp:rsidRPr=\"00A81C11\">
                            <w:rPr>
                                <w:rFonts w:ascii=\"Arial\" w:h-ansi=\"Arial\"/>
                                <wx:font wx:val=\"Arial\"/>
                                <w:b/>
                                <w:sz w:val=\"18\"/>
                                <w:sz-cs w:val=\"18\"/>
                            </w:rPr>
                            <w:fldChar w:fldCharType=\"begin\">
                                <w:fldData xml:space=\"preserve\">/////2UAAAAUABIASwBvAG4AdAByAG8AbABsAGsA5ABzAHQAYwBoAGUAbgAyADMAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAA\r\n</w:fldData>
                            </w:fldChar>
                        </w:r>
                        <w:r wsp:rsidRPr=\"00A81C11\">
                            <w:rPr>
                                <w:rFonts w:ascii=\"Arial\" w:h-ansi=\"Arial\"/>
                                <wx:font wx:val=\"Arial\"/>
                                <w:b/>
                                <w:sz w:val=\"18\"/>
                                <w:sz-cs w:val=\"18\"/>
                            </w:rPr>
                            <w:instrText> FORMCHECKBOX </w:instrText>
                        </w:r>
                        <w:r wsp:rsidRPr=\"00A81C11\">
                            <w:rPr>
                                <w:rFonts w:ascii=\"Arial\" w:h-ansi=\"Arial\"/>
                                <wx:font wx:val=\"Arial\"/>
                                <w:b/>
                                <w:sz w:val=\"18\"/>
                                <w:sz-cs w:val=\"18\"/>
                            </w:rPr>
                        </w:r>
                        <w:r wsp:rsidRPr=\"00A81C11\">
                            <w:rPr>
                                <w:rFonts w:ascii=\"Arial\" w:h-ansi=\"Arial\"/>
                                <wx:font wx:val=\"Arial\"/>
                                <w:b/>
                                <w:sz w:val=\"18\"/>
                                <w:sz-cs w:val=\"18\"/>
                            </w:rPr>
                            <w:fldChar w:fldCharType=\"end\"/>
                        </w:r>
                    </w:p>

我正在提取此XML的C#代码:

Microsoft.Office.Interop.Word._Application word = new Microsoft.Office.Interop.Word.Application();
        Microsoft.Office.Interop.Word.Document doc = word.Documents.Open(Path);
        XML_FROM_DOC = doc.Content.XML;
        doc.Close();
        word.Quit();

有什么建议吗?提前谢谢!

0 个答案:

没有答案