![](/img/trans.png)
[英]the file you are trying to open is in a different format than specified by the file extension c# error when trying to open file in 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
經過:
希望對您有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.