Asp.Net excelファイルを読み込むときのエラーメッセージ:外部テーブルが予想されるフォーマットではありません
1868 ワード
マイプログラムでエクスポートしたExcelファイルのデータを読み込むと、「外部テーブルが予期したフォーマットではない」というエラーが発生します.
その結果、ネット検索で解決策が見つかりました.
=======================================
メモ帳でExcelファイルを開き、文字化けして表示されているかどうかを確認します.htmlコードの場合、あなたのexcelファイルフォーマットが標準的なexcelフォーマットではないことを示し、「外部テーブルが予想されるフォーマットではない」というエラーが表示されます.文字化けしたら、こちらのテストではこのエラーは提示されず、インポートに成功します.このエラーの原因は、あなたのExcelがプログラムからエクスポートされ、Responseを使用してhtmlコードを直接Excelに出力することで解決できます.
1/エクスポート時にExcel操作Apiでエクスポートするのが標準フォーマット
2/次に、エクスポートされたExcelファイルを新しいExcelファイルとして再保存します.
しかし、私がエクスポートしたExcelはCOMコンポーネント形式で生成された標準的なExcelファイルであることに気づきました.
しかも手帳で開くときも、文字化けしています.
そこで試して、私は元のExcelファイルを名前を付けて保存しました.xlsx拡張子は、Office 2007のみなので、2003テクニック以前のバージョンはありません.
再試行、成功!
この点から、私がエクスポートしたExcelファイル拡張子の定義が間違っているかどうかを分析し、プログラムを修正しました.
実行環境がどのバージョンのExcelであるかを判断し、Excelを再エクスポートし、インポートしました.
なお、本機のExcelバージョンを判断するプログラムコードは、
その結果、ネット検索で解決策が見つかりました.
=======================================
メモ帳でExcelファイルを開き、文字化けして表示されているかどうかを確認します.htmlコードの場合、あなたのexcelファイルフォーマットが標準的なexcelフォーマットではないことを示し、「外部テーブルが予想されるフォーマットではない」というエラーが表示されます.文字化けしたら、こちらのテストではこのエラーは提示されず、インポートに成功します.このエラーの原因は、あなたのExcelがプログラムからエクスポートされ、Responseを使用してhtmlコードを直接Excelに出力することで解決できます.
1/エクスポート時にExcel操作Apiでエクスポートするのが標準フォーマット
2/次に、エクスポートされたExcelファイルを新しいExcelファイルとして再保存します.
しかし、私がエクスポートしたExcelはCOMコンポーネント形式で生成された標準的なExcelファイルであることに気づきました.
しかも手帳で開くときも、文字化けしています.
そこで試して、私は元のExcelファイルを名前を付けて保存しました.xlsx拡張子は、Office 2007のみなので、2003テクニック以前のバージョンはありません.
再試行、成功!
この点から、私がエクスポートしたExcelファイル拡張子の定義が間違っているかどうかを分析し、プログラムを修正しました.
実行環境がどのバージョンのExcelであるかを判断し、Excelを再エクスポートし、インポートしました.
なお、本機のExcelバージョンを判断するプログラムコードは、
Excel.Application m_xlApp = new Excel.Application();
// Excel
string version = m_xlApp.Version;
string fileExtension = ".xls";
if (version == "12.0")
{
fileExtension = ".xlsx";
}