2015-09-11 4 views
0

Не знаю, почему я получаю ошибку "Too Many Fields Defined", хотя я только пытаюсь создать лист Excel с 6 столбцами в нем. Я думал, что предел был 255 столбцов.Ошибка «Too Many Fields Defined»

Это как мой код выглядит:

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'"))