导出到 CSV/Excel 时如何保留 SQL 格式



我想将SQL查询结果导出到Sxcel文件(xlsx)。 我找到了一个模块(https://www.powershellgallery.com/packages/ImportExcel/6.0.0)来执行此操作,但是生成的xlsx文件包括一些不需要的和不存在的列,例如RowStateItemArrayHasErrorTable。 我使用了以下命令:

$DataSet.Tables[0] | Export-Excel -Path "C:tempxxxx.xlsx" -AutoSize

为了避免这种情况,我将查询导出为 CSV 文件

$DataSet.Tables[0] | Export-Csv -Path "C:tempxxxx.csv" -Delimiter ';' -NoTypeInformation -Encoding UTF8

它不会导出这些不需要的列。我用

$test = Import-Csv -Path "C:tempxxxx.csv" -Delimiter ';'

然后我将其导出到 xlsx:

$test | Export-Excel -Path "C:tempxxxx.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 查询的初始格式?

使用NoNumberConversion属性求解:

$test | Export-Excel -Path "C:tempxxxx.xlsx" -AutoSize -NoNumberConversion '*'

最新更新