文章评分 次,平均分 :
在C#中,读取Excel文件的方法有多种,小编习惯使用OleDb,具体代码如下:
/// 读取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/




暂无评论