/// <summary> /// 读取EXCEL列数据 /// </summary> /// <param>要读取的Excel路径</param> /// <param>要读取的列名</param> /// <param>读取sheet页</param> /// <param>读取区域</param> /// <param>条件列名</param> /// <param>条件值列表</param> /// <returns></returns> public static DataTable LoadDataFromExcel(string excel_path, string select_field, string sheet_name, string range, string where_field, string[] where_condition) { //定义并根据Excel版本确定链接字符串 var file = new System.IO.FileInfo(excel_path); var strConn = string.Empty; switch (file.Extension) { case ".xls": strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + excel_path + ";Extended Properties=‘Excel 8.0;HDR=Yes;IMEX=1;‘"; break; case ".xlsx": strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + excel_path + ";Extended Properties=‘Excel 12.0;HDR=Yes;IMEX=1;‘"; break; default: strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + excel_path + ";Extended Properties=‘Excel 12.0;HDR=Yes;IMEX=1;‘"; break; } OleDbConnection OleConn = new OleDbConnection(strConn); OleConn.Open(); //确定要读取的列名 var strSelectCol = string.IsNullOrWhiteSpace(select_field) ? "*" : select_field.Trim(); //拼接query语句 var sql = "SELECT " + strSelectCol + " FROM [" + sheet_name +"$"+ range + "]"; for (int i = 0; i < where_condition.Length; i++) { sql += (i == 0 ? " WHERE " : " or ") + where_field + " like ‘%" + where_condition[i] + "%‘"; } //读取数据 OleDbDataAdapter Oleda = new OleDbDataAdapter(sql, OleConn); DataSet Oleds = new DataSet(); Oleda.Fill(Oleds, sheet_name); OleConn.Close(); return Oleds.Tables[0]; }
,相关文章
- Day20-单表中获取表单数据的3种方式
- java读取excel获取数据写入到另外一个excel
- Storm读取Mysql数据库表写入Mysql数据库另一张表
- 【Django drf】 序列化类常用字段类和字段参数 定制序列化字段的两种方式 关系表外键字段的反序列化保存 序列化类继承ModelSerializer 反序列化数据校验源码分析
- 使用post方式提交表单如何获取图片数据及其他文本参数[NodeJS]
- C#读取Excel文件:通过OleDb连接,把excel文件作为数据源来读取
- 【C#】读取Excel中嵌套的Json对象,Json带斜杠的问题(其三)
- 如何通过jquery发送它时在PHP中读取Excel文件数据
- C#部分---arraylist集合、arraylist集合中的object数据转换成int类string类等;间隔时间的表示方法;
- 数据结构与算法(C#)入门 --- 线性表