2013-11-05 1 views
1

나는 펄 파일에서 엑셀 파일을 열고 행을 읽는 다음 코드를 가지고있다. column, get cell (0)이 아닌 셀의 내용이다. , 1)과 (1,1) 및 (2,1)은 몇 가지 수식과 값을 가지고 있습니다. 수식에 관심이 없습니다. 셀 또는 값의 수식에 의해 반환 된 값은 행 : 1 : 0 200이면 셀 뒤의 공식이 아닌 200을 읽어야합니다! 공식 아닌 공식 자체의 결과를 원하는대로 몇 가지 좋은 사람들은펄의 셀 nt 공식 내용을 읽는 법

  some code above 
      use Spreadsheet::ParseExcel 
    $workbook = $parser->parse("$dir/$file"); 
    $worksheet = $workbook->worksheet('Sheet1'); 

    $total = $worksheet->get_cell(0,1); 
    $pass = $worksheet->get_cell(1,1); 
    $fail = $worksheet->get_cell(2,1); 

    # Print the cell value when not blank 
    $total = $total->value(); 
    $pass = $pass->value(); 
      $fail = $fail->value(); 

답변

1

value() 메소드가 복귀 .. 미리 this..thanks에 나에게 다시 얻을 수 있습니다. 방금 셀에 =1+1 수식을 사용하여 직접 테스트했으며 value()2을 반환합니다. 파일을 만들 때 사용자가 값을 지정하지 않는 이 모듈은 스프레드 시트 :: WriteExcel 만든 파일에서 수식의 값을 읽을 수 없습니다 :

엑셀 이전에 Spreadsheet::WriteExcel에 의해 만들어진 읽고있는 파일의 경우

는 다음 known issue있다 (일반적으로 그렇지 않습니다). 그 이유는 Excel의 수식 엔진에 액세스하지 않고 임의의 Excel 수식을 계산할 수있는 위치에 없기 때문에 Spreadsheet :: WriteExcel이 수식을 작성하지만 수식 결과는 작성하지 않기 때문입니다.

+0

감사 @psxls를 사용하여 발견, 어떻게하면 "xlsx"파일, 어떤 생각을 읽을 수 있습니까? .. thanks – user2912312

+1

스프레드 시트 :: XLSX – ysth

0

가 나는 확장자 "XLS"로 파일에 작동하지만 "XLSX"아니, 내가해야 할 문제가 일부 파일의 XLSX하다 생각 ..이

 use Spreadsheet::XLSX; 
     my $excel = Spreadsheet::XLSX->new("$filename"); 
     my ($sheet) = @{ $excel->{Worksheet} }; 
     print $sheet->{Cells}[0][1]{Val}, "\n";