获取表格的方法:sheet1$不是一个有效的名称,请确保它不包括无效的字符或标点,或字符不要太长
这里给出一个获取表名的一种方式,但是有可能获得excel表名的方式不正确;
因为打开的表格的表名有可能不一样,统一写成select* from “[sheet1$]”是不可以的,提示错误
一般采用这样方式,但是获取表名不正确的话,可以参考下一篇文章(添加了对获取的表名过滤,取有效的表名的方法)
public DataSet getData(){try{//打开文件OpenFileDialog file = new OpenFileDialog();file.Filter = "Excel(*.xlsx)|*.xlsx|Excel(*.xls)|*.xls";file.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);file.Multiselect = false;if (file.ShowDialog() == DialogResult.Cancel)return null;//判断文件后缀var path = file.FileName;//string[] sheetNames=GetExcelSheetNames(path);//采用下一篇文章方法获得的表名fileExcelPath = path;//文件的路径string fileSuffix = System.IO.Path.GetExtension(path);if (string.IsNullOrEmpty(fileSuffix))return null;using (DataSet ds = new DataSet()){//判断Excel文件是2003版本还是2007版本string connString = "";if (fileSuffix == ".xls")connString = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + path + ";" + ";Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1\"";elseconnString = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + path + ";" + ";Extended Properties=\"Excel 12.0;HDR=YES;IMEX=1\"";//读取文件DataTable dataTab = new DataTable();OleDbConnection conn = new OleDbConnection(connString);//conn.Open();//获取表名的一种方式dataTab = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });//获得表头System.Data.DataTable tableColumns = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Columns, new object[] { null, null, dataTab, null });conn.Close();MessageBox.Show(dataTab.Rows[0][2].ToString().Trim());string[] strTableNames = new string[dataTab.Rows.Count];for (int k = 0; k < dataTab.Rows.Count; k++){strTableNames[k] = dataTab.Rows[k]["TABLE_NAME"].ToString();// MessageBox.Show(strTableNames[k]);}string shet = dataTab.Rows[0]["Table_Name"].ToString();//string sql_select = " SELECT * FROM " + "[" + shet + "]";//string sql_select = " SELECT * FROM [Sheet1$]";// MessageBox.Show(shet);//string sql_select = " SELECT * FROM " + "[" + sheetNames[0]+"$" + "]";//采用下一篇文章获得表名的方法//MessageBox.Show(sheetNames[0]);//string sql_select = " SELECT * FROM " + "[sheet1$]";using (OleDbDataAdapter cmd = new OleDbDataAdapter(sql_select, conn)){conn.Open();cmd.Fill(ds);}if (ds == null || ds.Tables.Count <= 0) return null;return ds;}}catch (Exception ex){MessageBox.Show("读取表格文件失败:" + ex.Message);return null;}}
获取表格的方法:sheet1$不是一个有效的名称,请确保它不包括无效的字符或标点,或字符不要太长相关推荐
- laytpl遍历实体列表_Layui数据表格之获取表格中所有的数据方法
数据表格中的数据是通过直接赋值的方式.这里实际上思想是反过来的,将拿数据表格中的所有数据,转换为layui数据表格拿原始数据去渲染数据表格. 1.创建一个作用域合适的js对象数组用来保存数据表格中的原 ...
- html如何取单元格内容,JS获取表格内指定单元格html内容的方法
JS获取表格内指定单元格html内容的方法 本文实例讲述了JS获取表格内指定单元格html内容的方法.分享给大家供大家参考.具体如下: 下面的代码先通过表格对象的rows获得指定的行的所有单元格数组, ...
- layui 读取本地excel内容_layui之数据表格--与后台交互获取数据的方法
jsp或html js //用户列表 var tableIns = table.render({ elem: '#userList', url : 'userAction_findAll.action ...
- 从一个表格render方法问题看React函数组件的更新
从一个表格render方法问题看React函数组件的更新 最近在开发中碰到了一个现象觉得很有典型能作为例子所以给大家分享一下,从这个现象我们能很清楚的看到函数组件的更新的特点,以及我们应该如何去理解和 ...
- 获取layui表格单元格的数据_Layui数据表格之获取表格中所有的数据方法
数据表格中的数据是通过直接赋值的方式.这里实际上思想是反过来的,将拿数据表格中的所有数据,转换为Layui数据表格拿原始数据去渲染数据表格. 1.创建一个作用域合适的JS对象数组用来保存数据表格中的原 ...
- js遍历获取表格内数据方法
分享一下我老师大神的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow 本文将介绍如何使用 ...
- excel如何把多张表合并成一个表_如何将多个excel表格合并成一个_excel多表合并到一种表格的方法...
Excel是我们日常办公经常要用到的工具,有时候我们会制作非常多的Excel表格,为了方便管理,我们需要将这些表格合并到一起,那么如何将多个excel表格合并成一个呢?相信很多朋友都不太清楚,那么今天 ...
- 封装getByClass(JS获取class的方法封装为一个函数)
JS获取class的方法一: 普通版: <script type="text/javascript"> function getByClass(oParent, sCl ...
- phpexcel_cell 获取表格样式_Java 操作Word表格——创建嵌套表格、添加/复制表格行或列、设置表格是否禁止跨页断行...
精品推荐 国内稀缺优秀Java全栈课程-Vue+SpringBoot通讯录系统全新发布! Docker快速手上视频教程(无废话版)[免费] 作者:E-iceblue https://www.cnblo ...
最新文章
- distinct和group by的性能比较
- C语言学习:snprintf()函数
- matlab有趣表白程序_小人表白MATLAB代码
- 通过系统表获取SQL,Access,Oracle数据库的元数据信息
- Linux bind DNS配置
- [转-SSRF]什么是SSRF
- 说说看:如何把自己的导师培养成杰青?
- tomcat体系结构
- 汇编 MOVSX与MOVZX 指令
- Appium基础 — APPium安装(二)
- 学完python可以当黑客吗_想当黑客吗?我教你啊!精心整理最简单的黑客入门——PYTHON教程,免费系统又经典...
- DVWA靶机安装教程
- 一款简单易用的web报表工具
- 代码编辑器 Sublime Text 系列——安装、插件和菜单中英文对照
- 三种振幅调制AM、DSB、SSB
- android 距离右边距,APP界面设计中间距与边距的要点
- 织梦网站频道管理员不能添加栏目
- 如何监控Windows进程的句柄资源
- table标签及排版详解(一)
- CPU与Cache、内存以及硬盘之间的数据交换