public class Main {
public static void main(String[] args) throws IOException {
FileInputStream inputStream = null;
FileOutputStream outputStream = null;
XSSFWorkbook workbook = null;
String templatePath = "C:/template.xlsx";
String outputFilePath = "C:/";
String outputFileName = "outputFile.xlsx";
try {
inputStream = new FileInputStream(templatePath);
workbook = new XSSFWorkbook(inputStream);
outputStream = new FileOutputStream(outputFilePath + outputFileName);
workbook.write(outputStream);
} catch (Exception e) {
e.printStackTrace();
} finally {
workbook.close();
outputStream.close();
inputStream.close();
}
}
}

우선 이게 코드임 apache.poi 라이브러리 사용해서 엑셀 템플릿파일 읽은후
다른 값들을 입력시켜준뒤 다른파일로 저장하는 코드라고 보면됨 값 입력하는건 생략했음
그런데 여기서 문제가 workbook을 이용하는 순간 기존 템플릿과 다른 파일이 된다는점임

코드를 실행시켜보면 기존의 템플릿과 새로운 파일 하나를 생성하는데

보시다시피 생성된 파일이 템플릿보다 8kb정도 부족한 상황임

아마 이 8kb정도의 손실로 기존의 템플릿 파일과 다르다고 인식되는게 문제


일단은 새로 생성된 파일을 직접 열고 들어가서 저장을 해주고 나오면 똑같이 122kb가 되면서

같은 파일이라고 인식을 하긴 하는데 이 문제를 해결하고싶음


*현재까지 시도한 방법
1.다른라이브러리 사용
2.XSSF가 아닌 HSSF SSXSF등 다른 메소드 사용
3.close 순서 변경
4.inputStream,outputStram이 아니라 직접 파일을 복사해서 읽고쓰기(files.copy)


+ 다른 템플릿 파일은 정상적으로 같은 파일로 생성되지만 위 템플릿만 이런 현상임