【问题标题】:Formatting the cells in Excel when Export through OPENROWSET 'Microsoft.ACE.OLEDB.12.0'通过 OPENROWSET 'Microsoft.ACE.OLEDB.12.0' 导出时格式化 Excel 中的单元格
【发布时间】:2020-10-11 15:06:42
【问题描述】:

我有以下查询,可将数据导出到 Excel。但是当我打开 excel 时,所有单元格都会自动更改为一般格式,即使我将格式保持为数字。 INSERT INTO OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=E:\Temp Report Generation\custom_file.xlsx','SELECT * FROM [sheet$B11:AA11]') 请提供在导出数据到excel时保持格式不变的解决方案,无需通过打开excel手动更改格式。

【问题讨论】:

  • simple search 应该是您的起点。简短的回答是您不能使用简单的插入语句。在 Excel 中使用 vba 从 SQL Server 导入可能是一种资源密集度较低的方法。
  • 你在错误的假设下工作。表中的列没有固有的“格式”。您在结果集中看到的内容是您用来查看该信息的工具的产物。日期、数字、GUID 等都存储为二进制值。除了在插入或修改期间存储的内容之外,字符串没有其他格式。

标签: sql sql-server stored-procedures oledb export-to-excel


【解决方案1】:

尝试 VBA 并将所需的单元格范围设置为数字,例如:

Range("A:C").NumberFormat = "0.00"

这会将 A 到 C 列中的所有单元格格式化为带 2 位小数的数字。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-23
    • 2017-05-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多