問題タブ [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 投票する
4 に答える
5779 参照

.net - バージョンに依存しないオフィスを使用した.NETOffice相互運用

MicrosoftExcelにデータをインポートするアプリケーションを開発しました。

VS2005 + .NET 2.0を使用していて、Microsoft Office 2007が私のマシン(Office 12)にインストールされています。

コンパイルされたアプリケーションは、自分のマシンで実行すると正常に動作しますが、アプリケーションを他のマシンに展開すると、下位バージョン(Office 2000)を使用していると言うと、次のエラーが発生します。

ファイルまたはアセンブリを読み込めませんでしたMicrosoft.Office.Interop.Excel、バージョン12.0.0.0

次に、マシンにインストールされているOffice(Excel)に関係なく、アプリケーションを正しく実行できるようにするにはどうすればよいですか?

ありがとう。

いくつかの更新:参照されている2つのDLL、つまりMicrosoft.Office.Interop.Excel.dll(バージョン12.0.0.0)とOffice.dll(バージョン12.0.0.0)をbinフォルダーに配置しました。この参照のプロパティをCopyLocal= Trueに設定しました。アプリケーションをコンパイルすると、DLLがdebug/releaseフォルダーにコピーされます。

ここで、アプリケーションを実行しようとすると、「ファイルまたはアセンブリを読み込めませんでしたMicrosoft.Office.Interop.Excel、バージョン12.0.0.0」というエラーが発生しました。

しかし、別のエラーが発生しました。System.AccessViolationException:保護されたメモリの読み取りまたは書き込みを試みました。これは多くの場合、他のメモリが破損していることを示しています。Microsoft.Office.Interop.Excel.WorkbookClass.SaveAs(Object Filename、Object FileFormat、Object Password、Object WriteResPassword、Object ReadOnlyRecommended、Object CreateBackup、XlSaveAsAccessMode AccessMode、Object ConflictResolution、Object AddToMru、Object TextCodepage、Object TextVisualLayout、Object Local)

では、インストールされているOfficeのバージョンに関係なく、データテーブルデータをExcelにエクスポートできるアプリケーションを実際に作成するにはどうすればよいですか?

ありがとう。

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

c# - C#を使用してWordメールマージにPDFを挿入することは可能ですか?

Wordメールマージの各文字を含む1つ以上のPDFパンフレットを印刷する必要があります(SQL Serverからのソースクエリのフィールドの値に基づく)。これは可能ですか?または、これを達成する別の方法はありますか?

0 投票する
5 に答える
19321 参照

c# - C#のExcel[2007]にハイパーリンクを追加する-Excel内でそれ自体

.NET(c#)のOffice Interopを使用して、あるシートのセルから別のシートのセルにExcel(2007以降)でハイパーリンクを追加する方法を教えてもらえますか?

例:Sheet1セルA1からSheet2セルB10へのハイパーリンク

0 投票する
3 に答える
60373 参照

c# - C#: Excel ブックを開いたり閉じたりするにはどうすればよいですか?

Excelブックを簡単に開いたり閉じたりする方法を知っている人はいますか?

ファイルからデータを読み取る必要はありません。開いて閉じるだけで済みます。(*)

Microsoft.Office.Interop.Excel アセンブリを参照する必要があると思います。


*理由: サードパーティ ライブラリ (Aspose) でピボット テーブル情報を構成済みです。次に、生成されたピボット テーブルを読み取る必要があります。

残念ながら、Aspose ライブラリは実行時にピボット テーブルを生成できません。Excel がピボット テーブルの値を生成できるように、誰かがExcel でファイルを開く必要があります。

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

c# - 単語テンプレートのセクションを複数のフィールドに置き換える方法C#

MS Wordドキュメントで定義されたMergeFieldsを外部データソースからのデータで埋めるC#アプリケーションを作成しています。

私はOpenXmlSDKを使用していますが、単一のフィールドを置き換えるとすべてが正常に機能します。

私がやりたいのは、いくつかのMergeFieldsが定義されたセクションを作成し、入力データに従ってそのようなセクションを数回コピーできるようにすることです。

たとえば、ドキュメントに複数のMergeFieldsを持つ製品情報を含む段落を含めることができますが、データに複数の製品の情報がある場合、入力データにある製品と同じ数の段落を出力ドキュメントに生成したいと思います。

商品:[[商品名]]、金額:[[商品金額]]、価格:[[商品価格]]

段落を折り返すためのWord文書の「論理セクション」のようなものはありますか?そうでない場合、これを行うためのあなたのアドバイスは何ですか?

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

c# - インストールされている Microsoft Word Object Library の検出と動的ロード

ちょっとした裏話: Word を使用して、Word テンプレートと会社の Active Directory のデータに基づいて Outlook 署名を生成する小さなアプリケーションがあります。自分のコンピューターでコーディングしたときに「Microsoft Word 12.0 Object Library」を使用したため、Office 2007 を搭載したコンピューターでうまく機能します。

ただし、ネットワーク上には Office 2003 を使用するコンピューターがかなりの数あり、それらのコンピューターでは「Microsoft Word 12.0 Object Library」が見つからないため、左右に例外が発生します。

私の質問は次のとおりです。どのバージョンの Office がインストールされているか、つまりどのバージョンの "Microsoft Word Object Library" が利用可能かを検出し、その後それをロードするにはどうすればよいですか。私が使用している機能は、"Microsoft Word 12.0 オブジェクト ライブラリ" と "Microsoft Word 11.0 オブジェクト ライブラリ" の両方にあると確信しています。

誰かが興味を持っている場合に備えて、署名を生成するために使用されている現在のコードは次のとおりです。

どんな助けでも大歓迎です。上記のコードへの入力も歓迎します。Office Interop ライブラリに対してコーディングした経験がないので、別の方法でできることがあると確信しています。

よろしく、エギル。

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

ms-word - 区切られたフィールド名だけを使用した基本的な差し込み印刷

アプリがテンプレートに基づいて Word ドキュメントを生成するための正しい方法は、(テンプレートを管理する) 管理者ユーザーにテンプレート ドキュメントに正しい差し込みフィールドまたはブックマークを埋め込むように勧めることです。

しかし、これまで、通常は MailMerge や Word のその他の「高度な」機能を使用しない一般的な管理者ユーザーが、差し込みフィールドを使用しなければならないことで大幅に後回しになっていることがわかりました。私たちは彼らのために、ドキュメンテーションやたくさんのスクリーンショットなどを作成してみました。

彼らは何十ものテンプレートを持っており (すべて異なる種類の非常に単純な文字にすぎません)、かなり頻繁にそれらを変更したいと考えています。

彼らが本当に望んでいるのは、次のように、中かっこのような単純な区切り記号でフィールドをマークできるようにすることです。

{CustomerSurname} 様

次に、次のように数行のコードでフィールドを取得できます。

これは大雑把に感じますが、美しくシンプルです (エンド ユーザーにとって)。

他の誰かがこのルートを下ったことがありますか? 何か問題がありますか?ドキュメントの通常のテキストの他の場所では "{" と "}" の文字を使用しないことをお勧めしますが、これは実際には重大な制限ではありません。

スピード?差し込み項目を 2 行で折り返しますか? その他の問題?

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

c# - Office.Interop を使用して、ブックマークが属しているテーブル セルを特定するにはどうすればよいですか

C#でアプリケーションを作成しています。そのアプリケーションは、テンプレートから MS Word ドキュメントを作成する必要があります。そのテンプレートには、テーブルと、テーブルのセルの 1 つに格納されたブックマークが含まれています。そのセルを参照する必要があります。つまり、行と列を特定する必要があります。

0 投票する
3 に答える
2431 参照

c# - C#でMS Outlookのセキュリティポップアップを無効にする方法は?

C#を使用してMS Outlookのセキュリティポップアップを無効にする方法は?C#アプリケーションを使用して作成されるOutlookタスクを開始しようとしているときに、セキュリティポップアップが表示されます。(Microsoft Office Outlook 11.0オブジェクトライブラリを使用))

画面は次のようになります

代替テキストhttp://img248.imageshack.us/img248/2988/securitypopup.jpg

ありがとう