私は既にここでSOを検索しました。this、this、this以上ですが、手がかりがないので、皆さんにお尋ねしてください。ファイルが有効なExcelスプレッドシートかどうかを確認するにはどうすればよいですか?
Interop経由でExcelファイルを開こうとしていますが、Office 2007がインストールされているため、Microsoft.Office.Interop.Excel
バージョン14.0
を使用しています。
有効なxls
ファイルを開こうとすると、すべて正常に動作します。
しかし、Interopで無効なファイル(ビットマップや実行可能ファイルなど)を開こうとすると、エクセルは警告や警告なしでファイルを開きます。
Excelで無効なブックファイルが読み込まれ、アラートをブロックせずに検出できますか?
私はExcelオブジェクトリーダーの単体テストを作成しようとしています。ケースの1つは、無効なファイルを開こうとすることです。
助けるためにいくつかのコード: アプリケーションの作成:
_app = new Application()
{
Visible = false,
DisplayAlerts = false, // <-- I don't want to remove this.
AskToUpdateLinks = false,
};
ワークブックの開口部:
_workbooks.Open(filename);
_workbook = _workbooks.get_Item(1); // 1-based.
_worksheets = _workbook.Sheets;
EDIT: わずか1より多くの情報を追加する:Excelは、無効なファイルをロードします。
正当なファイルext .csvまたはxlsを確認するのが簡単です。 – MethodMan
無効なファイルを読み込むときに_app.Readyプロパティがfalseになることがあります。ちょうど私はそれを試していないと思った。 – Tod
@DJ KRAZE、ファイルをロードする前に拡張子をチェックしています。しかし、誰かがファイル拡張子を変更し、代わりに.exeをロードしようとするとどうなりますか? – Machado