5

メタデータ(基本的には一意のID)をテーブルの各セルと一緒にWord文書に保存しようとしています。現在、開発中のアドインについては、データベースにクエリを実行し、取得したデータを使用してWordドキュメント内にテーブルを作成しています。

ユーザーによる編集内容をドキュメントに保存し、データベースに永続化できるようにしたいと考えています。私の最初の考えは、更新するレコードを判別できるように、テーブル内の各セルとともに一意のIDを格納することでした。また、どのセルが変更されたかがわかるように、各セル内にある種の「isChanged」フラグを格納したいと思います。セルの「ID」プロパティに必要な情報を追加できることがわかりました。ただし、ユーザーがドキュメントを保存して閉じ、再度開いた場合、その情報は保持されませんでした。次に、「Fields」コレクションにデータを追加してデータを保存しようとしましたが、それは機能せず、ランタイムエラーが発生しました。これが私が試したコードです:

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

「Word2007ドキュメント」はXMLであるため、ドキュメントに名前空間を追加してから、名前空間の属性を持つ要素を崇拝することができます。Wordは、ロードおよび保存時に名前空間を無視する必要があります。さらに、新しい要素を追加して、必要な情報(メタデータ)を保存できます。

そうは言っても、私はこの手法をWordで使用したことはありませんが、Excel2003を使用して正常に使用できました。

最初に試すことは、裸の「Word2007ドキュメント」を作成することです。あなたの場合、単純な2x2のテーブルを追加します。テキストまたはXMLエディターで開き、名前空間を追加し、属性を崇拝して要素を追加します。Wordで開き、変更を加えて保存します。エディタで開き、名前空間の属性と要素が変更されていないことを確認します。

于 2010-03-29T18:11:44.490 に答える