問題タブ [office-interop]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
47272 参照

c# - C#を介してワークシート名でExcelワークシート参照を取得する

現在、以下の C# コードを使用して Excel ワークシートへのハンドルを取得しています。

ワークシート名を使用して同じものを取得する方法はあります"SubSignOff"か?

0 投票する
1 に答える
536 参照

c# - ユーザーが [ファイル] -> [.NET を使用して Word 文書に保存] をクリックしたことをどのように知ることができますか?

ユーザーが .NET を使用して Word 文書で [ファイル] [保存] をクリックしたことをどのように知ることができますか?

ユーザーがWord文書で何らかのアクションを行うと、C#を使用して作成したプログラムでこのイベントが何であるかを知ることができます。

0 投票する
13 に答える
24098 参照

.net - WinWord.exeは、Word.Documents.Addを呼び出した後も終了しません-Word .NET Interop

.NETで(Microsoft.Office.Interop.Wordアセンブリを介して)Word COMオブジェクトを作成するときに、オブジェクトを適切に閉じて解放しても、WinWordプロセスが終了しないという古典的なシナリオに遭遇しています。

Word.Documents.Add()メソッドの使用に絞り込みました。他の方法(ドキュメントを開く、コンテンツを変更するなど)でWordを操作でき、指示するとWinWord.exeが終了します。Add()メソッドを使用すると(テンプレートを追加する場合のみ)、プロセスが実行されたままになります。

問題を再現する簡単な例を次に示します。

ご覧のとおり、オブジェクトを適切に作成して破棄していますが、適切なコードが返されるまでMarsha.ReleaseComObjectをループするための追加の手順を実行しています。Wordオブジェクトの操作は、他の点では問題ありません。厄介なDocuments.Addが原因で、私は悲しみを覚えています。このプロセスで作成され、参照して破棄する必要のある別のオブジェクトはありますか?従う必要のある別の廃棄手順はありますか?他に何かありますか?あなたの助けは大歓迎です:)

Update:廃棄ステップの最後にGC.Collectを試しましたが、それでもうまくいきませんでした。

Update 2: 問題をカスタムテンプレートの使用に絞り込みました。Documents.Add(...)を呼び出すと、新しいドキュメントのカスタムテンプレートを指定します。これを行わず、代わりにパラメーターなしでAdd()を呼び出すと、問題は発生しません。

0 投票する
1 に答える
7392 参照

asp.net - Word文書(Office Interop&.NET)をマージし、書式設定を維持する

Microsoft Office Interop Assemblies(Office 2007)とASP.NET3.5を使用して複数のWord文書をマージするのに問題があります。ドキュメントをマージすることはできますが、フォーマットの一部(つまり、フォントと画像)が欠落しています。

現在のマージコードを以下に示します。

これがどのように達成されるかは必ずしも気にしません。必要に応じてPDF経由で出力できます。フォーマットを引き継いでほしいだけです。

0 投票する
1 に答える
295 参照

asp.net - (「ソフトウェアプリンター」を使用せずに)プログラムでWord文書をPDFにエクスポートするための最良の解決策は?

Word文書をPDFとしてエクスポートする方法を探しています。「ソフトウェアプリンター」(CutePDFなど)を使用せずにこれを実行し、可能な限り参照アセンブリに固執したいと思います。Microsoft Office相互運用機能アセンブリを使用してWord文書を生成し、それを一時ディレクトリに保存しています。したがって、必要がない限り、このソリューションがMicrosoftOfficeと直接対話する必要はありません。

0 投票する
1 に答える
499 参照

.net - .NET で Word COM オブジェクトを使用すると、InlineShapes がテンプレートからドキュメントにコピーされない

.NET と Word Interop を使用して、テンプレート (.dot) ファイルから新しい Word ドキュメントをプログラムで作成しています。これを行うにはいくつかの方法がありますが、私は AttachedTemplate プロパティを使用することにしました。

( Documents.Add() を使用してテンプレートから開くときに発見したメモリ リークの問題のため、Documents.Add() メソッドよりも AttachedTemplate の手段を選択しています。)

これは、テンプレート フッターに画像 (InlineShape として表される) がある場合を除き、正常に機能します。その場合、画像は結果のドキュメントに表示されません。具体的には、画像はoDoc.Sections.Item(1).Footers.Item(WdHeaderFooterIndex.wdHeaderFooterPrimary).Range.InlineShapesコレクションに表示されるはずですが、そうではありません。

Documents.Add() を使用する場合、これは問題ではありませんが、メソッドは私にとってオプションではないと述べました。

テンプレートから画像を取得するために必要な追加の手順はありますか? AttachedTemplate を使用する場合は、(コード スニペットでわかるように) UpdateStyles() を明示的に呼び出してテンプレート スタイルをドキュメントに適用する必要があることを既に発見しましたが、Documents.Add() を使用する場合は自動的に行われます。それとも、クレイジーな回避策がありますか?あなたの助けは大歓迎です! :)

0 投票する
2 に答える
103 参照

filesystems - パワーポイントファイルは結果なしで削除できます

パスワードで保護された zip ファイルをアプリケーションのルートにコピーするライセンス管理タイプのアプリケーションを作成しています。ユーザーが [プレゼンテーションを開く] ボタンをクリックすると、圧縮されたファイルがルート フォルダーに抽出され、Office 相互運用機能を使用して Powerpoint でファイルを開きます。この時点で驚いたことに、現在 Powerpoint アプリケーションで開いている抽出ファイルを削除できます。ファイルがまだ Powerpoint で開かれているため、ファイルを削除しようとすると失敗するだろうと想定していました。

ファイルを削除できるのはなぜですか? ファイルが何らかの方法で一時フォルダーにコピーされ、PowerPoint で開かれていますか?

Powerpoint でファイルを開くとすぐにファイルを削除するこの機能に依存するアプリケーションを先に進めることはできますか? これは、ファイルをコピーできないことを保証するのに役立つため、最適です(また、xmlを使用して、「名前を付けて保存」と「保存」がint Powerpointに表示されないようにしています)。

0 投票する
2 に答える
2460 参照

ms-word - Word文書内の特定のテーブルまたはセルに関連付けられている非表示のメタデータ情報を保存することは可能ですか?

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

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

これは正常にコンパイルされますが、このランタイムエラー「このコマンドは使用できません」をスローします。

それで、これはまったく可能ですか?それとも私は間違った方向に向かっていますか?

前もって感謝します。

0 投票する
1 に答える
1271 参照

c# - Officeのショートカットフックメカニズムを作成するための最良の方法は何ですか

MSOfficeのショートカットハンドラーを作成したいと思っています。
VS2010 for Office2010でアドインを作成しています。Word/PowerPointがアクティブな場合、ハンドラーはすべてのキーボードイベントをリッスンする必要があります。

アプリケーションレベルのショートカットハンドラーを作成するための資料はたくさんありますが、Officeに固有のものは見つかりませんでした。

誰かがサンプルのc#コードを使ってテクニックを提案できたら素晴らしいと思います。

ありがとう

0 投票する
2 に答える
2667 参照

c# - VSTO の代替案

VSTO にはどのような代替手段がありますか?

managedxll は何を行い、VSTO は行わないのですか - どちらを使用するか、もう一方を使用するのはいつですか

Googleはこの件についてあまり取り上げていません

これはどちらかというとインタビューの質問です - 長所と短所は何ですか。両方がここでの質問の核心です