2013-03-01 3 views
0

도와주세요. gembox.spreadsheet 라이브러리를 사용하여 엑셀 파일에서 2 장 이내의 특정 행에 삽입 및 복사합니다. 하지만 여전히 잘못된 인수로 인해 문제가 발생했습니다.gembox 스프레드 시트를 사용하여 특정 행을 복사하고 삽입하는 방법

public void InsertCopyData() 
    { 
     SpreadsheetInfo.SetLicense("FREE-LIMITED-KEY"); 
     ExcelFile ef = new ExcelFile(); 

     // Loads Excel file. 
     ef.LoadXls(@"C:\templateExcel\DataTable.xls"); 

     // Selects first and 2nd worksheet. 
     ExcelWorksheet w1 = ef.Worksheets[0]; 
     ExcelWorksheet w2 = ef.Worksheets[1]; 

     //insert copy file 
     w1.InsertCopy(w1.Rows["A1"], w2.Rows["A4"]); 


     //Saves the file in XLS format. 
     ef.SaveXls(@"C:\templateExcel\Insert DataTable.xls"); 

    } 

답변

1

이 같이 사용할 수 없습니다 ef.LoadXls(@"C:\templateExcel\DataTable.xls");

당신은 기존의 Excel 파일을로드하기 위해 작성해야한다.

GemBox.Spreadsheet.ExcelFile ef = new GemBox.Spreadsheet.ExcelFile(); 
ef = GemBox.Spreadsheet.**ExcelFile.Load**("D:\\Example.xlsx"); 
ExcelWorksheet ws = ef.Worksheets["Sheet1"]; (or) ExcelWorksheet ws = ef.Worksheets[0]; 
// writing data to excel file code... 
ws.Cells[0, 0].Value = example_1; 
ws.Cells[1, 0].Value = example_2; 
ef.Save("D:\\Example.xlsx"); 
1

메모 GemBox.Spreadsheet를 사용하면 워크 시트, 행 및/또는 열을 삽입 할 수 있습니다. 잘못된 인수와 함께 사용되는 API는 행을 삽입하기 위해 복사합니다 워크 시트를 삽입하기위한 다음과 같은 사용, 복사 :

// Inserts specified number of copied rows before the current row. 
var currentRow = w1.Rows["A1"]; 
currentRow.InsertCopy(1, w2.Rows["A4"]); 
+0

이 작동하지만,이 문제가 발생합니다 을 수행합니다. ArgumentOutOfRangeException - GetUsedCellRange (true)를 호출 할 때 행 인덱스가 최대 행 인덱스 (1048575)보다 클 수 없음 b. Excel 2013에서 '일부 콘텐츠에 문제가 있음'이라는 경고 메시지가 표시됩니다. – Alonzzo2

+0

문제가 무엇인지 정확하게 알려면 입력 및 출력 Excel 파일을 조사해야 할 것 같습니다. [이 링크] (http://www.gemboxsoftware.com/support-center/new-ticket)와 함께 지원 티켓을 제출하고 문제를 재현 할 수있는 정보 (또는 파일)를 제공해야합니다. –

관련 문제