从Excel、CSV文件获取数据
2017-10-17 16:54
295 查看
#region 从Excel获取数据 /// <summary> /// 从Excel获取数据 /// </summary> /// <param name="Path">文件路径(完整路径)</param> /// <returns></returns> public static DataSet ReadExcelToDS(string Path) { DataSet ds = new DataSet(); OleDbConnection conn = null; OleDbDataAdapter da = null; try { //string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + Path + ";" + "Extended Properties='Excel 8.0;HDR=Yes;IMEX=1';";//此连接只能操作Excel2007之前(.xls)文件 string strConn = "Provider=Microsoft.Ace.OleDb.12.0;" + "data source=" + Path + ";Extended Properties='Excel 12.0; HDR=Yes; IMEX=1'"; //此连接可以操作.xls与.xlsx文件 (支持Excel2003 和 Excel2007 的连接字符串) //备注: "HDR=yes;"是说Excel文件的第一行是列名而不是数据,"HDR=No;"正好与前面的相反。 // "IMEX=1 "如果列中的数据类型不一致,使用"IMEX=1"可必免数据类型冲突。 conn = new OleDbConnection(strConn); conn.Open(); DataTable schemaTable = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null); if (schemaTable != null) { string sheetName = schemaTable.Rows[0]["table_name"].ToString().Trim(); if (sheetName != null && sheetName.Length > 0) { string strExcel = "select * from [" + sheetName + "]"; da = new OleDbDataAdapter(strExcel, conn); da.Fill(ds); } } } catch (Exception e) { throw e; } finally { if (conn != null) conn.Close(); if (da != null) da.Dispose(); } return ds; } #endregion
#region 从CSV文件获取数据 /// <summary> /// 从CSV文件获取数据 /// </summary> /// <param name="Path">文件路径(完整路径)</param> /// <returns></returns> public static DataSet GetDataSetFromCSV(string Path) { string filePath = System.IO.Path.GetDirectoryName(Path); string fileName = System.IO.Path.GetFileName(Path); string strConn = @"Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=" + filePath + ";Extensions=asc,csv,tab,txt;"; DataSet ds = new DataSet(); OdbcConnection Conn = new OdbcConnection(strConn); OdbcDataAdapter da = null; try { Conn.Open(); DataTable schemaTable = Conn.GetSchema("Tables", null); if (schemaTable != null) { for (int i = 0; i < schemaTable.Rows.Count; i++) { string sheetName = schemaTable.Rows[i]["table_name"].ToString().Trim(); if (fileName == sheetName) { string strSql = "select * from " + sheetName; da = new OdbcDataAdapter(strSql, Conn); da.Fill(ds); break; } } } } catch (Exception ex) { throw ex; } finally { Conn.Close(); if (da != null) da.Dispose(); } return ds; } #endregion
相关文章推荐
- PHP导出MySQL数据到Excel或者CSV文件
- vba 宏获取文件夹中所有excel文件,对slk文件数据每3000个求平均值
- Python数据获取-文件、word、Excel、数据库
- JAVA WEB 实现文件数据导入(CSV、TXT、excel)
- 从Excel(CSV)文件导入数据到Oracle
- php数据导入导出之excel(csv文件)
- 网页端中将表格数据和JSON数据读取(导出)到本地的excel和csv文件中
- 游标、获取本地本地多个文件、Excel数据导入、跨服务器数据拷贝、行转列示例
- R—读取数据(导入csv,txt,excel文件)
- 数据库中导出CSV文件与EXCEL文件数据对比可能遇到的问题与解决方法
- JAVA WEB 实现文件数据导入(CSV、TXT、excel)
- php数据导入导出之excel(csv文件)
- 利用 js-xlsx 实现 Excel 文件导入并解析Excel数据成json格式的数据并且获取其中某列数据
- python数据分析-处理CSV/EXCEL表格文件
- 使用oledb获取Excel文件第一个工作表数据
- C#导出数据到CSV和EXCEL文件时数字文本被转义的解决方法
- 将Control List中的数据导入类Excel的表格中,(使用了.csv文件)
- java读取excel文件获取数据
- 【Jmeter】解决从csv参数文件中获取带引号/逗号的数据问题【转】
- 使用oledb获取Excel文件第一个工作表数据