Excel Interopは処理されたファイルから画像を削除しています。ファイルを処理した後にExcel Interopで画像が削除されるのはなぜですか?
私はExcel Interopを使用していますが、サードパーティのコンポーネントは存在しません。 ワークフローている - 、細胞を移入、ファイルのコピー(ターゲット)(テンプレート)を作成、変更ラジオボタンの状態
- 既存.xslmファイルのコピー(ターゲット)(テンプレート) を作成します。
- 移入標的細胞、変更ラジオボタンの状態
- 画像とワークシートが変更されない
- 閉じるターゲット
私の開発マシンでは、ターゲットファイルはすばらしく見えます。すべてが読み込まれ、イメージが存在します。 注意:私の開発マシンでは、VS2010 IDEからコードを実行しています。
プロダクションマシンでは、すべてが設定されていますが、イメージは存在しません。 代わりに、次のエラーがその場所に表示されます。 NB:プロダクションマシンでは、ローカルサービスアカウントを使用してサービスとして実行されています。
は、ブック全体を次のコードを経由して開かれた「関係ID RID1の画像部分がファイルに見つかりませんでした」:
var workbook = workbooks.Open(targetPath
0, false, 5, Type.Missing, Type.Missing, false, XlPlatform.xlWindows, "",
true, false, 0, true, false, false);
ことに注意してくださいとのワークシートイメージはコード内で操作されません。
ワークブック(および個々のワークシート)は保護されています。ただし、保護されたテンプレートは開発環境で正しく処理されますが、運用環境では処理されません。私は保護がそれと関係がないと思っています(しかし、誰が知っていますか?これはInteropです)。
ファイルは他の人によって作成されたもので、すべてのコンポーネント(イメージ)は別のサーバーへのリンクではなく、.xslm構造内にあります。
イメージは、テンプレートファイルの本番マシンでは表示されますが、処理されたファイルでは表示されないことが確認されています。
プロダクション内でファイルを開く際にこれが問題ではないことを確認するために、私は自分自身にメールを送信し、画像は存在し続けませんでした。
私の開発マシンでは、処理されたファイルに可視画像があることも確認しました。
私はワークシートの保護を解除し、ファイル構造を解凍しました。 .jpgファイルは実際には本番マシンの処理対象には存在しません。
注 - Office 2010は開発マシンにインストールされていますが、Office 2007は本番マシンにインストールされています。その結果、私はOffice 12 Interopを使用しています。いずれの環境でも実行時エラーは生成されません。
OpenXmlライブラリではなくInteropを使用していますが、ActiveXコントロールが存在するため、このオブジェクトを実装する必要があります。ただし、ActiveXコントロールには問題がありません。正常に動作しています。これは、処理されたファイルから消滅しているイメージファイルです(テンプレートファイルで問題なくレンダリングされます)。
更新注:他の4つのイメージファイルがあります。すべてが.emf
で、別のワークシートにあります。彼らはまたすべて剥奪されます。
を示します万が一WindowsサービスまたはASP.NETアプリケーションでこのIS? – Yahia
これはWindowsサービスです。ああ。サービスの相互運用。 –
これは問題の一部です - サービス内のInteropはMSによってサポートされていません(http://support.microsoft.com/default.aspx?scid=kb;EN-US;q257757#kb2を参照)。 – Yahia