永发信息网

如何用SQL语句查询Excel数据

答案:2  悬赏:70  手机版
解决时间 2021-01-28 04:24
  • 提问者网友:末路
  • 2021-01-27 20:25
如何用SQL语句查询Excel数据
最佳答案
  • 五星知识达人网友:痴妹与他
  • 2021-01-27 21:04
SELECt *
FROM OpenDataSource( 'Microsoft.ACE.OLEDB.12.0',
'Data Source="c:\book1.xlsx";User ID=Admin;Password=;Extended properties=Excel 12.0')...[Sheet1$]

SELECt * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel 12.0;Database=C:\book1.xlsx', 'SELECt * FROM [Sheet1$A1:D100]')

SELECt * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel 12.0;Database=C:\book1.xlsx', 'SELECt * FROM [Sheet1$]')

2003版本:

SELECt *
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 8.0')...[Sheet1$]

SELECt * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;Database=C:\book1.xls', 'SELECt * FROM [Sheet1$]')

SELECt * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;Database=C:\book1.xls', 'SELECt * FROM [Sheet1$A1:D100]')

而且,还需要用拥有服务器sysadmin角色权限的登录帐号,先执行下列语句打开SQL SERVER的'Ad Hoc Distributed Queries'开关。

exec sp_configure 'show advanced options',1;reconfigure;
exec sp_configure 'Ad Hoc Distributed Queries',1;reconfigure;

执行查询后,再用相反顺序的语句,关闭'Ad Hoc Distributed Queries'开关。

exec sp_configure 'Ad Hoc Distributed Queries',0;
reconfigure;exec sp_configure 'show advanced options',0;reconfigure;
全部回答
  • 1楼网友:渡鹤影
  • 2021-01-27 22:11
在宏编辑界面中进行sql数据查询以及生成报表的代码如下: sub static() dim objnewworkbook as workbook '定义一个workbook对象 set objnewworkbook = workbooks.add(thisworkbook.path & "\模板.xlt") '使用模板文件新建一个excel报表生成文件 set objconnection = createobject("adodb.connection") '创建一个ado连接 objconnection.open "provider=microsoft.jet.oledb.4.0;extended properties='excel 8.0;hdr=yes;imex=1';data source=" & thisworkbook.fullname '设置连接字符串 strcommand = "select 施工人, count(*) as 拆电话 from [" & sheet1.name & "$] where 施工动作 = '拆' and 专业类型 = '电话' group by 施工人" '查询表单一中的数据源进行统计 ?objnewworkbook.sheets(1).range("a3").copyfromrecordset objconnection.execute(strcommand) 2.将查询统计结果输出到目的报表文件的表单1的从a3开始的区域中 3.下面代码是调用excel的排序方式进行汉字排序,这里sql语句中的排序对于汉字排序与期望结果不同 4.使用excel中的排序方法是根据excel版本不同调用有所区别 select case application.version case "11.0": objnewworkbook.sheets(1).range("a3:m" & cstr(intsumrow - 1)).sort key1:=objnewworkbook.sheets(1).range("a3"), order1:=xlascending, header:=xlno, _ ordercustom:=1, matchcase:=false, orientation:=xltoptobottom, sortmethod _ :=xlpinyin, dataoption1:=xlsortnormal case "12.0": objnewworkbook.sheets(1).sort.sortfields.clear objnewworkbook.sheets(1).sort.sortfields.add key:=range("a3:a" & cstr(intsumrow - 1)), sorton:=x
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯