EPPlus 7 요약
1. 라이선스 변경 안내 (EPPlus 5 버전부터 적용)
- EPPlus는 LGPL에서 Polyform Noncommercial 1.0.0 라이선스로 변경되었습니다.
- 비상업적 사용은 여전히 무료이지만, 상업적 사용을 위해서는 상용 라이선스가 필요합니다.
- 자세한 내용은 여기에서 확인할 수 있으며, 상용 라이선스는 EPPlus 공식 웹사이트에서 구매할 수 있습니다.
- 소스 코드는 새로운 GitHub 저장소로 이동했습니다.
2. LicenseContext 파라미터 설정 필수
- EPPlus는 라이선스를 설정하지 않으면 디버그 모드에서 LicenseException이 발생합니다.
- 라이선스 설정은 아래와 같은 여러 방식으로 구성할 수 있습니다.
1) 코드에서 설정:
// 상업적 사용 시
ExcelPackage.LicenseContext = LicenseContext.Commercial;
// 비상업적 사용 시
ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
using (var package = new ExcelPackage(new FileInfo("MyWorkbook.xlsx")))
{
// 엑셀 작업 수행
}
2) appSettings.json에서 설정:
{
"EPPlus": {
"ExcelPackage": {
"LicenseContext": "Commercial"
}
}
}
3) Web.config 또는 App.config에서 설정:
<appSettings>
<add key="EPPlus:ExcelPackage.LicenseContext" value="NonCommercial" />
</appSettings>
4) 환경 변수(Environment Variable)로 설정:
- 환경 변수
EPPlusLicenseContext
를 사용해 설정할 수 있습니다.
- 환경 변수는 사용자 또는 프로세스 수준에서 설정해야 합니다.
- 예:
Commercial
또는 NonCommercial
로 설정
3. EPPlus 7 Preview 1의 새로운 기능
- 배열 수식 지원을 위한 계산 엔진 업데이트
- 레거시 및 동적 배열 수식 계산 지원
- 교차 연산자(intersect operator) 지원
- 암묵적 교차(Implicit intersection) 지원
- 함수의 배열 매개변수 지원
- 콜론 연산자(:)를 함수와 함께 사용할 때 더 나은 지원 제공
- 21개의 새로운 함수 추가
4. 호환성 깨짐(Breaking Changes)
EPPlus 7에서는 수식 파서가 크게 변경되어 사용자 정의 함수가 ExcelFunction
클래스를 상속하는 경우 검토가 필요합니다. 새로운 프로퍼티와 메서드가 도입되었습니다.
- 새로운 프로퍼티:
NamespacePrefix
: 저장 시 접두사가 필요한 경우(예: "_xlfn.")
HasNormalArguments
: 일반 인수를 사용하는지 여부를 나타내는 부울 값
ReturnsReference
: 범위 참조를 반환할 수 있는지 여부
IsVolatile
: 동일한 매개변수로 호출 시 다른 결과를 반환하는지 여부
ArrayBehaviour
: 매개변수로 배열을 허용하고 배열 출력이 가능한지 여부
- 새로운 메서드:
CreateAddressResult
: 범위 참조 결과 반환
CreateDynamicArrayResult
: 동적 배열로 결과 처리
GetArrayBehaviourConfig
: 배열 매개변수를 설정
- 토크나이저(Tokenization) 개선:
- 주소를 더 정교하게 분석하도록 개선됨
- 표현식 처리는 역폴란드 표기법을 사용해 재작성됨
5. 버전별 주요 변경 사항
- EPPlus 6.1 변경 사항:
System.Drawing.Common
에 대한 모든 참조가 제거됨
자세한 정보
FontSize
클래스가 분리되어 폭과 높이를 개별적으로 관리
- EPPlus 5.x 변경 사항:
- .NET Framework의
Worksheet
컬렉션 기본 인덱스가 1에서 0으로 변경됨
- 이미지 태그에서
twoCellAnchor
대신 oneCellAnchor
가 사용됨
6. 문서화 개선
결론
EPPlus는 버전 5부터 Polyform Noncommercial 라이선스로 전환되어, 상업적 사용을 위해서는 라이선스를 구매해야 합니다. EPPlus 7에서는 배열 수식 지원 등 다양한 기능이 추가되었으며, 수식 파서와 토크나이저가 크게 변경되었습니다. 문서화와 샘플 프로젝트도 강화되어, 사용자 경험이 크게 향상되었습니다.