我正在上传一张有5张纸的Excel。在上传时,我收到的错误是“TOO MANY FIELDS DEFINED”
public DataSet ExportQCCheckData(string filepath)
{
string path = filepath;
OleDbConnection con;
System.Data.DataTable dt = null;
//Connection string for oledb
string conn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + path + "; Extended Properties='Excel 8.0;IMEX=1;'";
con = new OleDbConnection(conn);
try
{
con.Open();
//get the sheet name in to a table
dt = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
String[] excelsheets = new String[dt.Rows.Count];
int i = 0;
//using foreach get the sheet name in a string array called excelsheets[]
foreach (DataRow dr in dt.Rows)
{
excelsheets[i] = dr["TABLE_NAME"].ToString();
i++;
}
DataSet ds = new DataSet();
int cnt = 0;
foreach (string temp in excelsheets)
{
if (temp == "BASIC$" || temp == "SHORT$" || temp == "CLASS$" || temp == "MEMO$" || temp == "SOURCE$")
{
string query = "select * from [" + temp + "]";
OleDbDataAdapter adp = new OleDbDataAdapter(query, con);
adp.Fill(ds, temp);
cnt++;
}
}
if (cnt != 5)
{
ds = null;
}
return ds;
}
catch (Exception ex)
{
Console.Write(ex.Message);
DataSet ds = null;
return ds;
}
finally
{
con.Close();
}
}
答案 0 :(得分:1)
错误属于excel表上的字段数,请添加excel表。您需要验证Excel工作表不包含很多列
答案 1 :(得分:0)
此问题是由于excel包含许多列。所以我这样做意味着,只需选择所有空单元格
控制 -
然后我上传了excel表,它上传了。