龙空技术网

C# 读取Excel文件返回DataTable(一)

留话风中飘 648

前言:

而今咱们对“aspnet中的datatable”大体比较重视,你们都想要了解一些“aspnet中的datatable”的相关资讯。那么小编在网摘上收集了一些关于“aspnet中的datatable””的相关知识,希望我们能喜欢,朋友们快快来学习一下吧!

/// <summary>

/// 读取Excel文件数据

/// </summary>

/// <param name="hasTitle"></param>

/// <returns>数据集</returns>

public DataTable GetDataFromExcelByConn(bool hasTitle = false)

{

////实例化选择文件对话框

OpenFileDialog openFile = new OpenFileDialog();

openFile.Multiselect = true;

openFile.Title = "请选择文件";

openFile.Filter = "Excel(*.xlsx)|*.xlsx|Excel(*.xls)|*.xls";

openFile.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);

openFile.Multiselect = false;

if (openFile.ShowDialog() == DialogResult.Cancel)

{

return null;

}

string filePath = openFile.FileName;

string fileType = System.IO.Path.GetExtension(filePath);

if (string.IsNullOrEmpty(fileType))

{

return null;

}

using (DataSet ds = new DataSet())

{

string strCon = string.Format("Provider=Microsoft.ACE.OLEDB.{0}.0;" +

"Extended Properties=\"Excel {1}.0;HDR={2};IMEX=1;\";" +

"data source={3};",

(fileType == ".xls" ? 4 : 12), (fileType == ".xls" ? 8 : 12), (hasTitle ? "Yes" : "NO"), filePath);

string strCom = " SELECT * FROM [Sheet1$]";

using (OleDbConnection myConn = new OleDbConnection(strCon))

using (OleDbDataAdapter myCommand = new OleDbDataAdapter(strCom, myConn))

{

myConn.Open();

myCommand.Fill(ds);

}

if (ds == null || ds.Tables.Count <= 0)

{

return null;

}

return ds.Tables[0];

}

标签: #aspnet中的datatable