java几万行数据_java如何复制几百万行的Excel数据?自动拆成多个表?

5879a2132efc77701bf7982ee96acebd.png

一只甜甜圈

好吧,我先理顺一下问题,方便阅读……excel表总共有a,b,c,d四列,其中a,b,c列是存储的数据,d列是表示该行数据要复制的次数,第一行是表头。还有,你说的表是数据库的表还是excel表?更新可以看一下Apache POI这个工具库,专门操作office文档用的。如果只是一次性使用的话,那就不用考虑那么多了,用POI读取excel文档到内存,然后在程序里实现数据复制,再把复制后的数据分区后写入excel表。如果你会一点js的话,我建议你用node-xlsx(依赖nodejs)去实现这个需求,比写java要快。代码行数应该在50行以内。更新2我只能写一段nodejs代码给你,因为java的实在不想写……'use strict'const fs = require('fs');const xlsx = require('node-xlsx');const sheet1 = xlsx.parse(process.argv[2])[0].data;const savedFile = process.argv[3];let result = [];for(let i = 1, length = sheet1.length;i < length;i++) {  let row = sheet1[i];  let loopTimes = row.splice(3);// 将d列数据取出并移除  for(let j = 0;j < loopTimes;j++) {    result.push(row);  }}let file = xlsx.build([{name:'sheet1', data:result}]);fs.writeFileSync(savedFile, file, 'binary');使用方法安装nodejs;打开cmd窗口,运行npm --registry https://registry.npm.taobao.org install -g nrm;运行nrm use taobao;将以上代码保存为process.js,并将该文件和你的excel源文件放在同一目录下;在cmd窗口里进入该目录,运行npm i node-xlsx;运行node process.js source.xlsx dest.xlsx(其中第2个参数是你的excel源文件名称,第三个参数是你要保存的excel文件名称);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值