当在DataSet中绑定检索到的excel列时,除最后一列外,所有列都被检索绑定
本文关键字:检索 绑定 一列 DataSet excel 最后 当在 列时 | 更新日期: 2023-09-27 18:04:23
我需要在ASP中导入excel文件。净MVC。导入工作按需进行,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();
根据从excel导入到数据表跳过最后一列的值,这可能是excel或OleDb的错误。
作为一种变通方法,您可以考虑修改Excel工作表,以便在末尾添加一个额外的列标题,列中没有数据。然后,在导入过程中跳过的列将是您不需要的列。