我之前用过一个方法,不用装Excel也能读取Excel数据,分享下代码:
在程序里用的是ADO.NET,连接字符串是这样的:
// 连接串
string strConn = Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Excel 8.0;Data Source= + + ;;
然后建立连接:
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();
接着获取Excel里的表结构:
DataTable dtSchema = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,new object {null, null, null, TABLE});
DataSet ds = new DataSet();
因为一个Excel文件可能有多个sheet,所以要循环读取每个表:
foreach( DataRow dr in dtSchema.Rows )
{
string table = dr.ToString();
string strExcel = SELECT * FROM ;
ds.Tables.Add(table);
OleDbDataAdapter myCommand = new OleDbDataAdapter(strExcel,conn);
myCommand.Fill(ds,table);
}
最后别忘了关掉连接:
conn.Close();
这样就能把Excel里的数据全读进DataSet里了,亲测有效!而且服务器上不用装Excel也OK!