背景:最近在做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表名相关推荐

  1. 【Excel】sheet表名添加背景颜色

    如图: 点击sheet表名右键,选择"工作表标签颜色" 效果:

  2. easyexcel多个sheet导入_Java中Easypoi实现excel多sheet表导入导出功能

    Easypoi简化了开发中对文档的导入导出实现,并不像poi那样都要写大段工具类来搞定文档的读写. 第一步引入Easypoi依赖 cn.afterturn easypoi-spring-boot-st ...

  3. MySQL获取Schema表名和字段信息

    MySQL获取Schema表名和字段信息 获取表名 select TABLE_NAME,TABLE_TYPE,ENGINE,TABLE_ROWS,TABLE_COMMENT,CREATE_TIME,U ...

  4. Winform中实现连接Mysql并获取所有表名

    场景 Winform中连接Mysql8并查询表中数据进行显示: Winform中连接Mysql8并查询表中数据进行显示_BADAO_LIUMANG_QIZHI的博客-CSDN博客 在上面实现连接Mys ...

  5. ASP获取数据库表名,字段名以及对字段的一些操作

    最近,在ASP论坛上看到很多网友问怎么获取数据库表名,字段名以及如何对字段进行删除,增添的操作故写此文. 本人对SQLServer比较熟一些,故以SQLServer为列:    <%       ...

  6. 打开Excel文件,表名为Sheet1$或'TS-X'$

    本人用VB可视化数据管理器打开Excel文件,表名为Sheet1$或'TS-X'$,运行SQL语句select * from Sheet1$出错,可能是表名含有$或',才出错,可不能改名,请问该如何写 ...

  7. 【MySQL】如何使用SQL语句获取表结构和获取全部表名

    目录 一.业务背景 二.如何获取全部表名 三.如何获取表结构 四.总结 一.业务背景 在实际的业务需求中,我们经常需要拿到数据库的全部表名,展示在后台中或者输出到文件里. 具体到业务中的需求比如: 导 ...

  8. easyexcel多个sheet导入_Easypoi实现excel多sheet表导入导出功能

    Easypoi简化了开发中对文档的导入导出实现,并不像poi那样都要写大段工具类来搞定文档的读写. 第一步引入Easypoi依赖 cn.afterturn easypoi-spring-boot-st ...

  9. Excel获取Sheet名称公式

    摘自:EXCEL中如何获得工作表(sheet)的名称 - 麦麦提敏 - 博客园 (cnblogs.com) EXCEL中如何获得工作表(sheet)的名称 1. EXCEL中获得工作表(sheet)的 ...

最新文章

  1. 安装仅限于用于sharepoint_PDF DC2018软件安装教程
  2. wp7使用Cocos2d-X for XNA制作一个塔防类游戏 (二)在游戏中加入地图和怪物。(上)
  3. BZOJ 3195: [Jxoi2012]奇怪的道路 | 状压DP
  4. java调用kettle例子_Kettle API - Java调用示例
  5. 内核中的内存申请:kmalloc、vmalloc、kzalloc、get_free_pages 之间的区别
  6. C++数字与字符串的相互转换
  7. inline,block 和 inline-block 的区别
  8. 【编程工具】Sublime Text3快捷键配置
  9. 二元最近的共同祖先问题(O(n) time 而且,只有一次遍历,O(1) Space (它不考虑函数调用栈空间))...
  10. 使用cuteftp实现SFTP上传
  11. Android TextView动态设置字体颜色选择器
  12. 免费OFD在线阅读器,可以二次开发
  13. 参加ACM比赛所需的基础知识
  14. 理解h5文件并使用python对h5格式文件进行读写操作
  15. 安卓系统监控任务管理器App推荐
  16. const常量和基础数据类型
  17. 鼠标hover出现遮罩
  18. aix 查询db2客户端版本_怎么看DB2的版本啊?
  19. Vue3究竟好在哪里?
  20. 习题 8-20 懒惰的苏珊(Lazy Susan, ACM/ICPC Danang 2007, UVa1620)

热门文章

  1. C#中 is和as 的区别
  2. 小米相册图片加载慢解决方式
  3. 内六角扳手的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  4. cpci检索为什么那么慢_cpci检索为什么那么慢_CPCI发一篇大概需要多久?
  5. 工业机器人控制策略概述-三自由度机械手腕设计机构设计
  6. 岁月温柔-11 妈妈出汗多秋衣湿了不换的真正原因
  7. 常见的主流浏览器内核
  8. 数学符号π (Pi)、Σ(Capital Sigma)、μ (Mu) 、σ(sigma)、∏(capital pi), ∫(Integral Symbol)的来历...
  9. Bluehost美国站和Bluehost中国站的区别!
  10. poi设置日期格式和数字格式