如何在 ASP.NET 应用程序中查询 Word docx?

2024-02-20

我想将 Word 2007 或更高版本的 docx 文件上传到我的 Web 服务器,并将目录转换为简单的 xml 结构。使用传统 VBA 在桌面上执行此操作似乎很容易。查看用于创建 docx 文件的 WordprocessingML XML 数据会令人困惑。有没有一种方法(无需 COM)以更多面向对象的方式导航文档?


我强烈建议您研究一下。它是一个 CTP,但我发现它在操作 xmlx 文件方面非常有用,而无需处理 COM。该文档有点粗略,但要查找的关键是 DocumentFormat.OpenXml.Packaging.WordprocessingDocument 类。如果将扩展名重命名为 .zip 并深入研究其中的 XML 文件,则可以拆开 .docx 文档。通过这样做,看起来目录包含在“结构化文档”标签中,并且标题之类的内容位于那里的超链接中。稍微研究了一下,我发现类似的东西应该有效(或者至少给你一个起点)。

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);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 ASP.NET 应用程序中查询 Word docx? 的相关文章

随机推荐

  • 在 asp.net 中的网络位置创建文件

    在我的 ASP net 应用程序中 我创建一个文本文件并将数据写入该文件 我将该文件保存在服务器上的指定位置 这是一个内联网应用程序 当我使用 Visual studio net 在本地运行应用程序时 我可以通过应用程序创建 写入文件并将其
  • 我们可以直接实例化抽象类吗? [复制]

    这个问题在这里已经有答案了 我读过我们只能通过继承来实例化抽象类 但不能直接实例化它 但是 我看到我们可以通过调用另一个类的方法来创建具有抽象类类型的对象 例如 LocationProvider是一个抽象类 我们可以通过调用来实例化它get
  • 无法获取 UWP 中 ColumnDefinitionCollection 的“Add”方法

    在 Windows 通用应用程序的上下文中 并使用反射 我试图获取Add方法从一个ColumnDefinitionCollection 内置型 所以我用这个 type GetRuntimeMethods First info gt info
  • csproj 文件中的 XML

    任何人都可以向我指出 C csproj 文件中有效的架构或属性列表吗 我看过了 但似乎找不到任何有关它的文档 你的意思是像this http msdn microsoft com en us library dd576348 aspx文档
  • Keras 干扰 python 日志记录

    我想记录一些加载到经过训练的 keras 模型中的 python 代码 由于某种原因 python 日志记录在 keras 不工作的情况下不起作用load model是进口的 但是 如果我不导入 keras python 日志记录工作正常
  • PHP PDO + 准备语句

    sql SELECT phrase english FROM static site language WHERE page pds database gt pdo gt prepare sql pds gt execute array P
  • 弹出 Landscape-only 后 ViewController 的方向错误

    在基于导航的应用程序中 LandscapeViewController 仅支持横向模式 所有其他应用程序都支持两种模式 我还有一个 加载屏幕 建议用户在继续之前旋转手机 这样我可以确保当我的横向视图加载时 它处于横向模式 当我将手机旋转到纵
  • 偏航、俯仰和横滚分别与航向、俯仰和倾斜相同吗?

    我有两个不同的系统 引擎 A 引擎 B 发动机A 动机追踪软件 生成 偏航 俯仰 滚转 和发动机 B 4D影院 期望 航向 俯仰 坡度 我的研究得出的结果是这两个系统之间没有区别 Yaw Pitch Roll Heading Pitch B
  • React:为什么组件的构造函数只被调用一次?

    In the 下面的例子 http codepen io anon pen VYVPBJ when Item 2被点击 Second 1显示而不是Second 2 为什么 你会如何解决这个问题 var guid 0 class Conten
  • C# WinForms ListView 项目计数更改事件

    当 ListView 中的项目数发生变化时 Win Forms 中是否有一个事件可以触发 我尝试了 大小 和 文本 奇怪的是 它们 有点 有效 但并不总是 我试图触发一个标签来更新列表视图项目的计数 因为它发生变化 而无需在一百种方法中手动
  • 未找到 Browserify 命令

    简单的问题 当我从 mac 终端运行 browserify index js o app js 时 我得到命令未找到 我已经完成了 npm install g browserify 但仍然没有运气 知道我为什么会收到这个吗 谢谢 对我来说
  • Android:通过 adb shell am 启动应用程序信息对话框

    我正在尝试编写一个脚本 它将通过 adb 为我正在测试的应用程序启动 应用程序信息 系统对话框 我做了一些调查并提出了这个命令 它将启动 应用程序信息 但会因强制关闭而失败 logcat 中的 NullPointerException ad
  • “git config --list”显示重复的名称

    git config list显示两个值user name 一个全局 一个本地 user name My Name user name My Other Name 我的理解是 本地价值观优先于全球价值观 我怎样才能得到git config仅
  • 子div高度100%内部位置:固定div + 自动溢出

    我在尝试以下操作时遇到一些奇怪的行为 请参阅jsfiddle http jsfiddle net 9nS47 http jsfiddle net 9nS47 HTML div div div div div div div div div
  • JAR 中存在类,但仍然“无法找到或加载主类”

    我下载并安装了UMD 的 FindBugs 3 0 http findbugs sourceforge net downloads html in usr local share findbugs 3 0 ls usr local shar
  • 在android中的按钮上设置图像?

    我一直在尝试使用以下代码在按钮上设置图像 但它似乎不起作用 我认为我做错的是我正在使用的图像的路径 但我尝试了不同的路径 但它不会工作 我已将图像复制到 res 文件夹中的可绘制文件夹中 我在这里做错了什么 final Button nex
  • 将外部应用程序移动到屏幕前面

    我正在运行的应用程序需要调用单独的应用程序来进行一些扫描 我通过启动一个新的应用程序来调用另一个应用程序System Diagnostics Process 一旦获得该流程 我就会调用一个方法来让该应用程序获得焦点 我尝试了两种不同的方法来
  • 在 r 中跨多个数据帧应用一组操作

    我一直在为我的项目学习 R 但无法在 google 上找到我当前问题的解决方案 我有大约 100 个 csv 文件 需要对它们执行一组精确的操作 我已将它们作为单独的对象读取 我认为这可能是不正确的 r 风格 但我无法编写可以循环的函数 每
  • IText 2 + Flying Saucer:如何避免两个pdf页面之间的图像出现损坏?

    我有一个 html 文件 我正在使用 Itext 2 和飞碟将其转换为 pdf 文件 问题是 如果图像在页面末尾附近开始 飞碟会将其中的一部分渲染到当前页面的末尾 并将其余部分渲染到下一页的开头 怎么说我只想将整个图像放在一页上 您可以将其
  • 如何在 ASP.NET 应用程序中查询 Word docx?

    我想将 Word 2007 或更高版本的 docx 文件上传到我的 Web 服务器 并将目录转换为简单的 xml 结构 使用传统 VBA 在桌面上执行此操作似乎很容易 查看用于创建 docx 文件的 WordprocessingML XML