在DataSet中绑定检索到的excel列时,将检索除最后一列之外的所有列

时间:2016-08-29 06:26:27

标签: c#

我需要在ASP.NET MVC中导入excel文件。导入正在根据需要工作,excel文件中有78列。除最后一列外,所有列都已导入。

我怎样才能从excel文件中检索最后一列?

string conString = string.Empty;
                        if (getFileExtension.ToLower() == ".xls")
                        {
                            conString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + getFileName + ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=2\""; ;
                        }
                        else if (getFileExtension.ToLower() == ".xlsx")
                        {
                            conString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + getFileName + ";Extended Properties=\"Excel 12.0;HDR=Yes;IMEX=2\"";
                        }
                        OleDbConnection con = new OleDbConnection(conString);
                        if (con.State == ConnectionState.Closed) con.Open();
                        DataTable ExcelSheets = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
                        string SpreadSheetName = ExcelSheets.Rows[0]["TABLE_NAME"].ToString();
                        string query = "SELECT * FROM [" + SpreadSheetName + "]";
                        OleDbCommand cmd = new OleDbCommand(query, con);
                        OleDbDataAdapter da = new OleDbDataAdapter(cmd);
                        DataSet ds = new DataSet();
                        da.Fill(ds);
                        da.Dispose();
                        con.Close();
                        con.Dispose();

1 个答案:

答案 0 :(得分:1)

根据Import from excel to datatable skipping last column values,这可能是Excel或OleDb错误。

作为一种变通方法,您可以考虑修改Excel工作表,以便在末尾添加其他列标题,而列中没有数据。然后,导入期间跳过的列将是您不需要的列。