在讀取我程序導出的Excel文件數據時,出現錯誤“外部表不是預期的格式”;
結果網上搜索時發現解決辦法:
=======================================
用記事本打開你的Excel文件,看看顯示是否為亂碼。
若是html代碼,則表示你的excel文件格式不是標准的excel格式,才會提示“外部表不是預期的格式”的錯誤;
若是亂碼,我這邊測試是不會提示這個錯誤的,可以成功導入。
其實出現這個錯誤的原因是,你的Excel是從程序中導出的,並且是使用
Response的方式直接把html代碼輸出到Excel中的
其實是可以解決的:
1/ 導出的時候使用Excel操作Api來導出就是標准格式
2/ 其次是將導出的Excel文件再次另存為新的Excel文件
=======================================
但是,我發現我所導出的Excel是采用COM組件形式生成的標准的Excel文件。
而且用記事本打開時,也是亂碼格式。
於是經過嘗試,我將原有的Excel文件另存為.xlsx擴展名,因為我本機只有Office2007,並沒有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"; }