2014-07-17 6 views
0

유닉스에서 탭으로 구분 된 텍스트 파일 (.txt)로 내 엑셀 파일 (.xls)을 변환해야합니다. 누구든지이 일을 도울 수 있습니까?파일 형식 변환

예 : 서버에있는 File.xls를 업로드하면 File.txt로 변환해야합니다.

답장을 보내 주셔서 감사합니다.

+0

도움이 필요하십니까? http://stackoverflow.com/questions/1858195/convert-xls-to-csv-on-command-line –

+0

안녕하세요, 위의 링크는 Windows 용 솔루션을 제공합니다 ..하지만 유닉스 스크립팅에서 어떻게 할 수 있습니까? –

+0

I CPAN에 Excel 모듈이 있다는 것을 알고 있습니다. 따라서 짧은 Perl 스크립트에서이를 읽고 CSV로 다시 작성할 수 있습니다. 펄은 당신을위한 선택인가? –

답변

1

이것은 당신이 원하는 일을해야합니다

#!/usr/bin/perl -w 

    use strict; 
    use Spreadsheet::ParseExcel; 

    my $parser = Spreadsheet::ParseExcel->new(); 
    my $workbook = $parser->parse($ARGV[0]); 

    if (!defined $workbook) { 
     die $parser->error(), ".\n"; 
    } 

    for my $worksheet ($workbook->worksheets()) { 

     my ($row_min, $row_max) = $worksheet->row_range(); 
     my ($col_min, $col_max) = $worksheet->col_range(); 

     for my $row ($row_min .. $row_max) { 
     my $line=""; 
     my $comma=""; 
     for my $col ($col_min .. $col_max) { 

      my $cell = $worksheet->get_cell($row, $col); 
      next unless $cell; 

      $line .= $comma; 

      $line .= $cell->unformatted(); 
      # Could be $cell->unformatted() or $cell->value() 
      $comma=","; 
     } 
     print $line,"\n"; 
     } 
    } 

저장 xls2csv로 파일은 터미널로 이동하고 실행으로합니다

:

chmod +x xls2csv 

그럼 당신은 그것을 실행할 수 있습니다

스프레드 시트 모듈을 설치하는 방법을 모른다면

sudo perl -MCPAN -e shell 
cpan> install Spreadsheet::ParseExcel 
cpan> q 
+0

안녕하세요. 유닉스에 익숙하지 않은 나는 그것을 풀려고 노력하고 있습니다. 그러나이 dint는 나를 위해 일합니다. 어떤 형식으로 xls2csv 파일을 저장할 필요가 있습니다. .and 스프레드 시트 모듈을 설치하는 것이 필요한 이유는 무엇입니까? 왜냐하면 첫 줄을 실행할 때 #sudo perl -MCPAN -e 쉘 #이 #user 실행이 허용되지 않는 오류가 발생했습니다. # .. pls 나를 도와주세요. @ Mark Setchell –

+0

안녕하세요. Praveen. 'xls2csv' 파일을 perticular 형식으로 저장할 필요가 없습니다. 이것은 스크립트가 들어있는 텍스트 파일입니다. 그러나 ".txt"확장자를 추가하지 마십시오. 단지'xls2csv'라고 말한 이름으로 저장하십시오. 'su'를 시도한 다음 루트 암호를 입력하고'perl -MCPAN -e shell'을 실행하십시오. –