2016-10-14 3 views
0

Excel에서 시트를 복사하고 싶습니다. 특정 이름의 시트 사본을 만듭니다.Aspose 통합 문서 복사/이름 바꾸기 시트

Aspose.Cells.Workbook workbook = new Aspose.Cells.Workbook(excelFilePath); 
       //Create a Worksheets object with reference to the sheets of the Workbook. 
       WorksheetCollection sheets = workbook.Worksheets; 
       sheets.AddCopy("Cash Bonuses"); 

이제는 "현금 보너스"시트의 데이터를 복사하지만 시트 이름을 "Sheet111"로 복사하는 것이 문제입니다. "Cash"와 같은 지정된 이름으로이 시트를 만들고 싶습니다. 어떻게해야합니까? 데이터가 새 탭으로 복사되면 이전 탭 "현금 보너스"를 삭제하고 "현금"에서 "현금 보너스"로 새 탭의 이름을 변경합니다.

답변

1

워크 시트의 내용을 다른 워크 시트에 복사하려면 빈 워크 시트를 컬렉션에 추가 한 다음 기존 워크 시트의 개체 (복사해야 할 개체)를 전달하는 동안 Copy 메서드를 호출해야합니다. 그렇지 않으면 대상 워크 시트의 데이터가 손실됩니다.

모든 요구 사항을 충족 시키려면 다음 코드를 시도하십시오. 다행히도 그 의견은 진술이 의미하는 바를 이해하는 데 도움이 될 것입니다.

var workbook = new Aspose.Cells.Workbook(excelFilePath); 
var sheets = workbook.Worksheets; 
//Access 1st worksheet from the collection 
//You may also pass the worksheet name to access a particular worksheet 
var sheet0 = sheets[0]; 
//Add a new worksheet to the collection and name it as desired 
var sheet1 = sheets[sheets.Add()]; 
sheet1.Name = "Cash"; 
//Copy the contents of 1st worksheet onto the new worksheet 
sheet1.Copy(sheet0); 
//Delete 1st worksheet 
sheets.RemoveAt(sheet0.Index); 
//Rename newly added worksheet to 'Cash bonuses' 
sheet1.Name = "Cash bonuses"; 
//Save result 
workbook.Save(dir + "output.xlsx"); 

참고 : 개발자 용 전도사로 Aspose와 협력합니다.

+0

고마워요. .. 분명히 당신의 솔루션을 시험해 볼 것입니다 ...하지만 문제는 내 엑셀에서 pdf로 변환하는 동안 일반 오류 "경계 밖 예외 인덱스"를 제공하는 것입니다. 나는 정확한 오류가 무엇인지 알아낼 수 없다. workbook.Save로 나에게이 에러를 준다. aspose를 사용하여 엑셀에서 pdf로 변환하는 동안 체크 박스 컨트롤로 시트를 사용하면 오류가 발생한다. Aspose 8.5.2.0 버전을 사용하고 있습니다. 정확한 오류를 찾을 수 없었습니다. – user662285

+0

excel에서 어떤 셀이 "out of bound exception"오류를 일으키는 지 찾기위한 코드를 얻을 수 있습니까? – user662285

+0

문제가되는 원인을 찾아내는 코드 스 니펫이 없지만 .NET 16.10.0 용 Aspose.Cells의 최신 버전을 제공 할 것을 제안 할 수 있습니다 (Aspose 다운로드 섹션 및 NuGet을 통해 제공) 최근의 우려를위한 시도. 문제가 지속될 경우 샘플을 검토하여 예외의 원인을 확인해야하므로 Aspose.Cells 지원 포럼에 새 스레드를 만들고 코드 스 니펫과 함께 샘플을 공유하여 예외를 복제하십시오. – Prorata

관련 문제