wb.close();
에 변경 사항이없는 경우에도, 다음 전화를
Workbook wb = WorkbookFactory.create(myFile);
를 사용하여 Excel 파일을 열 ...하지만 할 수있는 표시
를 업데이트하지 않고 파일을 읽을 ... 자원을 해제하면 파일 시스템의 파일이 업데이트됩니다 (최소한 타임 스탬프는 아무것도 표시되지 않습니다).
- 내가 열려면 : 나는이 문제를 발견하는 유일한 방법은 내가 할 노력하고있어하면 다음과 같다 통합 문서 작성
Workbook wb = WorkbookFactory.create(myFile, true);
에 "읽기 전용"되도록 지정하는 것입니다 파일에서 기존 통합 문서;
- 즉시 파일 시스템 리소스를 해제하고 메모리에 통합 문서를 유지합니다. (원본 파일의 타임 스탬프를 업데이트해서는 안 됨).
- 메모리 내 통합 문서를 변경하십시오.
- 수정 된 통합 문서를 새 파일로 저장하십시오.
이것은 가능합니까? 나는 많은 것들을 시도했지만 그것을 작동시키지 못합니다. 원본 파일 타임 스탬프를 업데이트하지 않으려면 통합 문서를 읽기 전용으로 열어야합니다. 그러나 나는 새 파일에 대한 후속 쓰기를 위해 메모리에서 수정할 수 없습니다. Catch-22.
[BTW, 스트림보다 파일에서 통합 문서를 만드는 중입니다. 더 효율적이라고 생각하기 때문에. 스트림을 사용하면 스트림을 직접 닫아이 문제를 해결할 수 있습니다. 또한 XLSX가 아닌 XLSX/XLSM을 사용하고 있습니다.]
생각 하시겠습니까? 감사!
[다양한 읽기 및 쓰기 방법에 대한 Apache POI FAQ 읽기 (http://poi.apache.org/faq.html#faq- N1023C)? '.xlsx'보다는'.xls'로 작업 할 수 있습니까? (현재 전 3.15 베타 2/3.15 최종 버전에서 새로운 파일에 대한 쓰기 및 쓰기 기능이 더 잘 개발되었습니다.) – Gagravarr
정보 및 제안에 감사드립니다. 불행히도, 나는 주로 XLSX를 사용하여 잠겨 있습니다. – Gurtz