2015-09-11 60 views
0

不知道爲什麼我得到"Too Many Fields Defined"錯誤,即使我只是試圖創建其中有6列的Excel工作表。我認爲極限是255列。「太多字段定義」錯誤

這是我的代碼的外觀:

using (OleDbConnection conn = new 

OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\MyFile.xls;Extended Properties='Excel 12.0 Xml;HDR=Yes'")) 
{ 
    conn.Open(); 
     var schema = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "Table" }); 

     OleDbCommand cmd = new OleDbCommand(); 
    cmd.Connection = conn; 
     cmd.CommandType = CommandType.Text; 
    if (schema.Rows.OfType<DataRow>().Any(r => r.ItemArray[2].ToString().ToLower() == "sheet1")) 
     { 
        cmd .CommandText = "DROP TABLE [Sheet1]"; 
        cmd.ExecuteNonQuery(); 
       } 

    cmd.CommandText = "CREATE TABLE [Sheet1] ([C1] string, [C2] string, [C3] string, [C4] string, [C5] string, [C6] string)"; 
    cmd.ExecuteNonQuery(); 
} 

我失去了一些東西在這裏?

回答

0

哦,男孩。只需將文件擴展名更改爲xlsx即可使用。

OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\MyFile.xlsx;Extended Properties='Excel 12.0 Xml;HDR=Yes'"))