文章评分
次,平均分 :
在C#中,读取Excel文件的方法有多种,小编习惯使用OleDb,具体代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
/// 读取Excel文件 /// filePath:Excel工作薄名称(包括路径) /// sheetName:Sheet表名称 private static DataTable GetExcelData(string filePath, string sheetName) { string strCon = string.Empty; //根据文件格式设置不同的连接字符串 if (Path.GetExtension(filePath) == ".xls")//Excel 2003 { strCon = "Provider=Microsoft.Jet.OleDb.4.0; Data Source=" + filePath + ";Extended Properties='Excel 8.0; HDR=YES; IMEX=1'"; } else if (Path.GetExtension(filePath) == ".xlsx")//Excel 2007及以上 { strCon = "Provider=Microsoft.Ace.OleDb.12.0; Data Source=" + filePath + ";Extended Properties='Excel 12.0; HDR=YES; IMEX=1'"; } try { OleDbConnection myConn = new OleDbConnection(strCon); string strCom = string.Format(" SELECT * FROM [{0}$]", sheetName); myConn.Open(); OleDbDataAdapter myCommand = new OleDbDataAdapter(strCom, myConn); DataSet ds = new DataSet(); myCommand.Fill(ds, "[" + sheetName + "]"); myConn.Close(); myConn.Dispose(); DataTable dt; dt = ds.Tables[0]; return dt; } catch (Exception err) { Console.WriteLine(err); return null; } } |
注意:在使用OleDb读取Excel文件时,可能会出现数据丢失的现象,具体解决办法请参考《通过注册表解决OLEDB方式读取Excel数字文本混合列数据丢失的问题》。
除特别注明外,本站所有文章均为交通人原创,转载请注明出处来自http://www.hijtr.com/csharp-use-oledb-to-read-excel/
暂无评论