0

これと同じ手法を使用して、何千もの Excel ドキュメントを PDF に変換するアプリケーションを作成しました (これは遅い方法ですが、速度については心配していません) 。ただし、Word ではなく Excel を使用します。

次のコードを追加する必要がありました。

book.ResetColors();

これは Workbook オブジェクトにあります。ほとんどの場合、これで問題なく動作しますが、一部のファイルでは次のエラーが発生します (無関係なビットが出力されます)。

Exception from HRESULT: 0x800A03EC
System.Runtime.InteropServices.COMException: Exception from HRESULT: 0x800A03EC
   at Microsoft.Office.Interop.Excel.WorkbookClass.ResetColors()

VBA で Excel マクロを使用して同じことを行うと、次のエラーが発生します。

Run-time error '1004':

Method 'ResetColors' of object '_Workbook' failed

スプレッドシート自体にはマクロ コードはありません。共通しているように見える唯一のことは、シートの数が多いことです。

以前にこれに遭遇した人はいますか? 良い回避策を知っていますか? 現時点では、エラーを検出してファイルを手動で変換することだけを考えています(うん)。理想的には、このメソッド呼び出しが失敗するかどうかを判断するために使用できる何かが API にあることを願っています。私はグーグルを見ましたが、役に立つものは何も見つかりませんでした。

4

1 に答える 1

1

このように聞こえるのは、ワークステーションごとにカラー パレットが異なるという問題に関連している可能性があります。おそらく、攻撃的な xls を作成した人が非標準のパレットを持っていたのでしょう。

この投稿を確認することをお勧めします:
Font.Color を設定するときの Excel 2007 VSTO プラグインの例外

于 2010-11-19T15:02:19.593 に答える