文本到 xls 文件创建

文本到 xls 文件创建

我的unix系统中有4个文本文件,想将数据放入xls文件中并通过邮件发送。

文本1.txt:

100
150
130
120
110

文本2.txt:

200
230
240
250
260
..
..
..

很快 ...

我想要text1.txt在第一列中包含文件数据,text2.txt在第二列中包含文件数据,最后想要每行中的数据总和。

答案1

步骤 1:将文件加入多列文件中:

paste f1 f2 f3 > _1.tsv

步骤2:添加计算总和的公式:

gawk '1;END{for(i=0;i<NF;i++)
              {printf("=SUM(%c1:%c%d)\t",65+i,65+i,NR)} print ""}' _1.tsv > _2.tsv

第三步:检查结果

$ cat _2.tsv
   100 100 100
   ...
   99  99  99
   =SUM(A1:A5) =SUM(B1:B5) =SUM(C1:C5)

$ gnumeric _2.tsv             # excel, whatever your favorite spreadsheet

步骤 4:(可能没有必要)如果你确实想要一个.xls文件:

ssconvert _2.tsv  _2.xls

ssconvert附带gnumeric精美的电子表格(apt-get install gnumeric如果需要);多种可用的转换格式。

ssconvert _2.tsv  _2.pdf
ssconvert _2.tsv  _2.txt

正如预期的那样,这些 txt 和 pdf 文件的公式被其结果替换。

更新:

要获得包含行总和的列,第 2 步可以是:

gawk '{printf("%s\t=SUM(A%d,%c%d)\n", $0, NR, NF+64, NR)}' < _1.tsv
 100    1   90  =SUM(A1,C1)
 241    2   23  =SUM(A2,C2)
 312    3   3   =SUM(A3,C3)

在哪里:

  • NR代表行数(寄存器数)和
  • NF字段数

相关内容