У меня вопрос относительно Java Excel.
Я обновил версию Apache-poi с 3.17 до 4.1.2, но загрузка Excel не работает.
И поскольку существующее ядро jxls было перенесено в org.jxls, jxls-core было удалено, а версия jxls была обновлена до 2.10.0.
Это связанный код
pom.xml
org.apache.poi
poi-ooxml
4.1.2
org.apache.poi
poi-ooxml-schemas
4.1.2
org.jxls
jxls
2.8.1
commons-logging
commons-logging
ch.qos.logback
logback-core
org.jxls
jxls-poi
2.10.0
ch.qos.logback
logback-core
код
public void download(HttpServletRequest request, HttpServletResponse response, Map beans, String filename, String templateFile) {
InputStream is = null;
OutputStream os = null;
try {
Resources.setCharset(StandardCharsets.UTF_8);
is = new BufferedInputStream(Resources.getResourceAsStream("excel_templates/" + templateFile));
PoiTransformer transformer = PoiTransformer.createTransformer(is);
// Map을 Context 객체로 변환
Context context = new Context(beans);
JxlsHelper.getInstance().processTemplate(context, transformer);
Workbook resultWorkbook = transformer.getWorkbook();
// 응답 헤더 및 Content-Type 설정
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setHeader("Content-Disposition", "attachment; filename=\"" + filename + ".xlsx\"");
// OutputStream 초기화
os = response.getOutputStream();
// 워크북을 OutputStream에 씀
resultWorkbook.write(os);
os.flush(); // 버퍼 비우기
System.out.println("10");
} catch (Exception e) {
logger.error("Error during download: " + e.getMessage());
} finally {
// 자원 정리
try {
if (is != null) is.close();
if (os != null) os.close();
} catch (IOException e) {
logger.error("Error closing streams: " + e.getMessage());
}
}
}
2024-10-07 16:27:09.764 [http-nio-8080-exec-7] ERROR com.sgt.appm.excel.MakeExcel - Error during download: Cannot write a workbook with an uninitialized output stream
удалить зависимости
net.sf.jxls
jxls-core
1.0.6
public void download(HttpServletRequest request, HttpServletResponse response, Map beans, String filename, String templateFile) {
try {
Resources.setCharset(Charset.forName("UTF-8"));
InputStream is = new BufferedInputStream(Resources.getResourceAsStream("excel_templates/" + templateFile));
XLSTransformer transformer = new XLSTransformer();
Workbook resultWorkbook = transformer.transformXLS(is, beans);
response.setHeader("Content-Disposition", "attachment; filename=\"" + filename + ".xlsx\"");
OutputStream os = response.getOutputStream();
resultWorkbook.write(os);
is.close();
resultWorkbook.close();
} catch (Exception e) {
logger.error(e.getMessage());
}
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... compatible
Совместимость с Apache-poi, версией jxls-poi ⇐ JAVA
Программисты JAVA общаются здесь
-
Anonymous
1728293611
Anonymous
У меня вопрос относительно Java Excel.
Я обновил версию Apache-poi с 3.17 до 4.1.2, но загрузка Excel не работает.
И поскольку существующее ядро jxls было перенесено в org.jxls, jxls-core было удалено, а версия jxls была обновлена до 2.10.0.
Это связанный код
[b] pom.xml[/b]
org.apache.poi
poi-ooxml
4.1.2
org.apache.poi
poi-ooxml-schemas
4.1.2
org.jxls
jxls
2.8.1
commons-logging
commons-logging
ch.qos.logback
logback-core
org.jxls
jxls-poi
2.10.0
ch.qos.logback
logback-core
код
public void download(HttpServletRequest request, HttpServletResponse response, Map beans, String filename, String templateFile) {
InputStream is = null;
OutputStream os = null;
try {
Resources.setCharset(StandardCharsets.UTF_8);
is = new BufferedInputStream(Resources.getResourceAsStream("excel_templates/" + templateFile));
PoiTransformer transformer = PoiTransformer.createTransformer(is);
// Map을 Context 객체로 변환
Context context = new Context(beans);
JxlsHelper.getInstance().processTemplate(context, transformer);
Workbook resultWorkbook = transformer.getWorkbook();
// 응답 헤더 및 Content-Type 설정
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setHeader("Content-Disposition", "attachment; filename=\"" + filename + ".xlsx\"");
// OutputStream 초기화
os = response.getOutputStream();
// 워크북을 OutputStream에 씀
resultWorkbook.write(os);
os.flush(); // 버퍼 비우기
System.out.println("10");
} catch (Exception e) {
logger.error("Error during download: " + e.getMessage());
} finally {
// 자원 정리
try {
if (is != null) is.close();
if (os != null) os.close();
} catch (IOException e) {
logger.error("Error closing streams: " + e.getMessage());
}
}
}
2024-10-07 16:27:09.764 [http-nio-8080-exec-7] ERROR com.sgt.appm.excel.MakeExcel - Error during download: Cannot write a workbook with an uninitialized output stream
удалить зависимости
net.sf.jxls
jxls-core
1.0.6
public void download(HttpServletRequest request, HttpServletResponse response, Map beans, String filename, String templateFile) {
try {
Resources.setCharset(Charset.forName("UTF-8"));
InputStream is = new BufferedInputStream(Resources.getResourceAsStream("excel_templates/" + templateFile));
XLSTransformer transformer = new XLSTransformer();
Workbook resultWorkbook = transformer.transformXLS(is, beans);
response.setHeader("Content-Disposition", "attachment; filename=\"" + filename + ".xlsx\"");
OutputStream os = response.getOutputStream();
resultWorkbook.write(os);
is.close();
resultWorkbook.close();
} catch (Exception e) {
logger.error(e.getMessage());
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79061093/apache-poi-jxls-poi-version-compatible[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия