国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C#自動判斷Excel版本使用不同的連接字符串

2020-01-24 01:43:14
字體:
來源:轉載
供稿:網友

用OLEDB通過設置連接字符串可以像讀取sqlserver一樣將excel中的數據讀取出來,但是excel2003和excel2007/2010的連接字符串是不同的。

  /// <summary>  /// 把數據從Excel裝載到DataTable  /// </summary>  /// <param name="pathName">帶路徑的Excel文件名</param>  /// <param name="sheetName">工作表名</param>  /// <param name="tbContainer">將數據存入的DataTable</param>  /// <returns></returns>  public DataTable ExcelToDataTable(string pathName, string sheetName)  {    DataTable tbContainer = new DataTable();    string strConn = string.Empty;    if (string.IsNullOrEmpty(sheetName)) { sheetName = "Sheet1"; }    FileInfo file = new FileInfo(pathName);    if (!file.Exists) { throw new Exception("文件不存在"); }    string extension = file.Extension;    switch (extension)    {      case ".xls":        strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + pathName + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'";        break;      case ".xlsx":        strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + pathName + ";Extended Properties='Excel 12.0;HDR=Yes;IMEX=1;'";        break;      default:        strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + pathName + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'";        break;    }    //鏈接Excel    OleDbConnection cnnxls = new OleDbConnection(strConn);    //讀取Excel里面有 表Sheet1    OleDbDataAdapter oda = new OleDbDataAdapter(string.Format("select * from [{0}$]", sheetName), cnnxls);    DataSet ds = new DataSet();    //將Excel里面有表內容裝載到內存表中!    oda.Fill(tbContainer);    return tbContainer;  }

這里需要注意的地方是,當文件的后綴名為.xlsx(excel2007/2010)時的連接字符串是"Provider=Microsoft.ACE.OLEDB.12.0;....",注意中間紅色部分不是"Jet"。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 格尔木市| 鄂托克旗| 合水县| 通山县| 稷山县| 会泽县| 宜州市| 仙桃市| 舒城县| 静海县| 十堰市| 集安市| 桃江县| 同德县| 屯门区| 遂宁市| 米泉市| 老河口市| 江山市| 沈阳市| 贡山| 兰溪市| 屏东县| 夏津县| 曲沃县| 九寨沟县| 廉江市| 武山县| 贡山| 中西区| 镇江市| 南丹县| 大邑县| 峨眉山市| 会东县| 淮阳县| 视频| 龙山县| 兴仁县| 永宁县| 区。|