将 .docx 内容导入 MS Access

Import .docx contents into MS Access

我开始编写一个 docx 文档来做我的一个项目。 最近,我意识到如果数据在数据库中,管理起来会更容易。 所以,我想将该数据自动导入 MS Access,以避免手动复制和粘贴数据。

有办法吗?我只遇到过通过 Access 打开 Word 应用程序的方法。我也知道 docx 有一个 XML 结构,所以我想如果我可以打开那个结构,那么在 VBA

中做一个解析器会很容易

有两种基本方法可以将信息从 Word 文档中取出并放入 Access 数据库中:在任一 Word 中使用 VBA 代码 运行 使 Word object 模型自动化或访问或提取构成 Word 文档的 WordOpenXML。你表示你倾向于第二个选项。

在这里,同样有许多可用的方法:

  • 在 Word 或 Access 中使用 VBA 提取在 Word 应用程序用户界面中打开的文档的 WordOpenXML。
  • 在 Access 中使用 VBA 和 non-VBA 工具来 "crack open" Zip 文件并提取 XML.
  • 使用 .NET Framework 中可用的工具提取 ZIP 文件的内容,并使用 OLE DB 连接将其写入 Access。

我知道您的目标是能够在以后重新创建文档以供打印,因此您想保留所有格式。此外,您希望能够从 Access 中读取内容。

我相信这将需要访问权限中至少有四个字段 table:

  1. ID
  2. 标题
  3. 歌曲内容
  4. re-creating 文档
  5. 的完整 WordOpenXML

您在讨论和问题描述中没有提到 (4),但如果您想存储格式并且您希望能够阅读内容,我认为这是必要的。虽然 WordOpenXML 是 "readable",但里面有很多 mark-up 并不能使阅读 comfortable

在所有条件都相同的情况下,我会选择 VBA 处理打开的 Word 文档或 .NET 方法,使用 Open XML SDK (free download .NET您可以在 Visual Studio 中引用并与解决方案一起分发的库)。

要牢记的一件重要事情是将 Word Open XML 存储在数据库中。除非 Access 中发生了某些更改,否则您无法存储 ZIP 文件 - 您需要 "streamable" 格式。那将是 OOXML OPC flat-file 格式。

当您使用 VBA 从文档中读取 WordOpenXML 时,这就是您得到的结果,这就是为什么这对我来说是一个选择。 Open XML SDK 没有该选项,但 Eric White's blog 提供了执行此操作的代码。

当您稍后想要重新创建和打印文档时,将 WordOpenXML 流式传输到扩展名为 .xml 的文件应该就足够了。或者您可以将其转换回 docx zip 文件(同一博客)。