SqlServer存储将表数据导出成Execl

上代码

EXEC master..xp_cmdshell 'del D:\PPReport\To_KEAS_GDC_ASN\"dzw report.xlsx"'

    --复制文件
    EXEC master..xp_cmdshell 'COPY D:\PPReport\To_KEAS_GDC_ASN\report_Empty.xlsx D:\PPReport\To_KEAS_GDC_ASN\report_Empty2.xlsx'
--这里建议分开,不然容易在没有report_Empty2.xlsx的时候调用进行
--存储过程代码优先自检报错,建议分开限制性前面的后判断文件存在再进行操作
INSERT INTO OPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel 12.0;Database=D:\PPReport\To_KEAS_GDC_ASN\report_Empty2.xlsx',
    'select ControlNo,FaultyPN,ShippedPN,PPID,Returnto,TPRShippedDate,[RTV Order Number] FROM [sheet1$]') 
    SELECT s.ControlNo,s.ShippedPN,s.ShippedPN,s.PPID,s.Returnto,s.TPRShippedDate,a.[RTV Number]
    FROM dbo.s(NOLOCK) s
    INNER JOIN dbo.A(NOLOCK) a ON s.ControlNo = a.ControlNo

    --reName
    exec master..xp_cmdshell 'ren D:\PPReport\To_KEAS_GDC_ASN\report_Empty2.xlsx "dzw report.xlsx"'

 

补充:

如果放到作业进行执行需要在前面多加一个步骤确保【report_Empty2.xlsx】存在

EXEC master..xp_cmdshell 'COPY D:\PPReport\To_keas_gdc_asn\report_Empty.xlsx D:\PPReport\To_keas_gdc_asn\report_Empty2.xlsx'
go

 

posted @ 2022-10-13 13:27  蜗牛的礼物  阅读(41)  评论(0编辑  收藏  举报