Как сохранить формат SQL при экспорте в CSV / Excel - PullRequest
0 голосов
/ 29 апреля 2019

Я бы хотел экспортировать результат запроса 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');

, что неверно.

Как сохранить исходный формат из запроса SQL при экспорте в CSV или Excel?

1 Ответ

0 голосов
/ 29 апреля 2019

Решено с использованием атрибута NoNumberConversion:

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