1

Просто хотите узнать, как я могу экспортировать файлы Excel в CSV, сохранив многоколоночные заголовки?

Я понимаю, что CSV не поддерживает это, однако, я надеюсь, что я могу дублировать имя заголовка для каждого столбца, который он перебирает.

Чтобы проиллюстрировать, это то, что я сейчас получаю

,,, Ь ,,, с ,,
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,

Это то, что я хотел бы

а, а, а, б, б, б, в, с, с
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 ответ1

0

Если вы экспортировали свою электронную таблицу в 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 , причем первая из них изменяется (как описано выше), а все остальные передаются от входа к выходу (поэтому пустые ячейки ниже первой строки не будут изменены ).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .