2013-10-07 4 views
2

안녕 Perl을 사용하여 Excel 통합 문서에 '요약'이라는 워크 시트가 있으면 삭제해야합니다. 내가 먼저 엑셀의 내용이 같은 파일을 구문 분석 :이 파일은 '요약'워크 시트가 있다면 perl을 사용하여 통합 문서의 워크 시트 삭제

my $parser = new Spreadsheet::ParseExcel::SaveParser; 
my $template = $parser->Parse($FileName) or die "$!\n"; 
$workbook = $template->SaveAs($FileName); 

지금 나는 그것을 삭제해야합니다. 파일이 Spreadsheet::WriteExcel/ Spreadsheet::ParseExcel의 개체로 이미 열려 있고 처리기가 파일을 아직 닫지 않았기 때문에 Spreadsheet::SimpleExcel을 사용할 수 없습니다. 따라서 Spreadsheet::SimpleExcel의 새 개체를 만들 수 없으며이 워크 시트를 Excel에서 제거 할 수 있습니다.

워크 시트를 삭제할 수있는 방법이 있습니까? 위의 코드와 같이 통합 문서를 저장하기 전에 워크 시트를 제거 할 수 있습니까?

답변

0

이 시도하십시오,

의 foreach 내 $ 시트 (@ {$ 템플릿 -> {워크 시트}}) {

if($sheet->{Name} eq "summary"){ 
    splice(@{$template->{Worksheet}},$sheet,1); 
} 

}

+0

이 didn를 작업 ... – user2854259

+0

user2854259 @가 엑셀 시트를 지우는 직접적인 방법은 아니지만 스플 라이스를 사용하여이를 수행 할 수 있습니다. – Kuthbudin

관련 문제