[개발] C#, .Net

[C#, .NET, spread] 엑셀 다운로드 시 잘못된 행 인덱스 에

  • -
반응형

1. 에러 내용

SystemApplicationException: Excel 파일을 저장하는 동안 오류 발생 -•-> System.IndexOutOfRangeException: 잘못된 행 인덱스: 1(-1에서 0 사이여 야 합니다).
위치:
FarPoint.Win.Spread.Model.DefaultSheetStyleModel.GetDirectInfo(Int32
row, Int32 column, Styleinto destinto)
9|7|: cia(jv A_O, Int32 A_1, Boolean A_2, Boolean& A_3, Boolean& A_4, Boolean& A_5, Int328 A_6, Styleinfo& A_7)
9|7|: ns.ctorjv A_0, Int32 A_1, Int32 A_2, Boolean A_3) |
PIX|: jva(Boolean A_O, List'1 A_1, Boolean A_2)
HA: jv.bo
PIXI: jv.ctor(ci A_0, Int32 A_1, SheetView A_2)
9|7|: ci.q(Int16 A_0)
PIX|: as.c(Int16 A_0, MemoryStream A_1, ExcelSaveFlags A_2)
9|X|: as.b(Int16 A_O, MemoryStream A_1, ExcelSaveflags A_2)
PIX|: as.a(Stream A_O, ExcelSaveFlags A_1)|
9|X|: FarPoint.Excel.ExcelFileHandler.a(String A_O, ExcelSaveFlags A_1,
String A_2)
PIX|: FarPoint.Excel.ExcelFileHandler.Save(String fileName,
ExcelSaveFlags saveFlags, String password)
PIX|: ci.a(String A_O, ExcelSaveFlags A_1, String A_2)
PIXI: c9.a(String A_O, Stream A_1, ExcelSaveFlags A_2, ExcelWarningList
A_3, String A_4)
. 내부 예외 스택 추적의 끝
9|X|: c9.a(String A_O, Stream A_1, ExcelSaveFlags A_2, ExcelWarningList
A_3, String A_4)
9|*|: c9.a(String A_O, Stream A_1, IncludeHeaders A_2, Exce|WarningList A_3)|
9|*|: FarPoint.Win.Spread.FpSpread.SaveExcel(String fileName, IncludeHeaders includeHeaders, ExcelWarningList warningList)|
FIX|: FarPoint.Win.Spread.FpSpread.SaveExcel(String fileName,
IncludeHeaders includeHeaders)
9|*|: ScrsFrame.Common.SpreadUtils.SaveExcelFile(FpSpread spread,
String filePath, String title)
P|*|: ScrsFrame.Common.SpreadUtils.SaveExcel(FpSpread spread,
String fileName, String title)

 

 

 

 

2. 원인

spread에서 sheet를 2개 사용하는데, 화면상으로만 안보이고, 내부적으로 컬럼헤더가 2개되어있어 잘못된 행 인덱스 에러가 발생했음

 

 

3. 해결 방법

엑셀 다운로드해야할 시트를 복제해서 엑셀 저장되는 스프레스 파라미터로 넘겨주었음

시트 복제 코드

 FarPoint.Win.Spread.FpSpread newSpread = new FarPoint.Win.Spread.FpSpread();
 newSpread.Sheets.Add(fpSpread.Sheets[0].Clone());


// 엑셀 저장
SpreadUtils.SaveExcel(newSpread, title);

ps. 시트 복제안하고, 안보이는 spread를 clear해줘도 돼었을 듯!

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.