2

SharePoint ドキュメント ライブラリから Excel ファイルを開こうとしています。私のアプリケーションは特定のファイルを検索し、そのリンクを取得し、それを使用してダウンロードしてさらに開きます。

私のアプリは自分のマシンとテスト サーバーで動作しますが、品質保証サーバーに送信すると問題が発生します。

私は QA マシンにアクセスできませんし、アクセスすることもできません。私が持っているのは、何が起こるかを見るための一連の Console.writes だけです。

私が知る限り、Excelを開こうとして次のエラーが発生するまで、すべて正常に機能します。

Old format or invalid type library. (Exception from HRESULT: 0x80028018 (TYPE_E_INVDATAREAD))

私の検索によると、これは OS 言語に関連するバグ、またはこの回避策を持つ 2 つの OS 言語の違いhttp://support.microsoft.com/kb/320369です。

問題は、すべての OS 言語プロパティがすべてのマシンで同じであるということです。これが問題になる場合、自分のマシンでもテスト サーバーでも Excel を開くことができません。また、回避策として InvokeMember? を使用します。なぜ私がそのようなことをするのか本当にわかりません。

コード: (私は Microsoft.Office.Interop.Excel を使用しています;)

MSExcel.Application MyExcel = new MSExcel.ApplicationClass();
MSExcel.Workbook wb = MyExcel.Workbooks.Open(link, 0, true, 5, "", "", false, XlPlatform.xlWindows, "", true, false, 0, true, true, false);//Add(pathExcel);
MSExcel.Worksheet MyWS = (MSExcel.Worksheet)wb.Worksheets.get_Item(1);

link はファイルの完全な URL です。

この件について何か光があれば幸いです。誰かが同じことをする別の方法を持っているなら、私も感謝します。

前もって感謝します。

4

1 に答える 1

0

このリンクを見てください

BUG: Excel を自動化するときの「古い形式または無効なタイプ ライブラリ」エラー

OR Same は、スタック オーバーフローでここでも使用できます

古い形式または無効なタイプ ライブラリです。(HRESULT からの例外: 0x80028018 (TYPE_E_INVDATAREAD))

于 2012-12-19T12:57:08.357 に答える