///
/// 读取Excel文件数据
///
///
///
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];
}