高分求读取EXCEL文件方法!

rock29 2016-06-12 11:24:01
有一个excel文件,A1项为No,B1项为Name,C1项为ttime,然后A,B2,C2到An,Bn,Cn是实际的数据。现在我要读取这三项中的实际数据进行处理。客户要求必须用读取数据库的方法读取这个excel文件。
问题是,读取数据的sql语句,如果是读取全部数据那么写“Select * from [sheet1$] order by ttime desc”这句话在程序里是没有问题的,但是如果是读取特定数据,比如我需要读取11点以后的数据,Sql语句该怎么1写呢?
问题肯定是在where语句上,写[item2$],item2$,[item2],item2均报语法错误。直接写ttime也不对。
ps:既然where后面不认ttime,那么order by后面的ttime能够正确排序?这似乎说明ttime、是认得?
...全文
211 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
rock29 2016-06-13
  • 打赏
  • 举报
回复
回复四楼: 1 ttime在excel中是date类型。 2 您说的C#读取Excel的三种方式以及比较我明天研究一下,第一种也就是我目前用的方法似乎肯定不可取了,因为文章明确指出:缺点:......只有将整个Sheet页读取出来后(结果为Datatable)再在Datatable中根据行列数来获取指定的值。 3 主要研究第三种方法,看看是否可行。我以前见过这种方法,但是网上提供的是dll文件,这次有源代码了! 多谢!!!
龍过鸡年 2016-06-13
  • 打赏
  • 举报
回复
查询错误很可能是因为 ttime 的数据类型引起的。 首先获取所有数据,oledbdataadapter adapter 然后 adapter.fill 到一个 datatable 中,查看 ttime 列的数据。 首先,去下载个 ace https://www.microsoft.com/zh-cn/download/details.aspx?id=13255 然后参考文章 Microsoft ACE OLEDB 12.0 connection strings https://connectionstrings.com/ace-oledb-12-0/ C#读取Excel的三种方式以及比较 (看第一种 oledb 方式) http://www.cnblogs.com/Jingkunliu/archive/2015/01/19/4234099.html
lshfong 2016-06-13
  • 打赏
  • 举报
回复
时间格式的要先转格式
龍过鸡年 2016-06-13
  • 打赏
  • 举报
回复
直接 select * from [sheet1$] where ttime > '11:00:00' order by ttime desc 放心,可以实现你要功能,我用过。
Struggle_hardllz 2016-06-13
  • 打赏
  • 举报
回复
读取excel的文件网上有很多实例呀。
秋的红果实 2016-06-13
  • 打赏
  • 举报
回复
C1是ttime,默认是文本格式,C2,C3……是如2016/1/1这种,默认是时间格式 lz试着删除第一行,字段名用A1,B1,C1写语句
Poopaye 2016-06-13
  • 打赏
  • 举报
回复
引用 2 楼 rock29 的回复:
报告语法错误。注意ttime是C1中的值,并不是普通数据表的列名。所以直接引用,Sql语句是认为语法错误的。
估计ttime所在的这个单元格的格式问题,可以强制设置成文本试试 用数据库的方法连接excel,默认是以第一行中的内容作为列名的
rock29 2016-06-12
  • 打赏
  • 举报
回复
报告语法错误。注意ttime是C1中的值,并不是普通数据表的列名。所以直接引用,Sql语句是认为语法错误的。
Poopaye 2016-06-12
  • 打赏
  • 举报
回复
就是ttime,不知道你说不认是什么意思

111,093

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧