C# 读取Excel中的数据
2023-09-14 09:03:14 时间
/// /summary
/// param name= excelFile Excel文件名及路径,EG:C:\Users\JK\Desktop\导入测试.xl
/// /summary /// param name="excelFile" Excel文件名及路径,EG:C:\Users\JK\Desktop\导入测试.xls /param /// returns Excel中的数据 /returns private DataTable GetTable(string fileName) OleDbConnection objConn = null; System.Data.DataTable dt = null; string connString = string.Empty; OleDbDataAdapter da = new OleDbDataAdapter(); //获取Excel工作薄中Sheet页(工作表)名集合 String[] ss = this.GetExcelSheetNames(fileName); DataTable dataTable = new DataTable(); string FileType = fileName.Substring(fileName.LastIndexOf(".")); if (FileType == ".xls") connString = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + fileName + ";Extended Properties=Excel 8.0;"; else//.xlsx connString = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + fileName + ";" + ";Extended Properties=\"Excel 12.0;HDR=YES;IMEX=1\""; // 创建连接对象 objConn = new OleDbConnection(connString); // 打开数据库连接 objConn.Open(); string sql_F = "Select * FROM [{0}]"; for (int i = 0; i ss.Length;i++ ) da.SelectCommand = new OleDbCommand(String.Format(sql_F, ss[i].ToString() + "$"), objConn); da.Fill(dataTable); MessageBox.Show("第"+i+"次表中数据量="+dataTable.Rows.Count.ToString()); dataTable = DeleteBlank(dataTable,9); MessageBox.Show("删除空行后,表中数据量=" + dataTable.Rows.Count.ToString()); return dataTable; catch (Exception ex) MessageBox.Show(ex.ToString()); return null; finally // 清理 if (objConn != null) objConn.Close(); objConn.Dispose(); if (dt != null) dt.Dispose(); #endregion
C#读取Excel表格中数据并返回datatable 在软件开发的过程中,经常用到从excel表格中读取数据作为数据源,以下整理了一个有效的读取excel表格的方法。 DataTable GetDataTable(string tableName,string leftTopCel,string rightbutCel)
/// /summary /// param name="excelFile" Excel文件名及路径,EG:C:\Users\JK\Desktop\导入测试.xls /param /// returns Excel中的数据 /returns private DataTable GetTable(string fileName) OleDbConnection objConn = null; System.Data.DataTable dt = null; string connString = string.Empty; OleDbDataAdapter da = new OleDbDataAdapter(); //获取Excel工作薄中Sheet页(工作表)名集合 String[] ss = this.GetExcelSheetNames(fileName); DataTable dataTable = new DataTable(); string FileType = fileName.Substring(fileName.LastIndexOf(".")); if (FileType == ".xls") connString = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + fileName + ";Extended Properties=Excel 8.0;"; else//.xlsx connString = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + fileName + ";" + ";Extended Properties=\"Excel 12.0;HDR=YES;IMEX=1\""; // 创建连接对象 objConn = new OleDbConnection(connString); // 打开数据库连接 objConn.Open(); string sql_F = "Select * FROM [{0}]"; for (int i = 0; i ss.Length;i++ ) da.SelectCommand = new OleDbCommand(String.Format(sql_F, ss[i].ToString() + "$"), objConn); da.Fill(dataTable); MessageBox.Show("第"+i+"次表中数据量="+dataTable.Rows.Count.ToString()); dataTable = DeleteBlank(dataTable,9); MessageBox.Show("删除空行后,表中数据量=" + dataTable.Rows.Count.ToString()); return dataTable; catch (Exception ex) MessageBox.Show(ex.ToString()); return null; finally // 清理 if (objConn != null) objConn.Close(); objConn.Dispose(); if (dt != null) dt.Dispose(); #endregion
#region 删除指定表中的空白行 /// summary ///删除指定表中的空白行 /// /summary /// param name="dt" 表名 /param /// param name="ColNum" Excel中的列数 /param /// returns 删除空白行后的DataTable /returns private DataTable DeleteBlank(DataTable dt,int ColNum) if (dt == null || dt.Rows.Count==0) return dt; //删除其中的空行(注意for循环的形式) for (int i = dt.Rows.Count - 1; i i--) DataRow row = dt.Rows[i]; bool flag = true; //当某行的ColNum列,均为空时,改行为空 for (int j = 0; j ColNum; j++) object o = row[j]; if (o != DBNull.Value Convert.ToString(o).Trim().Length 0) flag = false; break; if (flag) dt.Rows[i].Delete(); dt.AcceptChanges(); //把行中DBNull列替换成空字符串 for (int k = dt.Rows.Count - 1; k k--) DataRow row = dt.Rows[k]; for (int z = 0; z ColNum; z++) object o = row[z]; if (o == DBNull.Value) if (dt.Columns[z].DataType == typeof(string)) row[z] = ""; dt.AcceptChanges(); return dt; #endregion
小注:
读取Excel的时候,会自动处理表头。
C#读取Excel表格中数据并返回datatable 在软件开发的过程中,经常用到从excel表格中读取数据作为数据源,以下整理了一个有效的读取excel表格的方法。 DataTable GetDataTable(string tableName,string leftTopCel,string rightbutCel)
相关文章
- C#页面内容导出
- Python xlwt数据保存到 Excel中以及xlrd读取excel文件画图
- C# 读取EXCEL文件的三种经典方法详解编程语言
- C#导入导出数据到Excel的通用类代码详解编程语言
- Excel数据快速转移至MySQL(excel转mysql)
- MySQL数据导出Excel快速教程(mysql转excel)
- MySQL导入Excel:一步步实现数据导入(mysql导入excel)
- Excel直接导入SQLServer,数据一步到位(excel导入sqlserver)
- Oracle将数据输出到Excel中(oracle写excel)
- 如何将Excel数据导入MySQL数据库学习MySQL中Excel的基本用法(mysql中excel)
- 从Excel快速导入Oracle数据库(excel到oracle)
- 设置C#窗体程序只能启动一次
- php读取EXCEL文件phpexcelreader读取excel文件
- C#实现EXCEL数据到TXT文档的转换
- Windows8Metro用C#连接SQLite及创建数据库,数据表的增删改查的实现
- C#中将ListView中数据导出到Excel的实例方法
- c#Form中的键盘响应具体实现思路
- ASP.NET(C#)读取EXCEL另加解决日期问题的方法分享
- C#读写txt文件多种方法实例代码
- C#浅拷贝和深拷贝实例解析
- C#基于NPOI生成具有精确列宽行高的Excel文件的方法