В: Я хочу преобразовать Excel в CSV, но Excel содержит многострочные данные в ячейке вместе с ";" в качестве разделителя. Желаемый вывод - CSV-файл с "|" в качестве разделителя для столбцов, но "," в качестве разделителя для данных в той же ячейке. Я не могу использовать Excel, поэтому я использую модуль "ImportExcel".
Введите формат Excel (прикрепленный файл в конце вопроса): -
Row1# c1# c2# c3# c4#
Row2#
Row3#
Row4# HEADER1 HEADER2 HEADER3
Row5# 04.05 test & t test TEST
Row5# 04.06.01 test test TEST
Row5# 04.07.01 test test
Row5# 04.10.02 test & t
Row # представляет строку в Excel, а c # представляет столбец, а HEADER # представляет заголовок столбцов. Как видно, строки 1-3 и первый столбец Excel пусты. Текст второго и четвертого столбцов многострочный, но в одной ячейке (та же строка Row5).
Я попытался затем импортировать Excel для каждого объекта и заменить символ новой строки на «,», наконец, экспортировать его в csv с помощью (export-csv) на «|» в качестве разделителя.
Сценарий, который я сделал, выглядит следующим образом: -
$test = Import-excel -NoHeader -StartRow(4) test.xlsx
$test | foreach-object {
if($_.HEADER1) {
$_.HEADER1 = $_.HEADER1.replace("\n",", ")
$_.HEADER1 = $_.HEADER1.replace("&","& ")
}
}
$test | Export-csv new-test.csv -Delimiter '|' -NoTypeInformation
Выход CSV FILE I GET: -
Row1# c1# c2# c3#
Row2# HEADER1|HEADER2|HEADER3
Row3# 04.05 test & t
Row4# 04.06.01 test test
Row5# 04.07.01 test test
Row6# 04.10.02 test & t
Row7# test|TEST
Row8# TEST
Как видно, текст после разделителя ";" на входе переходит в другой столбец, а мультилиния по-прежнему разбирается на отдельные строки. Я хочу, чтобы вся эта многострочная строка была объединена с одним символом "," в качестве разделителя вместе с текстом после "';" разделитель.
Желаемый файл CSV: -
Row1# c1# c2#
Row2# HEADER1|HEADER2|HEADER3
Row3# 04.05 test & t,04.06.01 test test,04.07.01 test test,04.10.02 test & t|test|TEST,TEST
Я перепробовал много вопросов из stackoverflow, связанных с этим, но по какой-то причине ни одно из существующих решений не работает для меня.
В приложении приведен пример файла Excel, который я пытаюсь преобразовать. test.xlsx