我想上传一个字的2007年或更大的word文件到我的网服务器和转换内容表以一个简单的xml结构。这样做在桌面上与传统VBA似乎喜欢这将是容易的。看WordprocessingML XML数据用于创建模板是混乱。有没有办法(而不COM)浏览该文件中更多的面向对象的方式?

有帮助吗?

解决方案

我强烈推荐找到的 Open XML SDK2.0.这是现金转拨方案,但我已经找到它的极为有用的操纵xmlx文件,而不必处理COM。该文件是有点粗略,但关键是要寻找的是DocumentFormat.心.包装。WordprocessingDocument类。你可以选择分开。word文档,如果你重新命名的扩展。zip和深入的XML文件。从这样做,它看起来像一个表格的内容载于一个"结构化文件"的标签,这样的标题是在一个超级链接。Putzing围绕这一点,我找到这样的事情应工作(或者至少给你一个起点)。

WordprocessingDocument wordDoc = WordprocessingDocument.Open(Filename, false);
SdtBlock contents = wordDoc.MainDocumentPart.Document.Descendants<SdtBlock>().First();
List<string> contentList = new List<string>();
foreach (Hyperlink section in contents.Descendants<Hyperlink>())
{
    contentList.Add(section.Descendants<Text>().First().Text);
}

其他提示

这里是个博客上查询Open XML WordprocessingML文件使用皇宫于XML。使用这些代码,可以编写查询如下:

using (WordprocessingDocument doc =
    WordprocessingDocument.Open(filename, false))
{
    foreach (var p in doc.MainDocumentPart.Paragraphs())
    {
        Console.WriteLine("Style: {0}   Text: >{1}<",
            p.StyleName.PadRight(16), p.Text);
        foreach (var c in p.Comments())
            Console.WriteLine(
              "  Comment Author:{0}  Text:>{1}<",
              c.Author, c.Text);
    }
}

博员额: Open XML SDK和皇宫XML

-埃里克

请参阅 XML文档和数据的为出发点。特别是,你要使用LINQ到XML。

在一般情况下,你不希望在.NET应用程序中使用COM。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top