6

私は、OpenXML SDK を使用して Word ドキュメントを生成するライブラリを持っています。ライブラリの機能の 1 つは、最後の行 ( などSUM(ABOVE)) に数式を含むテーブルの生成です。

Word にはこれらの機能が組み込まれていますが、ドキュメントを生成するときは、Word がマシンにインストールされていないと想定する必要があります。

問題は、テーブルと数式フィールドを生成するだけでは、ドキュメントを開いたときに自動的に更新されないことです。ユーザーはドキュメントを開いて、関数を計算するために手動で「フィールドの更新」を選択する必要があります。

コード内でこれを行う方法はありますか (関数を手動で計算する必要はありません)。

4

3 に答える 3

6

いいえ、これは仕様です。詳細については、ドキュメントを開く、ページ番号を変更する、または印刷するときに更新されるフィールドを参照してください。

これは手動入力にも当てはまります (たとえば、A1 に 10 があり、A2 に 10 があり=SUM(ABOVE)、A3 に挿入されている場合、20 になります。ただし、A1 を 15 に変更した場合、手動で入力しない限り、A3 は自動的に更新されません)。そうしました)。

これを回避する唯一の方法は、アドイン (VSTO、VBA など) を作成しDocument_Openてクライアント コンピューターでイベントをシンクし、コードを実行してすべてのフィールドを更新するか、ドキュメントを開いてレンダリングする相互運用アプリをサーバー上に作成することです。いくつかのコードを使用して、さらに送信する前に保存します。

于 2010-06-26T07:31:06.197 に答える
0

値を設定できますUpdateFieldsOnOpen。ドキュメントを開くと、Word は何を更新するかを尋ねてきます。詳細については、この記事を参照してください: http://www.samuraiprogrammer.com/blog/2010/08/09/OpenXMLHowToRefreshAFieldWhenTheDocumentIsOpened.aspx

于 2016-10-06T09:03:25.247 に答える