POSH Import-Excel в Export-Csv - пустые файлы Excel дают неожиданный вывод csv - PullRequest
0 голосов
/ 09 октября 2019

Рабочий сценарий - Excel с записями данных / Непустой файл Excel - Тот же код

Вход Excel 2: Входной файл Excel с записями

Csvвывод 2: вывод CSV для файла Excel с записями данных

Сценарий не работает - файл Excel без записей данных / пустой файл - тот же код

Ввод Excel 1: пустоВходной файл Excel

Csv Выход 1: выходной файл Csv с выпуском

Я использую PowerShell для объединения нескольких файлов Excel в 1, без необходимости установкиMSExcel на сервере. Я делаю это путем преобразования всех файлов Excel в CSV-файлы и последующего объединения всех CSV-файлов в 1 CSV-файл.

Заголовок строки файлов Excel начинается со строки 5. Если в файлах Excel есть строки после заголовка строки,CSV-файл отображается должным образом, но если после заголовка строки в строке 5 файл Excel остается пустым, выходной файл CSV имеет 3 строки - 1-я и 3-я строки имеют заголовки строк Excel, а 2-я строка пуста.

$Files = GCI 'E:\SharedExcel\Data Extracts\Project Journals\Temp Server 
Downloads\*' | ?{$_.Extension -Match "xlsx?"} | select -ExpandProperty 
FullName
ForEach($File in $Files) {
$InFile = Get-Item $File
$OutFile= $InFile.FullName.replace($InFile.Extension,".csv")
Import-Excel $Infile.FullName -StartRow 5 | Export-Csv $OutFile - 
NoTypeInformation
}

Ожидаемый результат: если в файле Excel нет записей после заголовка строки в строке № 5, CSV должен просто иметь заголовок строки один раз без записей. Актуальный CSV-файл содержит 3 строки: 1-я и 3-я строки имеют заголовки строк, а 2-я строка пуста.

Успешное выполнение сценария Powershell Вывод Мой сценарий успешно работает, создавая 4 вновь созданные файлы CSV из4 файла Excel.

1 Ответ

0 голосов
/ 09 октября 2019

Из документов :

.PARAMETER StartRow
       The row from where we start to import data, all rows above the StartRow are disregarded. By default this is the first row.
       When the parameters ‘-NoHeader’ and ‘-HeaderName’ are not provided, this row will contain the column headers that will be used as property names. When one of both parameters are provided, the property names are automatically created and this row will be treated as a regular row containing data. 

Без дополнительного набора параметров ссылка на строку будет обрабатываться как имена свойств. Я думаю, что вы передаете список имен свойств со значениями, равными именам свойств, в командлет Export-Csv.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...