Java 批量写入 Excel 文件的方法?-灵析社区

桃子爱吃玉米

怎么往Excel文件里面批量写入数据? 语言是JAVA,请教一下各位有相关的实现方案吗?

阅读量:26

点赞量:0

问AI
向Excel写入数据,主要取决于两个点,一个是数据的形式和来源,另一个是如何写入数据。如果数据源于CSV,那么可以直接把CSV文件考虑转换为Excel文件。如果数据源于数据库,JSON,XML等,那可能经过数据读取,反序列化,可以拿到一组数据的对象。可以考虑使用循环一条一条写入。 另一方面,写入Excel文件,可以使用一些Excel组件库,例如GcExcel,可以直接导入CSV,导出为Excel。同时,GcExcel也支持把二维数组直接写入到Excel工作表区域中。 如下代码所示,可以直接把数据设置到A1:F7的区域中。 "给区域设置值 - GcExcel 中文文档Java版 | 服务端高性能表格组件 - 葡萄城" (https://link.segmentfault.com/?enc=rq3fBT7UCsCjECOUw%2BowmA%3D%3D.vPf4yObNWZNMC5rlLRUxPtSAIW%2FlJndGAbzWAUfaQuliOsnzAgTZa%2FY9VZWQ2dZkwB6EBLQ1e46glT%2BRSo%2BinVCKBVfK8YVEe6mzHAV5Lrvay26jspAF%2BqJFhfwvtmqHauEZfca%2FpZF6u4e1es7npyt9JEDRUE%2B8ql%2Befdii83pbmpd%2B9EB2XBPYKaYowyON) worksheet.getRange("A:F").setColumnWidth(15); Object data = new Object[][] { { "Name", "City", "Birthday", "Eye color", "Weight", "Height" }, { "Richard", "New York", new GregorianCalendar(1968, 5, 8), "Blue", 67, 165 }, { "Nia", "New York", new GregorianCalendar(1972, 6, 3), "Brown", 62, 134 }, { "Jared", "New York", new GregorianCalendar(1964, 2, 2), "Hazel", 72, 180 }, { "Natalie", "Washington", new GregorianCalendar(1972, 7, 8), "Blue", 66, 163 }, { "Damon", "Washington", new GregorianCalendar(1986, 1, 2), "Hazel", 76, 176 }, { "Angela", "Washington", new GregorianCalendar(1993, 1, 15), "Brown", 68, 145 } }; // set two-dimension array value to range A1:F7 worksheet.getRange("A1:F7").setValue(data);
,
可以用alibaba的EsayExcel 性能比较好大数据量不会出现outOfMemory 我之前用了一下100w条数据大概7-8秒 用的学校机房辣鸡电脑测的 如果要更快可以搞10个sheet,然后搞10个线程并发分别往这10个sheet里面写,这个我没试过只有这么一个思路