------------------用SQL读取某目录下EXCEL文件的内容----------------
2013-09-09 16:06
387 查看
首先声明,这个存储过程大部分是SQL77写出来的,哥这几天正研究快照隔离下OPENXML语句JOIN以后报错的问题,头大ING。。。
还好有屁7帮了我这个忙,不然累死。
思路非常简单,XP_CMDSHELL读取某一目录下的文件名称,然后游标遍历之,代码就在下面了
还好有屁7帮了我这个忙,不然累死。
思路非常简单,XP_CMDSHELL读取某一目录下的文件名称,然后游标遍历之,代码就在下面了
IF OBJECT_ID('P_EXCELFILETODATA') IS NOT NULL DROP PROC P_EXCELFILETODATA GO CREATE PROC P_EXCELFILETODATA ( @PATH SYSNAME, --完全路径名 @FILTER SYSNAME='*.XLSX',--默认导EXCEL2007的 @TBNAME VARCHAR(MAX) --插入的表名 ) AS --@PATH 完全路径名(D:\XXXX\) --@FILTER 筛选的文件名选项以及文件类型(合并一起输入) SET NOCOUNT ON DECLARE @S NVARCHAR(4000),@SQL NVARCHAR(4000)--,@PATH NVARCHAR(4000),@FILTER SYSNAME SET @S='DIR '+@PATH+@FILTER+'/B' CREATE TABLE #FILE(FLNAME SYSNAME NULL) INSERT INTO #FILE EXEC MASTER..XP_CMDSHELL @S DECLARE @FILE SYSNAME,@SHEETNAME SYSNAME DECLARE CUR_FILENAME CURSOR FOR SELECT * FROM #FILE WHERE [FLNAME] IS NOT NULL AND [FLNAME]<>'找不到文件' OPEN CUR_FILENAME FETCH NEXT FROM CUR_FILENAME INTO @FILE WHILE @@FETCH_STATUS=0 BEGIN SET @SHEETNAME=LEFT(@FILE,CHARINDEX('.',@FILE)-1) --PRINT @SHEETNAME SELECT @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 @FILE END EXEC(@SQL) CLOSE CUR_FILENAME DEALLOCATE CUR_FILENAME GO --测试 --在D盘建立ExcelFiles文件夹,里面建立3个EXCEL文档,分别命名为a,b,c --记得把三个EXCEL的SHEET1改成a,b,c IF OBJECT_ID('TB')IS NOT NULL DROP TABLE TB GO CREATE TABLE TB ( A VARCHAR(10), B VARCHAR(10), C VARCHAR(10), D VARCHAR(10) ) GO EXEC P_EXCELFILETODATA 'D:\ExcelFiles\','*.XLSX','TB' GO SELECT * FROM TB /*A B C D ---------- ---------- ---------- ---------- 1 2 3 4 2 3 4 5 2 3 s s w w w w (4 行受影响)*/
相关文章推荐
- .NET读取Office文件内容(word、excel、ppt)
- java 读取本地excel 文件,将excel内容转换成java对象
- java操作office和pdf文件java读取word,excel和pdf文档内容
- 从Excel文件中读取内容
- 使用Java读取Excel文件内容
- yii2从excel文件中读取表格内容,并批量写入数据库
- 测试sq3数据库,读取数据库把内容输出到csv文件,附上输出到excel方法
- java poi读取excel文件内容
- 使用POI读取excel文件内容
- JAVA读取WORD,EXCEL,PDF,TXT,RTF,HTML文件文本内容的方法示例
- SQLBulkCopy使用实例--读取Excel写入数据库/将 Excel 文件转成 DataTable
- 使用NPOI插件读取excel模版修改数据后保存到新目录新文件中
- 使用POI读取excel文件内容
- jsp读取Excel文件内容
- C# 读取指定目录中的所有文件,并按规则生成SQL语句!
- 读取Excel文件内容
- 读取Excel文件,将内容存储在DataSet中
- 用jxl.jar读取Excel文件内容
- 从Excel中读取内容写入txt文件中
- [置顶] 纯js读取excel文件内容,支持所有刘浏览器