上传excel文件时,获取Oledb Exception -Too定义了多个字段?

时间:2012-07-02 06:12:01

标签: c# asp.net excel file-upload export-to-excel

我正在上传一张有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();
    }
}

2 个答案:

答案 0 :(得分:1)

错误属于excel表上的字段数,请添加excel表。您需要验证Excel工作表不包含很多列

答案 1 :(得分:0)

此问题是由于excel包含许多列。所以我这样做意味着,只需选择所有空单元格

  

控制 -

然后我上传了excel表,它上传了。

相关问题