Уважаемые пользователи EasyExcel:
Прежде всего, мы хотели бы выразить нашу глубочайшую благодарность за ваше многолетнее доверие и поддержку EasyExcel. На этом пути EasyExcel посчастливилось сопровождать множество разработчиков и компаний в их совместном развитии и стать свидетелем эффективного выполнения бесчисленных задач по обработке данных.
Недавно мы заметили, что на рынке появились более совершенные инструменты и решения для обработки данных, предоставляющие пользователям более широкий выбор. Чтобы гарантировать, что каждый пользователь сможет насладиться лучшим опытом и обслуживанием, мы решили принять важную меру: EasyExcel постепенно перейдет в режим обслуживания и предоставит пользователям достаточно времени для оценки и перехода на другие продукты. В то же время мы также приветствуем и рады видеть опыт использования и миграции аналогичных превосходных продуктов, распространяемый внутри и за пределами сообщества для совместного содействия здоровому развитию технологической экосистемы.
Будьте уверены, что даже если мы перейдем в режим обслуживания, мы все равно обеспечим стабильную работу основных функций EasyExcel и исправим ошибки, но мы больше не будем активно добавлять новые функции. Мы верим, что благодаря совместным усилиям каждый фрагмент кода и каждый проект будут продолжать блистать в своих областях и служить более широкой группе пользователей. Еще раз спасибо за вашу поддержку и понимание EasyExcel! Мы надеемся, что в огромном мире технологий мы сможем снова объединиться в новых формах, чтобы создать великолепие.
Желаю Вам успехов в дальнейшей работе и учебе!
С уважением, команда Alibaba EasyExcel.
Наиболее известные платформы для анализа Java и создания Excel включают Apache poi и jxl. Но у всех них есть серьезная проблема: они потребляют много памяти. У POI есть набор API-интерфейсов режима SAX, которые могут в определенной степени решить некоторые проблемы с переполнением памяти, но у POI все еще есть некоторые недостатки, такие как распаковка и хранение данных. Версия Excel 07. Это делается в памяти, и потребление памяти по-прежнему очень велико.
Easyexcel переписал анализ poi версии Excel 07. Excel 3M по-прежнему требует около 100 МБ памяти для анализа с помощью POI sax. Использование easyexcel может уменьшить его до нескольких МБ, и независимо от того, насколько велик Excel, его не будет. переполнение памяти; версия 03 использует режим саксофона POI, инкапсулирующий преобразование модели на верхнем уровне, что делает его проще и удобнее для пользователей.
Конечно, есть и более быстрый режим, но использование памяти будет чуть больше 100М.
< dependency >
< groupId >com.alibaba</ groupId >
< artifactId >easyexcel</ artifactId >
< version >4.0.3</ version >
</ dependency >
Открытый исходный код — это непросто. Если вы считаете, что EasyExcel по-прежнему полезен в вашей работе, пожалуйста, помогите, щелкнув звездочку в правом верхнем углу. Ваша поддержка — самая большая мотивация сделать EasyExcel лучше.
issues
Вы можете попытаться найти проблему по следующим двум ссылкам. Если она не существует, вы можете попытаться создать issue
.
issues
issues
Решение проблем с помощью issues
может быть рассмотрено учащимися, которые столкнутся с той же проблемой позже, поэтому этот метод настоятельно рекомендуется.
Независимо от github
или gitee
, кто-то будет регулярно отвечать на ваши вопросы. Если это более срочно, вы можете обратиться к руководителю группы DingTalk Aite после поднятия issue
и отправить адрес issue
, чтобы помочь ее решить.
Компания QQ
не даёт его использовать, но я иногда смотрю, но ядро точно всё равно DingTalk.
Присоединяйтесь к группам DingTalk или QQ, чтобы получить помощь после прочтения объявления.
Я настоятельно рекомендую группу DingTalk, но компания QQ
не позволяет вам ее использовать. Конечно, в группе QQ также есть энтузиасты сети, которые помогут решить проблему.
Группа QQ1 (полная): 662022184
Группа QQ2 (полная): 1097936804
Группа QQ3 (полная): 453928496
Группа QQ4 (полная): 496594404
Группа QQ5 (полная): 451925680
Группа QQ6 (полная): 784741035
Группа QQ7 (полная): 667889383
Группа QQ8: 113968681
DingTalk 1 группа (полная): 21960511
Группа DingTalk 2 (полная): 32796397
Группа DingTalk 3 (полная): 33797247
Группа DingTalk 4 (полная): 33491624
Группа DingTalk 5 (полная): 32134498
Группа DingTalk 6 (полная): 34707941
Группа DingTalk 7 (полная): 35235427
Группа DingTalk 8 (полная): 44752220
Группа DingTalk 9 (полная): 11045002277
Группа DingTalk 10 (полная): 27360019755
Группа DingTalk 11 (полная): 24330026964
Группа DingTalk 12 (полная): 27210038956
Группа DingTalk 13: 83695000992
Цзи Пэнфэй (Юсяо), Чжуан Цзяцзюй
Адрес демо-кода: https://github.com/alibaba/easyexcel/blob/master/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/demo/read/ReadTest.java
Подробный адрес документа: https://easyexcel.opensource.alibaba.com/docs/current/quickstart/read.
/**
* 最简单的读
* <p>1. 创建excel对应的实体对象 参照{@link DemoData}
* <p>2. 由于默认一行行的读取excel,所以需要创建excel一行一行的回调监听器,参照{@link DemoDataListener}
* <p>3. 直接读即可
*/
@ Test
public void simpleRead () {
String fileName = TestFileUtil . getPath () + "demo" + File . separator + "demo.xlsx" ;
// 这里 需要指定读用哪个class去读,然后读取第一个sheet 文件流会自动关闭
EasyExcel . read ( fileName , DemoData . class , new DemoDataListener ()). sheet (). doRead ();
}
Адрес демо-кода: https://github.com/alibaba/easyexcel/blob/master/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/demo/write/WriteTest.java
Подробный адрес документа: https://easyexcel.opensource.alibaba.com/docs/current/quickstart/write.
/**
* 最简单的写
* <p>1. 创建excel对应的实体对象 参照{@link com.alibaba.easyexcel.test.demo.write.DemoData}
* <p>2. 直接写即可
*/
@ Test
public void simpleWrite () {
String fileName = TestFileUtil . getPath ()+ "write" + System . currentTimeMillis ()+ ".xlsx" ;
// 这里 需要指定写用哪个class去读,然后写到第一个sheet,名字为模板 然后文件流会自动关闭
// 如果这里想使用03 则 传入excelType参数即可
EasyExcel . write ( fileName , DemoData . class ). sheet ( "模板" ). doWrite ( data ());
}
Адрес демо-кода: https://github.com/alibaba/easyexcel/blob/master/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/demo/web/WebTest.java
/**
* 文件下载(失败了会返回一个有部分数据的Excel)
* <p>
* 1. 创建excel对应的实体对象 参照{@link DownloadData}
* <p>
* 2. 设置返回的 参数
* <p>
* 3. 直接写,这里注意,finish的时候会自动关闭OutputStream,当然你外面再关闭流问题不大
*/
@ GetMapping ( "download" )
public void download ( HttpServletResponse response ) throws IOException {
// 这里注意 有同学反应使用swagger 会导致各种问题,请直接用浏览器或者用postman
response . setContentType ( "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" );
response . setCharacterEncoding ( "utf-8" );
// 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系
String fileName = URLEncoder . encode ( "测试" , "UTF-8" ). replaceAll ( " \ +" , "%20" );
response . setHeader ( "Content-disposition" , "attachment;filename*=utf-8''" + fileName + ".xlsx" );
EasyExcel . write ( response . getOutputStream (), DownloadData . class ). sheet ( "模板" ). doWrite ( data ());
}
/**
* 文件上传
* <p>1. 创建excel对应的实体对象 参照{@link UploadData}
* <p>2. 由于默认一行行的读取excel,所以需要创建excel一行一行的回调监听器,参照{@link UploadDataListener}
* <p>3. 直接读即可
*/
@ PostMapping ( "upload" )
@ ResponseBody
public String upload ( MultipartFile file ) throws IOException {
EasyExcel . read ( file . getInputStream (), UploadData . class , new UploadDataListener ( uploadDAO )). sheet (). doRead ();
return "success" ;
}