Pengguna EasyExcel yang terhormat:
Pertama-tama, kami ingin mengucapkan terima kasih yang sebesar-besarnya atas kepercayaan dan dukungan jangka panjang Anda terhadap EasyExcel. Selama perjalanan ini, EasyExcel beruntung bisa menemani banyak pengembang dan perusahaan untuk tumbuh bersama, dan telah menyaksikan penyelesaian tugas pemrosesan data yang tak terhitung jumlahnya secara efisien.
Baru-baru ini, kami memperhatikan bahwa alat dan solusi pemrosesan data yang lebih baik telah muncul di pasar, memberikan pilihan yang lebih kaya kepada pengguna. Untuk memastikan bahwa setiap pengguna dapat menikmati pengalaman dan layanan terbaik, kami telah memutuskan untuk mengambil langkah penting: EasyExcel akan secara bertahap memasuki mode pemeliharaan dan memberikan waktu yang cukup kepada pengguna untuk mengevaluasi dan bermigrasi ke produk lain. Pada saat yang sama, kami juga menyambut baik dan gembira melihat pengalaman penggunaan dan migrasi produk unggulan serupa dibagikan di dalam dan di luar komunitas untuk bersama-sama mendorong perkembangan ekosistem teknologi yang sehat.
Yakinlah bahwa meskipun kami memasuki mode pemeliharaan, kami akan tetap memastikan bahwa fungsi dasar EasyExcel berjalan dengan stabil dan perbaikan bug akan dilakukan, namun kami tidak akan lagi secara aktif menambahkan fungsi baru. Kami percaya bahwa melalui upaya bersama semua orang, setiap kode dan setiap proyek akan terus bersinar di bidangnya masing-masing dan melayani kelompok pengguna yang lebih luas. Sekali lagi terima kasih atas dukungan dan pengertian Anda tentang EasyExcel! Kami berharap di dunia teknologi yang luas ini, kita dapat kembali bergandengan tangan dalam bentuk-bentuk baru untuk menciptakan kecemerlangan bersama.
Saya berharap yang terbaik untuk pekerjaan dan studi Anda di masa depan!
Hormat kami, Tim EasyExcel Alibaba
Kerangka kerja yang lebih terkenal untuk parsing Java dan menghasilkan Excel termasuk Apache poi dan jxl. Namun semuanya memiliki masalah serius yaitu memakan banyak memori. POI memiliki seperangkat API mode SAX yang dapat menyelesaikan beberapa masalah kelebihan memori sampai batas tertentu, namun POI masih memiliki beberapa kekurangan, seperti dekompresi dan penyimpanan. Excel versi 07. Itu dilakukan di memori, dan konsumsi memori masih sangat besar.
easyexcel menulis ulang analisis poi pada Excel versi 07. Excel 3M masih membutuhkan sekitar 100M memori untuk diurai dengan POI sax. Menggunakan easyexcel dapat menguranginya menjadi beberapa MB, dan tidak peduli seberapa besar excelnya, tidak akan ada memori overflow; versi 03 mengandalkan mode saksofon POI yang merangkum konversi model di lapisan atas, membuatnya lebih mudah dan nyaman bagi pengguna.
Tentu saja, ada juga mode kecepatan yang lebih cepat, tetapi penggunaan memori akan sedikit lebih dari 100M.
< dependency >
< groupId >com.alibaba</ groupId >
< artifactId >easyexcel</ artifactId >
< version >4.0.3</ version >
</ dependency >
Open source tidaklah mudah. Jika menurut Anda EasyExcel masih membantu pekerjaan Anda, mohon bantuannya dengan mengklik bintang di pojok kanan atas.
issues
Anda dapat mencoba mencari masalahnya di 2 tautan berikut. Jika tidak ada, Anda dapat mencoba membuat issue
.
issues
issues
Penyelesaian masalah melalui issues
dapat dikaji ulang oleh siswa yang menemui masalah yang sama nantinya, sehingga cara ini sangat dianjurkan.
Terlepas dari github
atau gitee
, seseorang akan secara teratur menjawab pertanyaan Anda. Jika lebih mendesak, Anda dapat bertanya kepada pemimpin grup Aite grup DingTalk setelah mengangkat issue
dan mengirimkan alamat issue
untuk membantu menyelesaikannya.
Perusahaan QQ
tidak mengizinkan Anda menggunakannya, tapi terkadang saya melihatnya, tapi intinya pasti tetap DingTalk.
Bergabunglah dengan grup DingTalk atau QQ untuk mendapatkan bantuan setelah membaca pengumuman.
Saya sangat merekomendasikan grup DingTalk. Perusahaan QQ
tidak mengizinkan Anda menggunakannya. Tentu saja, grup QQ juga akan memiliki netizen yang antusias untuk membantu menyelesaikan masalah tersebut.
Grup QQ1 (penuh): 662022184
Grup QQ2 (penuh): 1097936804
Grup QQ3 (penuh): 453928496
Grup QQ4 (penuh): 496594404
Grup QQ5 (penuh): 451925680
Grup QQ6 (penuh): 784741035
Grup QQ7 (lengkap): 667889383
Grup QQ8: 113968681
Grup DingTalk 1 (penuh): 21960511
Grup DingTalk 2 (lengkap): 32796397
Grup DingTalk 3 (lengkap): 33797247
Grup DingTalk 4 (lengkap): 33491624
Grup DingTalk 5 (lengkap): 32134498
Grup DingTalk 6 (penuh): 34707941
Grup DingTalk 7 (penuh): 35235427
Grup DingTalk 8 (penuh): 44752220
Grup DingTalk 9 (penuh): 11045002277
Grup DingTalk 10 (penuh): 27360019755
Grup DingTalk 11 (penuh): 24330026964
Grup DingTalk 12 (lengkap): 27210038956
Grup DingTalk 13: 83695000992
Ji Pengfei (Yuxiao), Zhuang Jiaju
Alamat kode demo: https://github.com/alibaba/easyexcel/blob/master/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/demo/read/ReadTest.java
Alamat dokumen terperinci: 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 ();
}
Alamat kode demo: https://github.com/alibaba/easyexcel/blob/master/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/demo/write/WriteTest.java
Alamat dokumen terperinci: 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 ());
}
Alamat kode demo: 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" ;
}