C# :excel读取表名,这样获取的表名不会出错
来源:互联网 发布:windows只能进安全模式 编辑:程序博客网 时间:2024/06/07 16:12
对获取的表名进行了过滤处理,提取出有效的表名,放到string[]中,应用的时候需要加上$符号,比如
本来:“select * from [sheet1$]”
获得表名后string[] excelNames 需要 如对第一个表名:"select * from"+" ["+excelNames[0]+"$"+"]"(跟原来的形式相同)
private String[] GetExcelSheetNames(string fileName) { OleDbConnection objConn = null; System.Data.DataTable dt = null; try { string connString=string.Empty; 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(); // 得到包含数据架构的数据表 dt = objConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); if (dt == null) { return null; } String[] excelSheets = new String[dt.Rows.Count]; int i = 0; // 添加工作表名称到字符串数组 foreach (DataRow row in dt.Rows) { string strSheetTableName = row["TABLE_NAME"].ToString(); //过滤无效SheetName if (strSheetTableName.Contains("$")&&strSheetTableName.Replace("'", "").EndsWith("$")) { excelSheets[i] = strSheetTableName.Substring(0, strSheetTableName.Length - 1);//提取有效的sheet值 //MessageBox.Show(excelSheets[i]);i++; } //i++; //放在这里是错误的, } return excelSheets; } catch (Exception ex) { MessageBox.Show(ex.ToString()); return null; } finally { // 清理 if (objConn != null) { objConn.Close(); objConn.Dispose(); } if (dt != null) { dt.Dispose(); } } }
阅读全文
1 0
- C# :excel读取表名,这样获取的表名不会出错
- 获取excel的表名
- C#获取EXCEL所有表名
- C#获取EXCEL所有表名
- 获取excel表名。
- C#中获取Excel文件的表名
- C#中读取数据库名,表名,列名
- C#中读取数据库名,表名,列名
- Excel获取Sheet表名
- C#获取所有表名
- C# 获取xlsx表名
- ADO读取EXCEL所有表名
- C#读取 excel中的表名sheet名不是默认的sheet1,shee2就取不到值了 c# 如何读取自定义的sheet值?c#读取excel最佳解决方案
- hibernate 获取实体的表名、主键名、列名
- 得到excel的表名
- 获取Excel表名另一法
- C# access 获取所有表名和字段名
- C#获取SQLServer数据库表名和字段名
- 20个高效正则表达式
- java基础- 环境配置
- Luogu 1559 运动员最佳匹配问题
- Solr之从数据库导入索引
- TensorFlow Mini-batching
- C# :excel读取表名,这样获取的表名不会出错
- SpringMVC的执行流程
- JDBC之日期问题
- Executor框架
- 【IOI2014】bzoj4367 holiday
- Zynq-Linux移植学习笔记之18-Zynq下NOR_FLASH挂载文件系统
- Random的nextInt(int i)方法的返回值
- 安卓学习ViewPager配合ListView实现功能
- AI会不会取代人类?