我有一個網站,用戶可以上傳一個xlsx文件。我的應用程序然後讀取內容並執行一些操作。 但是當有些用戶上傳文件時,我的應用程序無法讀取錯誤'外部表格不是預期格式'的內容無法讀取在C#中使用OLEDB xlsx文件#
其中一個用戶正在使用Excel 2007.奇怪的是,如果我打開他的文件與我的Excel 2013並保存它沒有改變任何東西,它工作正常。
這是OLEDB的ConnectionString:
OleDbConnection oledbConn = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;
Data Source=" + filepath + @";
Extended Properties='Excel 12.0;HDR=YES;IMEX=1;';");
而且我已經安裝了微軟的AccessDatabaseEngine。
另一件事是,如果我將新保存的文件(Excel 2013)重命名爲* .zip,那麼我可以用rar/explorer打開它,但是如果我嘗試用他的文件(Excel 2007)做同樣的事情,我可以打開它。
編輯:我現在在我的電腦上安裝了Office 2007,所以我同時擁有2007和2013. 然後我做了拉鍊試用,並且使用相同的文件,每次使用2007保存時,我都無法打開winrar,但當我在2013年保存時,它工作正常。我多次使用相同的文件來回執行此操作。同樣的結果。
編輯2:建議並使用EPPlus。同樣的結果。當使用Excel 2013保存工作正常,但當使用Excel 2007
該文件可能不是一個真正的'xlsx'文件,而只是一個包含一個表的HTML文檔,它只是重命名爲'xlsx'? (有些應用程序生成這樣的excel文件 - MS Excel能夠打開這些文件,但試圖用OleDB讀取或使用OpenXML讀取失敗)。也許嘗試使用記事本打開文件,看看它實際上是一個HTML而不是'xlsx'文檔。 – bassfader
試圖用Notepad ++打開它,它都是亂碼,所以非常確定情況並非如此。此外,該文檔具有一些功能,據我所知,它不能保存爲HTML。 – Neophear
[讀取服務器上的Excel文件]的可能重複(https://stackoverflow.com/questions/20157180/reading-excel-file-on-the-server) – krillgar