不知道为什么我得到"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();
}
我错过了什么吗?
天哪。刚将文件扩展名更改为xlsx
,现在可以工作了。
OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\MyFile.xlsx;Extended Properties='Excel 12.0 Xml;HDR=Yes'"))