問題タブ [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.
c# - C#:Excel2007チャートを作成/Word2007に挿入
Officeの相互運用性を備えたExcel2007グラフをWord2007に作成して挿入するにはどうすればよいですか?
重要:グラフを作成するためにExcelファイルを保存したくありません。
c# - Microsoft.Office.Interop.Excel.WorkbookClass.ResetColors() の Excel オートメーション/Office 相互運用に関するエラー
これと同じ手法を使用して、何千もの Excel ドキュメントを PDF に変換するアプリケーションを作成しました (これは遅い方法ですが、速度については心配していません) 。ただし、Word ではなく Excel を使用します。
次のコードを追加する必要がありました。
これは Workbook オブジェクトにあります。ほとんどの場合、これで問題なく動作しますが、一部のファイルでは次のエラーが発生します (無関係なビットが出力されます)。
VBA で Excel マクロを使用して同じことを行うと、次のエラーが発生します。
スプレッドシート自体にはマクロ コードはありません。共通しているように見える唯一のことは、シートの数が多いことです。
以前にこれに遭遇した人はいますか? 良い回避策を知っていますか? 現時点では、エラーを検出してファイルを手動で変換することだけを考えています(うん)。理想的には、このメソッド呼び出しが失敗するかどうかを判断するために使用できる何かが API にあることを願っています。私はグーグルを見ましたが、役に立つものは何も見つかりませんでした。
.net - .Netを使用してOutlookPSTファイルを作成するにはどうすればよいですか?
Outlookのデータを操作するアプリを書いています。最初にそのデータのバックアップを作成したいと思います。連絡先やカレンダーの項目などをループして、PSTファイルに書き出すことができればと思っています。
.Netを使用して1つまたは複数のOutlookフォルダーの内容をPSTに書き込むにはどうすればよいですか?[vbまたはc#は関係ありません]
.net - 単語文書のテキストを目に見えない形でマークアップする
ユーザーが次のことができるようにするWord2007アドインを作成したくありません。
- 単語文書のテキストの部分グラフなどを強調表示します。
- ツールバーボタンをクリックするか、右クリックメニューからオプションを選択して、テキストをある種のデータとして「マーク」します(4つの異なるタイプのデータのうち3つがあります)
- また、一部のテキストを選択してマークを解除する機能(これにより、選択範囲が自動的に拡張され、マークアップされたテキスト全体がカバーされます)。
ドキュメントをマークアップする人は技術的ではないので、私たちはそれを非常にシンプルに保ちたいと思っています。
私はこれを実装できるいくつかの異なる方法を調査してきました:
- ブックマーク-ブックマークに名前を付ける。つまり、タイプが強調表示されて「マーク」されるたびに、アプリはタイプ名の後に数字(my_custom_type-1、my_custom_type-2など)が続くブックマークを追加します。
- 非表示のテキスト-非表示のテキストをドキュメントに貼り付ける(フォントが非表示に設定されている)-基本的に、選択した段落を非表示のテキスト、つまり{my_custom_type} ... {/ my_custom_type}で囲み、他の種類のテキストを{another_custom_typeで囲むことができます。 } ...{/another_custom_type}など。
- 名前付きスタイル-データのタイプごとにスタイルがあり、Range.set_Style(...)メソッドを使用してスタイルを設定します。
これまでのところ、オプション3を試しました。これは、テキストをマークアップするのにうまく機能しているようですが、テキストをマークアップしようとするとうまくいきません(たとえば、タイプを「通常」に戻そうとすると、機能しません。 set_Styleメソッドを使用)。
これらは、プログラムで(ドキュメントに追加のコンテンツを物理的に表示せずに)ワードドキュメントのテキストをマークアップする唯一の方法ですか?特に、マークアップされたすべてのデータを解析する必要がある場合は、誰かが別のアプローチよりも推奨できます。
vba - Microsoft Office定数(msoTrue、ppLayoutText ...)をLotusScriptにインポートする方法は?
LotusNotesドキュメントのコンテンツからプログラムでPowerPointプレゼンテーションを作成しようとしています。これは比較的簡単に使用CreateObject("Powerpoint.Application")
できますが、VBAで使用されるさまざまな定数にアクセスする方法を見つけることができません。
もちろん、1つの解決策は(10程度の)値をスクリプトにハードコーディングすることですが、明らかな理由から、私はその解決策に少し不安を感じています。
たとえばmsoTrue
、またはppLayoutText
LotusScriptを使用しての値を検索する方法はありますか?たとえば、Powerpoint.Application
オブジェクトに値を照会する方法はありますか?
(より有能な言語では、さまざまなInterop
ライブラリを追加することでうまくいくようですが、LotusScriptでそれを行う方法が見つかりませんでした。)
編集 私は、Officeを除いて、ソフトウェアやdllを追加インストールしなくても機能するソリューションを好みます。
c# - MAPI インターフェイス経由で MailItem からメール フォルダーを取得する
受信メールの添付ファイルからレポートを自動的に生成するプログラムを作成していますが、1 つの領域を除いてほぼ完全です。受信メールは、送信元のクライアントとサーバーを区別するフォルダーに自動的にフィルター処理されます。メールアイテムからフォルダーのパスを取得する方法がわかりません。
イベントを使用してNewMailEx
以下のメソッドを呼び出しており、this.AppNamespace
適切this.ReportFolder
にインスタンス化されていることが確認されています。
MSDNMailItem
はこちらです。私は何かを見逃していますか、これに間違った方法でアプローチしていますか?
office-interop - MS Office Interop アセンブリを使用したアプリケーションのコンパイル
専用のビルド コンピューターで Excel 相互運用アセンブリを使用する C# アプリケーションをビルドする必要があります。ビルドボックスにMS Officeをインストールせずにそれを行う方法はありますか?
c# - C# からの Word ファイルの生成を高速化するには?
比較的大量の Word 出力を生成するアプリケーションに取り組んでいます。現在、ドキュメントの作成には Word Interop サービスを使用していますが、特に古い (2007 年より前の) バージョンの Office では非常に時間がかかります。生成を高速化したいと考えています。
私はまだ多くのプロファイリングを行っていませんが、大量の COM 呼び出しを行っていることが問題であると確信しています。プロファイリングによって、他の呼び出しよりも遅い呼び出しのサブセットが得られることを願っていますが、私の直感では、おそらくいくつかの遅い呼び出しではなく、COM オーバーヘッド (または Word Interop オーバーヘッド) の問題であることがわかります。
また、この製品は HTML 出力を生成でき、そのプロセスは (a) 非常に高速であり、(b) HTML 固有の機能のサブクラスが異なるだけで、ほとんど同じコードパスを使用します。したがって、私たちのアルゴリズムが根本的に遅いわけではないと確信しています。
だから... Word ファイルの生成を高速化するための代替方法の提案を探しています。
生成された HTML ファイルの名前を .doc に変更したり、代わりに RTF を生成したりすることはできません。どちらの場合も、重要な書式設定情報が失われます。RTF の場合、インライン グラフィックは確実に機能しません。
私たちが評価しているアプローチの 1 つは、フラット ファイルを使用して必要な出力を作成する方法を知っているマクロを含むテンプレートから (相互運用機能を介して) プログラムで Word ファイルを生成して開くことです。私たちは、そのアプローチに関するフィードバック、および物事をスピードアップするためのその他のアイデアに関心があります。
c# - SSRS レポートからの複数のシートを含む Excel ファイル
3 つのバイト配列があり、それぞれが .xls ファイルで表現されているとしましょう。それらを 3 つのシートを持つ 1 つの xls ファイルに結合する方法を教えてください。SSRS レポートは非常に豊富で、図表が含まれています。
パフォーマンスは重要ではないので、必要に応じてディスクに保存できます。最後の手段として、Excel マクロを使用することもできます (その方法を知っていれば)。microsodt.office.interop.excel を使用しようとしましたが、ファイルに新しいシートを追加することしかできず、既存のシートを追加できませんでした。
どんな助けでも大歓迎です。
c# - Excel は、書式設定を失わずに値を置き換えます
Office Automation を使用して Microsoft Excel (2003) を自動化するアプリケーションを入手しました。それが行うことの1つは、値を置き換えることです。私が得た問題は、値を置き換えると、ここで説明されているようにすべてのリッチフォーマットが失われることです: http://support.microsoft.com/kb/177194
明確にするために、次のようにセル内の valueX を valueY に置き換え
ます。
これにより、次の
ようになります。
置き換える前にセル内の書式を取得しようとしたので、どの文字が太字であるかを保存し、値が置き換えられた後に書式を適用できました。しかし、各文字のフォーマットを取得する方法が見つかりませんでした。(C#)
上記の Web サイトで提供されている解決策を使用せずに、この問題を解決する方法はありますか? C# または Excel のいくつかの回避策