我目前用的是如下方法将EXCEL文件导成DATATABLE public DataTable ImportToDataTable(string filepath, string sheetname)
{ OleDbConnection connection = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;data source=" + filepath + ";Extended Properties='Excel 8.0;HDR=NO;IMEX=1;'");
DataTable dt = new DataTable();
connection.Open();
dt = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); if (dt.Rows.Count > 0)
{ OleDbDataAdapter adapter = new OleDbDataAdapter("select * from [" + dt.Rows[0]["TABLE_NAME"] + "]", connection); DataSet set = new DataSet();
adapter.Fill(set);
connection.Close(); return set.Tables[0];
}
else
{
connection.Close();
return null;
}
}本来要求用户导入的是EXCEL文件,这个EXCEL文件也是他们导出的,所以格式不能改变,可是他们导出的虽然是后缀为.XLS的文件,但实际确实文本格式的(用文本打开没有格式,可以正常显示,应该不是EXCEL文件),应该如何修改上面的方法,可以导出这种伪EXCEL格式文件呢,或者换一种方法导入,望高手解答
{ OleDbConnection connection = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;data source=" + filepath + ";Extended Properties='Excel 8.0;HDR=NO;IMEX=1;'");
DataTable dt = new DataTable();
connection.Open();
dt = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); if (dt.Rows.Count > 0)
{ OleDbDataAdapter adapter = new OleDbDataAdapter("select * from [" + dt.Rows[0]["TABLE_NAME"] + "]", connection); DataSet set = new DataSet();
adapter.Fill(set);
connection.Close(); return set.Tables[0];
}
else
{
connection.Close();
return null;
}
}本来要求用户导入的是EXCEL文件,这个EXCEL文件也是他们导出的,所以格式不能改变,可是他们导出的虽然是后缀为.XLS的文件,但实际确实文本格式的(用文本打开没有格式,可以正常显示,应该不是EXCEL文件),应该如何修改上面的方法,可以导出这种伪EXCEL格式文件呢,或者换一种方法导入,望高手解答
你也可以直接在工程中引用excel.dll来操作excel文件,读取里面的单元格内容。导出的时候也一样,你可以先用程序建立一份excel文件,把数据写入到单元格。