簡體   English   中英

無法在C#中打開Excel文件,因為格式有不同的擴展名錯誤

[英]can not open excel file in c# for different format extension error

無法在c#中打開excel文件,因為您嘗試以與指定文件擴展名不同的格式打開文件。 打開文件之前,請驗證文件是否未損壞且來自受信任的源。 您要立即打開文件嗎?

  private void button1_Click(object sender, EventArgs e)
        {
            string fileName = Directory.GetCurrentDirectory();
            fileName += "\\" + textBox1.Text + ".xls";

            var connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName + ";Extended Properties=\"Excel 12.0;IMEX=1;HDR=NO;TypeGuessRows=0;ImportMixedTypes=Text\"";
            var conn = new OleDbConnection(connectionString);
            conn.Open();

            var sheets = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
            var cmd = conn.CreateCommand();

            ///////////////////////     sheet 1
            cmd.CommandText = "SELECT * FROM [" + sheets.Rows[0]["TABLE_NAME"].ToString() + "] ";
            var adapter = new OleDbDataAdapter(cmd);
            var ds = new DataSet();
            adapter.Fill(ds);
            DataTable dt = new DataTable();
            dt = ds.Tables[0];
        }

這是因為該文件實際上基本上只是一個帶有XLS擴展名的CSV文件,以使其在Excel中打開。

它發生在新版本的Excel中。 年長的人會很樂意出口他們。

有關更多信息,請參見此Microsoft文檔:

http://support.microsoft.com/kb/948615

一種選擇是簡單地將文件名重命名為.csv,並保持用戶界面為Excel文件(Excel很高興讀取csv文件)。 鑒於Windows傾向於隱藏文件擴展名,這似乎是一個非常吸引人的選擇。

編輯

“外部表的格式不正確。” 嘗試使用帶有以下連接字符串的Excel 2007文件時,通常會發生這種情況:Microsoft.Jet.OLEDB.4.0和Extended Properties = Excel 8.0

經過:

Excel“外部表的格式不正確。”

希望對您有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM