java如何复制几百万行的Excel数据?自动拆成多个表?
PHP中文网
PHP中文网 2017-04-18 09:27:23
0
2
408

数据表如图1,2,3行所示,把第2行复制3次(d次),第3行复制4次(d次)
然后只粘贴abc列的数据(6,7,8有d行相同的数据,但是不包括d列的数据)
根据上面的数据,把复制之后的数据写入新的表,用java如何操作呀?
有40多个表,每个表中都有200多条数据,数据量很大,所有要用程序写,
还有一个问题就是一个表中复制之后的数据量可能超过Excel20007的最大行数(1048576行),如何自动拆成多个表呢?比如前50个数据在一个表,51-100在第二个表,101-200在第三个表......

注意!!!
复制之后的数据是写到Excel表中,并不是数据库中,java初学。。不太会

PHP中文网
PHP中文网

认证高级PHP讲师

répondre à tous(2)
左手右手慢动作

D'accord, permettez-moi d'abord de régler le problème pour faciliter la lecture...
Le tableau Excel a un total de quatre colonnes a, b, c et d. Les colonnes a, b et c sont. les données stockées, et la colonne d est la représentation. Le nombre de fois que cette ligne de données doit être copiée. La première ligne est l'en-tête.

De plus, le tableau dont vous parlez est-il une table de base de données ou une table Excel ?


Mise à jour

Vous pouvez jeter un œil à Apache POI cette bibliothèque d'outils, spécialement utilisée pour exploiter les documents bureautiques.

S'il ne s'agit que d'un usage unique, alors il n'est pas nécessaire de trop réfléchir. Utilisez POI pour lire le document Excel dans la mémoire, puis copiez les données dans le programme, puis partitionnez les données copiées. et écrivez-le dans le tableau Excel.

Si vous connaissez un peu js, je vous suggère d'utiliser node-xlsx (selon nodejs) pour répondre à cette exigence, ce qui est plus rapide que d'écrire du java. Le nombre de lignes de code doit être inférieur à 50 lignes.

Mise à jour 2

Je ne peux écrire qu'un morceau de code nodejs pour vous, car je ne veux vraiment pas l'écrire en 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');

Comment utiliser

  1. Installer nodejs ;

  2. Ouvrez la fenêtre cmd et exécutez npm --registry https://registry.npm.taobao.org install -g nrm;

  3. Courirnrm use taobao;

  4. Enregistrez le code ci-dessus sous process.js et placez le fichier dans le même répertoire que votre fichier source Excel

  5. Entrez le répertoire dans la fenêtre cmd et exécutez npm i node-xlsx;

  6. Exécuter node process.js source.xlsx dest.xlsx (le deuxième paramètre est le nom de votre fichier source Excel, et le troisième paramètre est le nom du fichier Excel que vous souhaitez enregistrer

  7. ) ;
巴扎黑

Outil : Java POI exploite Excel, analyse chaque ligne et colonne, selon vos règles métier, car une feuille ne peut pas être placée, placez plusieurs stockages et chaque ligne de données est copiée et placée dans une nouvelle feuille dans Excel. pour que ça ne déborde pas

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal