------------------用SQL读取某目录下EXCEL文件的内容----------------
来源:互联网 发布:艺恩咨询数据库 编辑:程序博客网 时间:2024/06/05 11:28
首先声明,这个存储过程大部分是SQL77写出来的,哥这几天正研究快照隔离下OPENXML语句JOIN以后报错的问题,头大ING。。。
还好有屁7帮了我这个忙,不然累死。
思路非常简单,XP_CMDSHELL读取某一目录下的文件名称,然后游标遍历之,代码就在下面了
IF OBJECT_ID('P_EXCELFILETODATA') IS NOT NULLDROP PROC P_EXCELFILETODATAGOCREATE PROC P_EXCELFILETODATA(@PATH SYSNAME, --完全路径名@FILTER SYSNAME='*.XLSX',--默认导EXCEL2007的@TBNAME VARCHAR(MAX) --插入的表名)AS--@PATH 完全路径名(D:\XXXX\)--@FILTER 筛选的文件名选项以及文件类型(合并一起输入)SET NOCOUNT ONDECLARE @S NVARCHAR(4000),@SQL NVARCHAR(4000)--,@PATH NVARCHAR(4000),@FILTER SYSNAMESET @S='DIR '+@PATH+@FILTER+'/B'CREATE TABLE #FILE(FLNAME SYSNAME NULL)INSERT INTO #FILE EXEC MASTER..XP_CMDSHELL @SDECLARE @FILE SYSNAME,@SHEETNAME SYSNAMEDECLARE CUR_FILENAME CURSORFORSELECT * FROM #FILE WHERE [FLNAME] IS NOT NULL AND [FLNAME]<>'找不到文件'OPEN CUR_FILENAMEFETCH NEXT FROM CUR_FILENAME INTO @FILEWHILE @@FETCH_STATUS=0BEGINSET @SHEETNAME=LEFT(@FILE,CHARINDEX('.',@FILE)-1)--PRINT @SHEETNAMESELECT @SQL = ISNULL(@SQL,'')+ 'INSERT INTO ' + @TBNAME + ' SELECT * FROM OPENROWSET( ''MICROSOFT.ACE.OLEDB.12.0'', ''EXCEL 12.0;HDR=YES;IMEX=1;DATABASE='+@PATH+@FILE+''',''SELECT * FROM ['+@SHEETNAME+'$]'')'FETCH NEXT FROM CUR_FILENAME INTO @FILEENDEXEC(@SQL)CLOSE CUR_FILENAMEDEALLOCATE CUR_FILENAMEGO--测试--在D盘建立ExcelFiles文件夹,里面建立3个EXCEL文档,分别命名为a,b,c--记得把三个EXCEL的SHEET1改成a,b,cIF OBJECT_ID('TB')IS NOT NULLDROP TABLE TBGOCREATE TABLE TB(A VARCHAR(10),B VARCHAR(10),C VARCHAR(10),D VARCHAR(10))GOEXEC P_EXCELFILETODATA 'D:\ExcelFiles\','*.XLSX','TB'GOSELECT * FROM TB/*A B C D---------- ---------- ---------- ----------1 2 3 42 3 4 52 3 s sw w w w(4 行受影响)*/
- ------------------用SQL读取某目录下EXCEL文件的内容----------------
- python读取当前目录下的所有的excel文件
- Java读取指定目录下的文件内容
- 读取指定目录下的所有文件生成一个excel
- 读取Excel文件内容
- 读取excel文件内容
- ruby 读取Excel文件的内容
- 用jxl.jar读取Excel文件内容
- 用PHPExcel读取excel文件内容
- Excel VBA 循环读取一个目录下面多个文件的内容,放到另外一个文件中
- kettle读取文件目录下的数据结构一致的所有数据文件信息和内容
- 21.4 实例:读取目录下指定类型的文件的内容
- kettle读取文件目录下的数据结构一致的所有数据文件信息和内容
- sql读取excel文件
- 读取Excel的内容
- C#下使用第三方开源控件读取Excel文件的内容
- .NET读取Excel文件内容
- java读取EXCEL文件内容
- Fibinary Numbers
- 字符串问题:输出第二个字符串在第一个字符串中的连接次序
- Hash冲突的解决--暴雪的Hash算法
- 数据分析学习笔记-NetworkX的使用1
- two ways of IIFE(immediately-invoked-function-expression)-JS
- ------------------用SQL读取某目录下EXCEL文件的内容----------------
- VirtualBox常用命令
- 领导的力量
- iocp的一些有用资料
- struts2批量增加
- jQuery UI Datepicker添加时分秒
- 探秘Java虚拟机 gc的监控
- URAL 1018 (金典树形DP)
- 查看mysql进程