在导入SQL Server之前自动删除Excel中的行

时间:2017-01-19 10:54:01

标签: sql sql-server excel

我正在尝试将excel文件导入SQL Server数据库。

值得关注的是SQL Server无法识别excel文件,因为第一行包含标题而不包含表列标题。表格标题位于第3行。

enter image description here

excel文件(.xlsx)是从ITSM工具中提取的报告(每30分钟生成一次)保存在文件夹路径上。

根据我从论坛中读到的内容,可以实现宏,但是需要手动打开文件才能使其生效。

有没有办法在没有任何手动交互的情况下删除excel中的2行?我对如何自动导入有一般的想法,但我希望Excel文件的格式正确。

PS。我正在使用SQL Server 2012 Express

谢谢!

其他来源:

https://www.mrexcel.com/forum/excel-questions/511902-delete-rows-without-open-files.html

2 个答案:

答案 0 :(得分:2)

根据您的ITSM工具作业创建一个程序并安排其执行,以自动执行此操作。使用OPENROWSET读取excel,如下所示:

SELECT *
FROM OPENROWSET(
    'Microsoft.ACE.OLEDB.12.0',
    'Excel 12.0;HDR=YES;Database=c:\kunal\test.xlsx',
    'SELECT * FROM [sheet1$A3:Z]'
);

这样的事可以帮助你。在上面的代码中,我跳过前两行,从excel的单元格A3开始读取,HDR=YES表示我的数据有标题。

答案 1 :(得分:0)

我在网上发现了这篇文章。将数据从Excel移动到SQL Server,并消除了Excel上的2个不需要的行。

https://www.simple-talk.com/sql/ssis/moving-data-from-excel-to-sql-server-10-steps-to-follow/