Excelize v2.7.0
- 이에 출시: 2023 년 1 월 9 일
- GitHub 릴리스: https://github.com/xuri/excelize/releases/tag/v2.7.0
릴리스 노트
이 릴리스에서 가장 주목할 만한 변경 사항은 다음과 같습니다:
호환성
- 업그레이드 요구 사항 Go 언어 버전은 사용 중단 패키지
ioutil의 마이그레이션을 위해 1.16 이상입니다 - 유효하지 않은 문자를 자르는 대신 유효하지 않은 시트 이름에 대한 오류 확인 및 반환
GetCellStyle함수는 병합 셀 범위의 마스터 셀 스타일을 더 이상 반환하지 않습니다- 5 개의 내보낸 데이터 유형 및 오류 상수의 이름을 바꿉니다:
PivotTableOption의 이름을PivotTableOptions로 바꿉니다FormatHeaderFooter의 이름을HeaderFooterOptions로 바꿉니다FormatSheetProtection의 이름을SheetProtectionOptions로 바꿉니다SparklineOption의 이름을SparklineOptions로 바꿉니다ErrExistsWorksheet의 이름을ErrExistsSheet로 바꿉니다
- 내보낸 유형 54 개 제거:
AutoPageBreaks,BaseColWidth,BlackAndWhite,CodeName,CustomHeight,Date1904,DefaultColWidth,DefaultGridColor,DefaultRowHeight,EnableFormatConditionsCalculation,FilterPrivacy,FirstPageNumber,FitToHeight,FitToPage,FitToWidth,OutlineSummaryBelow,PageLayoutOption,PageLayoutOptionPtr,PageLayoutOrientation,PageLayoutPaperSize,PageLayoutScale,PageMarginBottom,PageMarginFooter,PageMarginHeader,PageMarginLeft,PageMarginRight,PageMarginsOptions,PageMarginsOptionsPtr,PageMarginTop,Published,RightToLeft,SheetFormatPrOptions,SheetFormatPrOptionsPtr,SheetPrOption,SheetPrOptionPtr,SheetViewOption,SheetViewOptionPtr,ShowFormulas,ShowGridLines,ShowRowColHeaders,ShowRuler,ShowZeros,TabColorIndexed,TabColorRGB,TabColorTheme,TabColorTint,ThickBottom,ThickTop,TopLeftCell,View,WorkbookPrOption,WorkbookPrOptionPtr,ZeroHeight과ZoomScale - 내보낸 상수 2 개 제거:
OrientationPortrait과OrientationLandscape - 21 기능 서명 변경:
func (f *File) SetPageLayout(sheet string, opts ...PageLayoutOption) error를func (f *File) SetPageLayout(sheet string, opts *PageLayoutOptions) error로 변경func (f *File) GetPageLayout(sheet string, opts ...PageLayoutOptionPtr) error를func (f *File) GetPageLayout(sheet string) (PageLayoutOptions, error)로 변경func (f *File) SetPageMargins(sheet string, opts ...PageMarginsOptions) error를func (f *File) SetPageMargins(sheet string, opts *PageLayoutMarginsOptions) error로 변경func (f *File) GetPageMargins(sheet string, opts ...PageMarginsOptionsPtr) error를func (f *File) GetPageMargins(sheet string) (PageLayoutMarginsOptions, error)로 변경func (f *File) GetSheetIndex(sheet string) int를func (f *File) GetSheetIndex(sheet string) (int, error)로 변경func (f *File) SetSheetName(source, target string)를func (f *File) SetSheetName(source, target string) error로 변경func (f *File) GetSheetVisible(sheet string) bool를func (f *File) GetSheetVisible(sheet string) (bool, error)로 변경func (f *File) DeleteSheet(sheet string)를func (f *File) DeleteSheet(sheet string) error로 변경func (f *File) NewSheet(sheet string) int를func (f *File) NewSheet(sheet string) (int, error)로 변경func (f *File) NewConditionalStyle(style string) (int, error)를func (f *File) NewConditionalStyle(style *Style) (int, error)로 변경func (f *File) NewStyle(style interface{}) (int, error)를func (f *File) NewStyle(style *Style) (int, error)로 변경func (f *File) AddChart(sheet, cell, opts string, combo ...string) error를func (f *File) AddChart(sheet, cell string, chart *ChartOptions, combo ...*ChartOptions) error로 변경func (f *File) AddChartSheet(sheet, opts string, combo ...string) error를func (f *File) AddChartSheet(sheet string, chart *ChartOptions, combo ...*ChartOptions) error로 변경func (f *File) AddShape(sheet, cell, opts string) error를func (f *File) AddShape(sheet, cell string, opts *Shape) error로 변경func (f *File) AddPicture(sheet, cell, picture, format string) error를func (f *File) AddPicture(sheet, cell, picture string, opts *GraphicOptions) error로 변경func (f *File) AddPictureFromBytes(sheet, cell, opts, name, extension string, file []byte) error를func (f *File) AddPictureFromBytes(sheet, cell, name, extension string, file []byte, opts *GraphicOptions) error로 변경func (f *File) AddTable(sheet, hCell, vCell, opts string) error를func (f *File) AddTable(sheet, rangeRef string, opts *TableOptions) error로 변경func (sw *StreamWriter) AddTable(hCell, vCell, opts string) error를func (sw *StreamWriter) AddTable(rangeRef string, opts *TableOptions) error로 변경func (f *File) AutoFilter(sheet, hCell, vCell, opts string) error를func (f *File) AutoFilter(sheet, rangeRef string, opts *AutoFilterOptions) error로 변경func (f *File) SetPanes(sheet, panes string) error를func (f *File) SetPanes(sheet string, panes *Panes) error로 변경func (f *File) SetConditionalFormat(sheet, reference, opts string) error를func (f *File) SetConditionalFormat(sheet, rangeRef string, opts []ConditionalFormatOptions) error로 변경
- 기존 함수 대신 새 함수 도입:
SetSheetPrOptions및SetSheetFormatPr대신SetSheetProps를 사용하십시오GetSheetPrOptions및GetSheetFormatPr대신GetSheetProps를 사용하십시오SetSheetViewOptions대신SetSheetView사용GetSheetViewOptions대신GetSheetView사용SetWorkbookPrOptions대신SetWorkbookProps사용GetWorkbookPrOptions대신GetWorkbookProps사용- 한 번에 여러 행 삽입을 지원하려면
InsertRow대신InsertRows를 사용하세요 - 한 번에 여러 열 삽입을 지원하려면
InsertCol대신InsertCols를 사용하세요
CellTypeFormula,CellTypeInlineString,CellTypeSharedString을 추가하고CellType열거에서CellTypeString을 제거합니다AddComment기능에 대한 매개변수가 변경되었습니다. 주석에 서식 있는 텍스트 생성 지원, 관련 문제 #1204- 내부 오류 로그 인쇄를 제거합니다. XML 역직렬화 오류가 발생하면 오류가 반환됩니다.
GetComments,GetDefaultFont및SetDefaultFont함수에 대한 오류 반환 값을 추가합니다
주목할 만한 기능
- 데이터 유효성 검사 및 조건부 형식을 얻기 위해
GetDataValidations및GetConditionalFormat이라는 새로운 함수를 추가합니다, 관련 문제 #827 - 통합 문서 보호 지원을 위한 새로운 기능
ProtectWorkbook및UnprotectWorkbook추가 - 워크 시트 열 셀 설정에 대한 새 함수
SetSheetCol추가, 관련 문제 #1247 - 열 스타일 가져오기를 위한 새로운 함수
GetColStyle추가, 관련 문제 #1293 - 주어진 이미지 데이터로 배경 그림을 설정하기 위한 새로운 기능
SetSheetBackgroundFromBytes추가, 관련 문제 #1405 - 새 내보내기 변수 추가
IndexedColorMapping - 내보내기 유형 20 개 추가:
AutoFilterListOptions,AutoFilterOptions,Chart,ChartAxis,ChartDimension,ChartLegend,ChartLine,ChartMarker,ChartPlotArea,ChartSeries,ChartTitle,ConditionalFormatOptions,PaneOptions,Panes,GraphicOptions,Shape,ShapeColor,ShapeLine,ShapeParagraph및TableOptions - 새로운 지원 2 공식 함수: AGGREGATE 및 SUBTOTAL
Save,Write및WriteTo기능은 이제 저장 옵션을 허용합니다, 관련 문제 #744AddChart기능 지원은 꺾은선형 차트의 부드러운 선인지 여부를 지정합니다, 관련 문제 #1290AddChart기능 지원 차트에서 사용자 정의 선 색상을 설정, 관련 문제 #1345AddChart기능은 사용자 지정 차트 축 글꼴 스타일을 지원합니다, 관련 문제 #320AddChart기능 지원 3D 꺾은선형 차트 만들기SetColWidth,GetColWidth,SetColVisible,GetColVisible,SetColStyle및GetColStyle함수는 이제 동시성 안전을 지원합니다- 존재하지 않는 스타일 ID 를 설정할 때 오류가 반환됩니다, 관련 문제 #1323
- 오름차순 행 번호 없이 스트림 행을 설정하면 잠재적인 실수를 방지하기 위해 오류가 반환됩니다, 관련 문제 #1139
- 스트림 작성기는 각 셀에 대해
RowOpts의 스타일을 적용합니다, 관련 문제 #1354 - 창 설정을 위한 스트림 작성기 지원, 관련 문제 #1047
- 인라인 서식 있는 텍스트 셀을 설정하는 스트림 작성기 지원
- 페이지 나누기를 삽입하기 위한 스트림 작성자 지원
- 새로운 5개의 내보낸 오류
ErrStreamSetPanes,ErrSheetNameBlank,ErrSheetNameInvalid,ErrSheetNameLength및ErrSheetNameSingleQuote가 추가되었습니다 - 7 개의 새로운 내보내기 데이터 유형 소개:
ErrUnprotectWorkbook,ErrUnprotectWorkbookPassword,HeaderFooterOptions,PageLayoutMarginsOptions,PageLayoutOptions,SheetPropsOptions과ViewOptions - 윤곽선의 세부 정보 오른쪽에 표시되도록 요약 열을 설정하는 지원
- 테마와 색조로 글꼴 색상을 설정하고 얻을 수있는 지원, 관련 문제 #1369
- ISO 8601 형식의 날짜가 포함된 셀 값 가져오기 지원
- 색인 색상으로 글꼴 색상 설정 및 가져오기 지원
- 열을 삽입하거나 삭제할 때 업데이트 열 스타일 지원
- 통합 문서
Close기능은 이제 정리 스트림 작성기 임시 파일을 지원합니다 - 이제
AddPicture기능을 사용하여 SVG 형식 이미지를 삽입할 수 있습니다
호환성 개선
버그 수정
- 빌드 인 숫자 형식으로 십진수 형식 라운드 문제 해결, 관련 문제 #1328, #1368 과 #1373
- 경우에 따라 AM/PM 번호 형식 적용 문제 수정, 관련 문제 #1338
- 범위를 벗어난 슬라이스 경계로 인해 발생한 주석을 삭제할 때 패닉을 수정하십시오, 관련 문제 #1343
- 경우에 따라 셀 값을 가져올 때 패닉 수정, 관련 문제 #1384 과 #1415
- 긴 자릿수 문자열로 기본 숫자 형식 구문 분석 문제 해결, 관련 문제 #1360
- 빈 이름의 시트를 만들면 파일이 손상되는 문제 해결, 관련 문제 #1361
- 이미지 삽입 후 이미지 내용이 비어 있는 문제 해결
- 경우에 따라 열 / 행을 삽입 한 후 통합 문서 손상 생성 수정
- 수식 셀을 작성할 때 계산 체인에서 공유 수식을 삭제하여 경우에 따라 통합 문서 손상 생성 수정
- 시트 이름을 정규화하여 2.6.0 과 2.6.1 사이의 동작 회귀를 수정합니다, 관련 문제 #1365
OR함수의 공식 계산 결과 문제 수정- 하나의 셀 병합된 셀 범위가 포함된 워크시트에 열 또는 행 삽입 시 오류 수정
- 하나의 셀 병합된 셀 범위가 포함된 워크시트에서 병합된 셀 범위 가져오기 오류 수정
- 경우에 따라 불완전한 서식 있는 텍스트 셀 값을 가져오는 문제 수정
- 손상된 파일을 방지하기 위해 스트림 작성기용 이스케이프 XML 문자, 관련 문제 #1391
- 워크시트 이름이 비어 있는 수식 함수 ADDRESS 결과 오류 수정, 관련 문제 #1396
- 경우에 따라 그림 삽입 문제 수정, 관련 문제 #1404
성능 최적화
- 스트림 라이터 병합 셀의 성능 향상, 시간 비용 90% 이상 감소, 최대 약 86% 메모리 사용량 감소
- 스트림 라이터
SetRow기능의 성능 향상, 메모리 사용량 감소 및 약 19% 속도 향상
기타
- Go Modules 는 모듈 업데이트에 의존합니다
- 단위 테스트 및 godoc 업데이트
- 변수 및 함수에 특수 이름 사용
- 중국어 간체, 영어, 프랑스어, 러시아어, 일본어, 한국어, 아랍어, 독일어 및 스페인어가 포함된 다국어 문서 사이트 업데이트
고맙습니다
Excelize 에 기여한 모든 분들께 감사드립니다. 아래는 이 버전에서 코드 기여도가 있는 기여자 목록입니다:
- @cdenicola (Cooper de Nicola)
- @chenliu1993
- @davidborry
- @patsak (Kostya Privezentsev)
- @dafengge0913
- @Beeb0p (Artem Tarasenko)
- @invzhi
- @zhangzitao (Zitao)
- @jtwatson (Joseph Watson)
- @carbin-gun (charles.deng)
- @harrison3000 (Harrison)
- @strivek (GaoFei)
- @gonghaibinx
- @martinmr (Martin Martinez Rivera)
- @zclark (Zach Clark)
- @March0715 (March)
- @renxiaotu
- @devloppper
- @jianxinhou
- @nesstord
- @Bayzet (Bayzet Tlyupov)
- @guoweikuang (郭伟匡)
- @qinyuguang (Gin)
- @liron-l (Liron Levin)