2023-08-22-TIL
Today I Learned
Fastexcel
Java에서 엑셀 파일을 다룰 때 가장 먼저 떠오르는 라이브러리는 Apache POI다. fastexcel은 큰 엑셀 파일을 빠르게 쓰고 읽는 데 초점을 맞춘 대안이다. README의 한 줄 소개가 “Generate and read big Excel files quickly”다.
README가 내세우는 차이는 다음과 같다.
- 쓰기와 읽기 모두 스트리밍 방식이다. 시트 전체를 메모리에 올리지 않고 XML을 출력으로 흘려 보낸다.
- 그래서 큰 시트를 만들 때 POI보다 메모리를 적게 쓰고 더 빠르다고 밝힌다.
- 시트 여러 개를 여러 스레드에서 동시에 만들 수 있다.
- 대신 기능을 일부러 줄였다. 차트 같은 기능은 지원하지 않고, 읽기 쪽은 서식이나 차트 같은 부가 정보를 버리고 값만 읽는다.
기본 사용법은 Workbook을 만들고 Worksheet를 얻은 뒤 value(row, col, ...)로 셀에 값을 넣고, 마지막에 워크북을 닫아 파일을 완성하는 흐름이다. 화려한 서식 없이 대량의 행을 내려받는 엑셀 다운로드 기능이라면 이 제약이 문제가 되지 않는다. 반대로 기존 양식 파일에 값을 채우거나 차트를 넣어야 한다면 POI가 필요하다.
같은 이름의 다른 프로젝트도 있어서 헷갈리기 쉽다. 링크 중 SourceForge의 FastExcel은 Excel 97-2003 형식(BIFF8)을 다루는 Java 라이브러리이고, ahmedwalid05/FastExcel은 xlsx를 읽고 쓰는 .NET 라이브러리다. 둘 다 dhatim의 fastexcel과는 다른 프로젝트다.
- https://github.com/dhatim/fastexcel
- https://www.javadoc.io/doc/org.dhatim/fastexcel/latest/index.html
- https://zetcode.com/java/fastexcel/
- https://fastexcel.sourceforge.net/#example
- https://github.com/ahmedwalid05/FastExcel
Today’s News
Microsoft가 Excel 안에서 Python을 쓰는 기능을 발표했다. 셀에 =PY를 입력하면 Python 코드를 쓸 수 있고, 계산은 사용자 PC가 아니라 Microsoft Cloud에서 실행된다. 라이브러리는 Anaconda에서 가져온 목록을 제공해서 따로 Python을 설치하지 않아도 데이터 분석과 시각화를 할 수 있다(Microsoft 지원 문서).
- https://techcommunity.microsoft.com/t5/excel-blog/announcing-python-in-excel-combining-the-power-of-python-and-the/ba-p/3893439
댓글
아직 댓글이 없습니다