【发布时间】:2019-09-17 20:05:26
【问题描述】:
我想将 SQL 查询结果导出到 Sxcel 文件 (xlsx)。
我找到了一个模块 (https://www.powershellgallery.com/packages/ImportExcel/6.0.0) 来执行此操作,但生成的 xlsx 文件包含一些不需要的和不存在的列,例如 RowState、ItemArray、HasError 和 Table。
我使用了以下命令:
$DataSet.Tables[0] | Export-Excel -Path "C:\temp\xxxx.xlsx" -AutoSize
为避免这种情况,我将查询导出为 CSV 文件
$DataSet.Tables[0] | Export-Csv -Path "C:\temp\xxxx.csv" -Delimiter ';' -NoTypeInformation -Encoding UTF8
它不会导出这些不需要的列。我使用
加载它$test = Import-Csv -Path "C:\temp\xxxx.csv" -Delimiter ';'
然后我将它导出到 xlsx:
$test | Export-Excel -Path "C:\temp\xxxx.xlsx" -AutoSize
我的 Excel 文件现在没有额外的列。
我的问题是,对于 CSV 和 Excel 文件,格式输出都是错误的。例如,我得到8,0154E+16 而不是80154026286723600。
因此,如果我将 CSV 或 Excel 转换为 SQL 查询,则会导致
INSERT INTO smting ('iddoss', 'codeexterne') VALUES ('2','8.01540262867236E+16');
这是错误的。
如何在导出到 CSV 或 Excel 时保留 SQL 查询的初始格式?
【问题讨论】:
-
在 Excel 中更改列的格式?
-
@Larnu 我希望它是自动的,而不是手动的。所以它会被添加到脚本代码中
-
你需要查看你正在使用的包的模块文档。如果它 can 格式化列,它将出现在它的文档中。如果不是,则不能,您需要使用不同的方法;例如 SSIS(可以导出到现有文件,因此将使用已设置的格式)。
-
$DataSet.Tables[0] | Select-Object -Exclude RowState, ItemArray, HasError, Table | Export-Excel ...?
标签: sql-server excel powershell csv export-to-csv