xls ファイルの生成に関するテキスト

xls ファイルの生成に関するテキスト

私のUnixシステムには4つのテキストファイルがあり、データをxlsファイルに入れてメールで送信しようとしています。

テキスト1.txt:

100
150
130
120
110

テキスト2.txt:

200
230
240
250
260
..
..
..

まもなく...

text1.txt最初の列にファイルデータを、text2.txt2番目の列にファイルデータを、最後に各行のデータを合計したいと思います。

答え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

ステップ3:結果を確認する

$ 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

ssconvertgnumeric美しいスプレッドシートが用意されています(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フィールド数

関連情報