xls 파일 생성에 대한 텍스트

xls 파일 생성에 대한 텍스트

내 유닉스 시스템에 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

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필드 수

관련 정보