C# 匯入 xls
程式碼如下:
用xls比較好操作
office365的呼叫方式跟xlsx不一樣
public DataTable IMPORTEXCEL()
{
//記錄選到的檔案路徑
_path = null;
OpenFileDialog od = new OpenFileDialog();
od.Filter = "Excell|*.xls;*.xlsx;";
DialogResult dr = od.ShowDialog();
if (dr == DialogResult.Abort)
{
return null;
}
if (dr == DialogResult.Cancel)
{
return null;
}
_path = od.FileName.ToString();
try
{
// ExcelConn(_path);
//找出不同excel的格式,設定連接字串
//xls跟非xls
string constr = null;
string CHECKEXCELFORMAT = _path.Substring(_path.Length - 4, 4);
if (CHECKEXCELFORMAT.CompareTo(".xls") == 0)
{
constr = @"provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + _path + ";Extended Properties='Excel 8.0;HRD=Yes;IMEX=1';"; //for below excel 2007
}
else
{
constr = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + _path + ";Extended Properties='Excel 12.0;HDR=NO';"; //for above excel 2007
}
//找出excel的第1張分頁名稱,用query中
OleDbConnection Econ = new OleDbConnection(constr);
Econ.Open();
DataTable excelShema = Econ.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
string firstSheetName = excelShema.Rows[0]["TABLE_NAME"].ToString();
string Query = string.Format("Select * FROM [{0}]", firstSheetName);
OleDbCommand Ecom = new OleDbCommand(Query, Econ);
DataTable dtExcelData = new DataTable();
OleDbDataAdapter oda = new OleDbDataAdapter(Query, Econ);
Econ.Close();
oda.Fill(dtExcelData);
DataTable Exceldt = dtExcelData;
if(Exceldt.Rows.Count>0)
{
return Exceldt;
}
else
{
return null;
}
}
catch (Exception ex)
{
//return null;
//MessageBox.Show(string.Format("錯誤:{0}", ex.Message));
}
}
自我LV~