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