본문 바로가기

개발언어/JavaFunction

자바로 엑셀 수정하기 (인텔리제이로 엑셀 매크로 작업할 수 있는 환경잡기)

프로젝트에 투입되어 개발을 하다 보면 엑셀 작업을 상당히 많이 한다. 분석->설계->개발->테스트의 과정을 거치면서 제일 많이 하는 작업이 아마도 엑셀일 것이다. 그러므로 단순히 엑셀 파일을 열어 단순 반복의 문서작업을 하는 것보다는 자바로 엑셀 매크로를 작성하면 상당히 유용할 것이다.

 

 

 

우선은 자바로 엑셀 작업을 하기 위해서는 아파치에서 제공하는 poi 라이브러리가 필요하다. https://poi.apache.org/download.html

 

Apache POI - Download Release Artifacts

Apache POI - Download Release Artifacts Available Downloads This page provides instructions on how to download and verify the Apac

poi.apache.org

위의 URL에 접속하면 다운을 받을 수 있다.

 

 

 

위의 화면에서 'Binary Distribution->poi-bin-5.0.0-20210120.zip' 을 클릭해주면 된다. 또는 'https://www.apache.org/dyn/closer.lua/poi/release/bin/poi-bin-5.0.0-20210120.zip'을 클릭해서 들어가면 바로 다운이 된다. 2021년 8월 기준 최신 버전이 poi-bin-5.0.0-20210120.zip 파일인데 시간이 지나면서 다음 버전으로 업그레이드가 되어 있을 수도 있다. 다운을 받았다면 이제 인텔리제이에 다운로드한 jar라이브러리를 추가 시켜줘야한다.

 

 

 

압축을 해제하고 폴더를 열어보면 위와 같은 파일들이 있는데 인텔리제이에 추가되어야 할 라이브러리는 빨간 상자 안에 표시를 해두었다.

 

 

 

인텔리제이의 메뉴에서 File->Project Structure...을 클릭하자. 클릭이 귀찮다면 위에 적혀있는 단축키대로 Ctrl + Alt + Shift + S 를 눌러주자.

 

 

 

그리고 Dependencies -> + -> JARs or Directories... 을 클릭하자.

 

 

 

위와 같이 C:\Users\clyne\Downloads\poi-bin-5.0.0-20210120 경로를 선택해 줬다. 여기서 주의해야 할 사항이 있는데 C:\Users\clyne\Downloads\poi-bin-5.0.0-20210120 경로를 선택하게 되면 C:\Users\clyne\Downloads\poi-bin-5.0.0-20210120 경로에 존재하는 jar 라이브러리 파일들만 추가될 뿐 하위 디렉터리에 포함되어 있는 jar 파일은 추가되지 않는다. C:\Users\clyne\Downloads\poi-bin-5.0.0-20210120\lib 경로와 C:\Users\clyne\Downloads\poi-bin-5.0.0-20210120\ooxml-lib 경로까지 따로 추가를 해주어야 한다.

 

 

C:\Users\clyne\Downloads\poi-bin-5.0.0-20210120, C:\Users\clyne\Downloads\poi-bin-5.0.0-20210120\lib, C:\Users\clyne\Downloads\poi-bin-5.0.0-20210120\ooxml-lib 이렇게 총 3개의 라이브러리들이 추가되었다.

 

 

 

이제 귀찮은 환경설정은 끝났다. 샘플 소스코드를 복사하여 실행시켜 제대로 동작하면 정상적으로 라이브러리가 추가된 것이다. 참고로 정상적으로 돌아가는지 확인하기 위해서 내가 사용한 a.xlsx 파일을 다운로드해서 테스트하기 바란다.

a.xlsx
0.01MB

 

import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.xssf.usermodel.XSSFCellStyle;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class ExcelMacro {
	public static void main(String[] args) throws IOException {

		File excelFile = new File("C:\\a.xlsx"); //해당경로에 있는 엑셀 파일을 읽는다.

		XSSFWorkbook workbook = new XSSFWorkbook(new FileInputStream(excelFile));


		XSSFCellStyle cellstyle = workbook.createCellStyle();
		cellstyle.setAlignment(HorizontalAlignment.CENTER);

		XSSFSheet sheet1 = workbook.getSheetAt(0);
		sheet1.getRow(7).createCell(4).setCellValue(12345);
		sheet1.getRow(7).getCell(4).setCellStyle(cellstyle);

		FileOutputStream outStream = null;

		outStream = new FileOutputStream("C:\\result.xlsx");

		workbook.write(outStream);

	}
}

다음 포스팅에서는 XSSFWorkbook 사용법을 좀 더 자세히 작성할 생각이다.