5

我正在尝试将元数据(基本上是唯一的 id)与 Word 文档中表格的每个单元格一起存储。目前,对于我正在开发的加载项,我正在查询数据库,并使用检索到的数据在 Word 文档中构建一个表。

我希望能够保存用户对文档的任何编辑,并将其保存回数据库。我最初的想法是在表中的每个单元格中存储一个唯一的 ID,以便我能够知道要更新哪些记录。我还想在每个单元格中存储某种“isChanged”标志,以便我可以判断哪些单元格已更改。我发现我可以将所需的信息添加到单元格的“ID”属性中 - 但是,如果用户保存文档、关闭它并重新打开它,则不会保留该信息。然后,我尝试通过将数据添加到“字段”集合来存储数据——但这不起作用并引发了运行时错误。这是我尝试过的代码:

object t1 = Word.WdFieldType.wdFieldEmpty;
object val = "myValue: " + counter;
object preserveFormatting = true;
tbl.Cell(i, j).Range.Fields.Add(tbl.Cell(i, j).Range, ref t1, ref val, ref preserveFormatting);

这编译得很好,但会引发此运行时错误“此命令不可用”。

那么,这可能吗?还是我走错了方向?

提前致谢。

4

2 回答 2

3

使用“ContentControls”来存储我需要的信息。我使用“标题”字段来存储唯一 ID,并使用“标签”字段来跟踪该字段是否已更改。有关更多信息,请参阅此链接:http: //blogs.technet.com/gray_knowlton/archive/2010/01/15/associating-data-with-content-controls.aspx

于 2010-03-30T18:17:59.853 回答
1

由于“Word 2007 文档”是 XML,因此您可以向文档添加名称空间,然后使用您的名称空间中的属性来欣赏元素。Word 在加载和保存时应忽略您的命名空间。此外,您可以添加新元素来存储所需的任何信息(元数据)。

话虽如此,我还没有在 Word 中使用过这种技术,但我已经使用 Excel 2003 成功地做到了。

首先要尝试的是创建一个裸露的“Word 2007 文档”。在您的情况下,添加一个简单的二乘二表。使用文本或 XML 编辑器打开它并添加您的命名空间,然后添加一个属性并添加一个元素。用Word打开进行更改然后保存。使用编辑器打开并确保您的命名空间属性和元素未被更改。

于 2010-03-29T18:11:44.490 回答