【问题标题】:Exporting data to excel from sql server is not working从 sql server 导出数据到 excel 不起作用
【发布时间】:2015-03-16 12:59:23
【问题描述】:

我正在使用以下代码将数据导出到 excel 文件。当 excel 文件为空白时,这工作正常。但是当我将字段更新为 null 时,插入查询执行成功,但 excel 显示为空白。

update openrowset('Microsoft.ACE.OLEDB.12.0','Excel 12.0;Database=E:\..\.xlsx;', 
'select Column1,Column2,Column3 FROM [Sheet1$]')
set  Column1=null,Column2=null,Column3=null


insert into OPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel 12.0;Database=E:\..\.xlsx;', 'SELECT * FROM [Sheet1$]') 
select Column1,Column2,Column3 from table_Name 

我想在写入之前先将文件设置为空白。

请帮忙。

【问题讨论】:

    标签: sql-server excel openrowset


    【解决方案1】:

    根据我在网上阅读的内容,openrowset 是只读的,因此您需要改用 OPENDATESOURCE。试试这样的。

    UPDATE OPENDATASOURCE('Microsoft.ACE.OLEDB.12.0','Data Source=E:\...\YourExcelFile.xlsx;;Extended Properties=Excel 12.0')...[Sheet1$]
        SET Column1=null,Column2=null,Column3=null
    
    
    INSERT INTO OPENDATASOURCE('Microsoft.ACE.OLEDB.12.0','Data Source=E:\...\YourExcelFile.xlsx;;Extended Properties=Excel 12.0')...[Sheet1$]
       SELECT Column1,Column2,Column3 from table_Name 
    

    【讨论】:

    • 它第一次工作,但在第二次更新期间它显示链接服务器“(null)”的 OLE DB 提供程序“Microsoft.ACE.OLEDB.12.0”返回消息“书签无效。”。消息 7346,级别 16,状态 2,第 1 行无法从链接服务器“(null)”的 OLE DB 提供程序“Microsoft.ACE.OLEDB.12.0”获取行的数据。
    • 这里看看这个论坛。它应该有你需要的所有答案。 stackoverflow.com/questions/13888082/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-30
    • 2016-08-16
    • 2012-09-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多