問題タブ [pia]

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 投票する
8 に答える
2167 参照

c# - COMコンポーネントをリリースする

Marshal.ReleaseComObject(..)を呼び出して、COMコンポーネントが不要になったときに、Office PIAからCOMコンポーネントを解放する必要が本当にありますか?

このトピックに関するさまざまな矛盾したアドバイスをWebで見つけました。私の意見では、Outlook PIAは常にインターフェイスへの新しい参照をメソッドからの戻り値として返すため、明示的に解放する必要はありません。私は正しいですか?

0 投票する
4 に答える
6341 参照

c# - MSAccessDBからのソースコードの抽出

ソース管理に配置できるように、ソースコードを抽出したいAccessDBがあります。

Primary Interop Assemblies(PIA)を使用してデータを抽出しようとしましたが、すべてのモジュールとフォームを取得していないため、問題が発生しています。

コードには140個のフォームとモジュールがあります(質問しないでください。これは私が継承したレガシーシステムです)が、PIAコードはそのうち91個しか取得していません。

これが私が使用しているコードです。

そのコードに何が欠けている可能性があるかについての提案はありますか?または私のためにこれを行う製品/ツールで?

編集:これはディスクにスクリプト化する必要があることにも言及する必要があります。ソースシステムはSVNであるため、VSSとの統合はオプションではありません。ありがとう。

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

.net - ExcelPIAアセンブリの列挙型にTypeConvertersを使用するのに役立ちます

TypeCoverterを使用して、Excelに読み込まれたPIAであるアセンブリ内の列挙型の出力を地域化したいと思います。

これを実行でき、明示的に参照されたアセンブリを使用して作成したテストプロジェクトのアセンブリで機能しますが、ExcelPIAとしてビルドされたプロジェクトを実行する場合は機能します。試してみると:_ public enum MyEnum ItemA ItemB end enum

コード内でmyE=MyEnum.ItemADimコンバーターAsSystem.ComponentModel.TypeConverter= TypeDescriptor.GetConverter(myE)

即時ウィンドウで?converter.ToString()は「System.ComponentModel.EnumConverter」を取得します

一方、他のプロジェクト(これも強く署名されたアセンブリですが、新しく作成されたスタブウィンドウフォームプロジェクトから直接参照されます)では、

?converter.ToString "ClassLibrary1.LocalizedEnumConverter"

したがって、LocalizedEnumConverterが列挙型にバインドされていないように見えます-何かアイデアはありますか?これは、Excelがアセンブリを読み込む方法が原因でしょうか。また、これを回避する方法はありますか?

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

c# - ASP.NET を使用した Excel の自動化

バックグラウンド

ASP.NET 2.0 を使用して、いくつかの社内ユーティリティを開発しています。その 1 つは、データベースからいくつかの情報を抽出し、データベースへのクエリに基づくデータを含む多数のスプレッドシートを含む Excel ワークブックを作成することです。

問題

概念実証のプロトタイプ (データベースから 1 つの項目をクエリし、Excel を開いてワークシートにデータを追加する単純な ASP.NET ページ) は、開発用コンピューターでローカルに実行するとうまく機能し、Excel スプレッドシートを問題なく作成して表示できます。要求どおり。ただし、サーバーで実行すると、 Excel をインスタンス化しようとすると次のエラーが発生します。

タイプ 'Microsoft.Office.Interop.Excel.ApplicationClass' の COM オブジェクトをインターフェイス タイプ 'Microsoft.Office.Interop.Excel._Application' にキャストできません。IID '{000208D5-0000-0000-C000-000000000046}' を持つインターフェイスの COM コンポーネントでの QueryInterface 呼び出しが次のエラーにより失敗したため、この操作は失敗しました: No such interface supported (HRESULT からの例外: 0x80004002 (E_NOINTERFACE)) .

解決?

Excel 2003 用の PIA を使用しており、サーバーには Excel 2003 と PIA がインストールされています。これがうまくいかない理由を説明したり、問題を追跡する方法についてのヒントを教えてもらえますか?

ご協力いただきありがとうございます。

0 投票する
7 に答える
27028 参照

c# - C# 相互運用: 新しいワークシートを既存のファイルに追加した後、Excel プロセスが終了しない

重複の可能性:
C# で Excel 相互運用オブジェクトを適切にクリーンアップする方法

終了時に Excel プロセスが正しく終了することを確認するために .Net-Excel 相互運用機能を使用しながら COM 参照を管理することについて、ここで他の多くのスレッドを読みました。新しいワークシートを既存のワークブック ファイルに追加するときの問題。

以下のコードは、ゾンビの Excel プロセスを残します。

新しく作成したワークブック ファイルにワークシートを追加すると、正常に終了します。行を除いてコードを実行すると、正常に.Add()終了します。(私が読んでいる既存のファイルは、コメントアウトされたコードによって作成された空のファイルです)

何か案は?

0 投票する
4 に答える
7497 参照

deployment - Office 2007 なしで Office 2007 PIA 展開は可能ですか?

Office 2007 PIA には、Office 2007 もインストールする必要がありますか? Office 2007 PIA を VSTO 3.0 と共に (Office 2007 をインストールせずに) 展開できますか?

編集: MS Word ファイルを生成する Windows アプリケーションがあります。Office 2007 PIA をセットアップのカスタム前提条件として追加しましたが、Office 2007 PIA をインストールするには MS Office 2007 が必要です。

VSTO が Office のインストールを必要としない場合、アプリケーションを VSTO に変換できる可能性があることを知りたかっただけです。

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

visual-studio-2008 - Visual Studio 2008 は 1.0 アセンブリを参照できますか?

.NET 1.0 フレームワークをターゲットにしているように見える古いアセンブリ (Office XP PIA) があります。アセンブリが登録され、GAC (および Win32 レジストリ) に表示されますが、[参照の追加] を選択しても Visual Studio 2008 に表示されません。

Visual Studio は古いアセンブリの参照をサポートしていますか?

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

c# - PIAを使用してMicrosoft Word文書エディタを独自のアプリケーションに挿入することは可能ですか?

Business in the box のような独自のアプリケーションで Office Primary Interop アセンブリを使用する方法。出来ますか?

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

pia - 2007 互換性パックをインストールした後、Office プライマリ相互運用機能アセンブリが機能しない

Word と Excel の自動化を行う C# プログラムがあり、Office 2003 Primary Interop Assemblies を使用していました。私がそれを展開した方法は、ビンに相互運用機能を含めることであり、GAC から参照するのではなく、プログラムにそこから参照させました (あまり専門的ではありませんが、何年も機能していました)。最近、3 台のマシンに Office 2007 互換性パックがインストールされましたが、ソフトウェアが Word または Excell を起動しようとすると、次のエラーが表示されます。

タイプ Microsoft.Office.Interop.Word.ApplicationClass の COM オブジェクトをインターフェイス タイプ Microsoft.Office.Interop.Word.Application にキャストできません。IID {00020970-0000 のインターフェイスの COM コンポーネントで QueryInterface 呼び出しが行われたため、この操作は失敗しました-0000-C000-000000000046} は次のエラーにより失敗しました: ライブラリが登録されていません。(HRESULT からの例外: 0x8002801D (TYPE_E_LIBNOTREGISTERED))

いくつか検索した結果、互換パックをインストールすると、Word11 と Word12 の両方が GAC にインストールされ、Excel と同じであることがわかりました。

プログラムで GAC の Word11 相互運用機能を参照しようとしましたが、まだ助けがありません。Word12 相互運用機能をアンストールしましたが、まだ助けがありません。これをインストールすると、一部のレジストリ設定が変更されたか、ソフトウェアが混乱して正しいライブラリが見つからないように見えます。

誰かアイデアはありますか?

0 投票する
0 に答える
2192 参照

c# - プライマリ相互運用機能アセンブリがインストールされているかどうかを確認する方法は?

重複の可能性:
Excel の .net 相互運用性がインストールされているかどうかを確認する方法

C# コードで Microsoft.Office.Interop.Excel を "使用" しています。

Microsoft.Office.Interop.Excel に関連するコードは、そのマシンに PIA for Excel がインストールされている場合にのみ使用したいと考えています。

しかし、その関数を呼び出すと例外が発生します (これは Excel 相互運用性を使用します)。

そのコードが実際に呼び出されていないのに、なぜ例外が発生するのですか? この問題を回避するにはどうすればよいですか? つまり、インストールされている場合にのみ Excel PIA を使用します。

ありがとう