Excel 列标题导出到 csv

Excel 列标题导出到 csv

我只是想知道如何将 excel 文件导出为 csv 同时保留多列标题?

我意识到 csv 不支持这一点,但是我希望我可以为它经过的每一列重复标题名称。

为了说明,这就是我目前得到的

a,,,b,,,c,,
1,2,3,4,5,6,7,8,9
d1,d1,d1,d1,d1,d1,d1,d1,d1,d1 d2
,d2,d2,d2,d2,d2,d2,d2,d2,d2

这就是我想要的

a,a,a,b,b,b,c,c,c
1,2,3,4,5,6,7,8,9
d1,d1,d1,d1,d1,d1,d1,d1,d1,d1
d2,d2,d2,d2,d2,d2,d2,d2,d2,d2

我已经搜索过答案,但是除非我搜索了错误的术语……否则我似乎找不到太多信息。

解决方案不一定是微软的...也可以是 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,其中第一个记录被修改(如上所述)并且所有其他记录从输入传递到输出(因此第一行以下的空单元格不会被篡改)。

相关内容