Excel获取Sheet表名
背景:最近在做Excel的导入导出功能,收获了很多的知识,首先采用数据库链接方式,使用OLEDB链接接口访问Excel表中的数据。
链接字符串:
excel 2000 ~ 2003的 OleDb 连接串的格式如下:
Provider=Microsoft.Jet.OleDb.4.0;Data Source='excel文件路径';Extended Properties='Excel 8.0;HDR=YES'
Excel 2007之上链接字符串
Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" + FilePath + "; Extended Properties='Excel 12.0 Xml;HDR=YES;IMEX=1
在做完Excel的工作后,发布系统后遇到 未在本地注册Microsoft ACE.OLEDB.12.0应用程序。
解决步骤一、可能是因为缺少Microsoft Office Access 2007的一些引擎组件。所以得安装一下这个组件。
解决步骤二、然后在IIS对应的应用程序池上启用32为应用程序就好。
获取Excel的Sheet表名
Excel的数据链接connection打开后,使用GetOleDbSchemaTable方法,获取Excel的表名。
//获取Excel中的的数据public static System.Data.DataTable getExcelData(string strFilePath,string conditionText){string conStr = System.Configuration.ConfigurationManager.AppSettings["officeConnection"].ToString() + "Data Source=" + strFilePath + ";Extended Properties ='Excel 12.0;HDR=Yes;IME=1'";System.Data.DataTable excelDt = new System.Data.DataTable();using(OleDbConnection conn = new OleDbConnection(conStr)){conn.Open();//链接打开,然后获取使用GetOleDbSchemaTable获取表名System.Data.DataTable dtSheetName = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "Table" });//包含excel中表名的字符串数组string select = "select * from " + "[" + dtSheetName.Rows[0]["TABLE_NAME"].ToString() + "]" + conditionText+" ORDER BY 市直单位名称,定性指标名称";OleDbCommand cmd = new OleDbCommand(select, conn);OleDbDataReader reader = cmd.ExecuteReader();excelDt.Load(reader);reader.Close();}return excelDt;}
在获取表名的时候,有时候Excel只有一个表名,但是运行代码总是获取多个Sheet表名
解决办法
打开Excel的VB宏(art+F11)
插入窗体或者模块输入如下代码
Sub ShowAllNames() For Each n In ThisWorkbook.Names n.Visible = True Next
End Sub
然后选择Excel的公式里面的名称管理器,打开名称公里器后,把多余的表名成删除即可。
Excel获取Sheet表名相关推荐
- 【Excel】sheet表名添加背景颜色
如图: 点击sheet表名右键,选择"工作表标签颜色" 效果:
- easyexcel多个sheet导入_Java中Easypoi实现excel多sheet表导入导出功能
Easypoi简化了开发中对文档的导入导出实现,并不像poi那样都要写大段工具类来搞定文档的读写. 第一步引入Easypoi依赖 cn.afterturn easypoi-spring-boot-st ...
- MySQL获取Schema表名和字段信息
MySQL获取Schema表名和字段信息 获取表名 select TABLE_NAME,TABLE_TYPE,ENGINE,TABLE_ROWS,TABLE_COMMENT,CREATE_TIME,U ...
- Winform中实现连接Mysql并获取所有表名
场景 Winform中连接Mysql8并查询表中数据进行显示: Winform中连接Mysql8并查询表中数据进行显示_BADAO_LIUMANG_QIZHI的博客-CSDN博客 在上面实现连接Mys ...
- ASP获取数据库表名,字段名以及对字段的一些操作
最近,在ASP论坛上看到很多网友问怎么获取数据库表名,字段名以及如何对字段进行删除,增添的操作故写此文. 本人对SQLServer比较熟一些,故以SQLServer为列: <% ...
- 打开Excel文件,表名为Sheet1$或'TS-X'$
本人用VB可视化数据管理器打开Excel文件,表名为Sheet1$或'TS-X'$,运行SQL语句select * from Sheet1$出错,可能是表名含有$或',才出错,可不能改名,请问该如何写 ...
- 【MySQL】如何使用SQL语句获取表结构和获取全部表名
目录 一.业务背景 二.如何获取全部表名 三.如何获取表结构 四.总结 一.业务背景 在实际的业务需求中,我们经常需要拿到数据库的全部表名,展示在后台中或者输出到文件里. 具体到业务中的需求比如: 导 ...
- easyexcel多个sheet导入_Easypoi实现excel多sheet表导入导出功能
Easypoi简化了开发中对文档的导入导出实现,并不像poi那样都要写大段工具类来搞定文档的读写. 第一步引入Easypoi依赖 cn.afterturn easypoi-spring-boot-st ...
- Excel获取Sheet名称公式
摘自:EXCEL中如何获得工作表(sheet)的名称 - 麦麦提敏 - 博客园 (cnblogs.com) EXCEL中如何获得工作表(sheet)的名称 1. EXCEL中获得工作表(sheet)的 ...
最新文章
- 安装仅限于用于sharepoint_PDF DC2018软件安装教程
- wp7使用Cocos2d-X for XNA制作一个塔防类游戏 (二)在游戏中加入地图和怪物。(上)
- BZOJ 3195: [Jxoi2012]奇怪的道路 | 状压DP
- java调用kettle例子_Kettle API - Java调用示例
- 内核中的内存申请:kmalloc、vmalloc、kzalloc、get_free_pages 之间的区别
- C++数字与字符串的相互转换
- inline,block 和 inline-block 的区别
- 【编程工具】Sublime Text3快捷键配置
- 二元最近的共同祖先问题(O(n) time 而且,只有一次遍历,O(1) Space (它不考虑函数调用栈空间))...
- 使用cuteftp实现SFTP上传
- Android TextView动态设置字体颜色选择器
- 免费OFD在线阅读器,可以二次开发
- 参加ACM比赛所需的基础知识
- 理解h5文件并使用python对h5格式文件进行读写操作
- 安卓系统监控任务管理器App推荐
- const常量和基础数据类型
- 鼠标hover出现遮罩
- aix 查询db2客户端版本_怎么看DB2的版本啊?
- Vue3究竟好在哪里?
- 习题 8-20 懒惰的苏珊(Lazy Susan, ACM/ICPC Danang 2007, UVa1620)
热门文章
- C#中 is和as 的区别
- 小米相册图片加载慢解决方式
- 内六角扳手的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
- cpci检索为什么那么慢_cpci检索为什么那么慢_CPCI发一篇大概需要多久?
- 工业机器人控制策略概述-三自由度机械手腕设计机构设计
- 岁月温柔-11 妈妈出汗多秋衣湿了不换的真正原因
- 常见的主流浏览器内核
- 数学符号π (Pi)、Σ(Capital Sigma)、μ (Mu) 、σ(sigma)、∏(capital pi), ∫(Integral Symbol)的来历...
- Bluehost美国站和Bluehost中国站的区别!
- poi设置日期格式和数字格式