![Экспорт заголовков столбцов Excel в CSV](https://rvso.com/image/1414672/%D0%AD%D0%BA%D1%81%D0%BF%D0%BE%D1%80%D1%82%20%D0%B7%D0%B0%D0%B3%D0%BE%D0%BB%D0%BE%D0%B2%D0%BA%D0%BE%D0%B2%20%D1%81%D1%82%D0%BE%D0%BB%D0%B1%D1%86%D0%BE%D0%B2%20Excel%20%D0%B2%20CSV.png)
Просто интересно, как мне экспортировать файлы Excel в CSV, сохранив при этом многостолбцовые заголовки?
Я понимаю, что csv этого не поддерживает, однако я надеюсь, что смогу продублировать имя заголовка для каждого проходящего столбца.
Для иллюстрации, вот что я сейчас получаю
а,,,б,,,в,,
1,2,3,4,5,6,7,8,9
д1,д1,д1,д1,д1,д1,д1,д1 д2,
д2,д2,д2,д2,д2,д2,д2,д2
Это то, что я хотел бы
а,а,а,б,б,б,в,в,в,в,в
1,2,3,4,5,6,7,8,9
d1,d1,d1,d1,d1,d1,d1,d1,d1
d2,d2,d2,d2,d2,d2,d2,d2,d2
Я пытался найти ответ, однако, если я не ищу неправильный термин... похоже, я не смог найти по этому поводу много информации.
Решение не обязательно должно быть от Microsoft... это может быть и решение для Linux.
Спасибо, Брайан.
решение1
Если вы экспортировали свою электронную таблицу в file1.csv
, как показано, выполните следующие действия:
#!/bin/sh
awk -F, -v OFS=, '
NR==1 {
for (i = 1; i <= NF; i++) {
if ($i == "") $i = prev
prev=$i
}
}
{ print }' < file1.csv > file2.csv
-F, -v OFS=,
устанавливаетawk
разделители входных и выходных файлов для,
.NR==1
означает «выполнить следующее только для первой записи (строки/кадра)».- Цикл
for
просматривает каждое поле (ячейку) в первой строке и, если оно пустое, устанавливает его равным предыдущему значению. { print }
печатает все записи сfile1.csv
поfile2.csv
, при этом первая из них изменяется (как описано выше), а все остальные передаются из входных данных в выходные (поэтому пустые ячейки под первой строкой не будут изменены).