찾다

 >  Q&A  >  본문

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

数据表如图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中文网2810일 전409

모든 응답(2)나는 대답할 것이다

  • ringa_lee

    ringa_lee2017-04-18 09:29:23

    알겠습니다. 읽기 쉽게 문제를 먼저 정리하겠습니다...
    엑셀 표에는 a, b, c, d 총 4개의 열이 있습니다. 저장된 데이터이고 열 d는 이 데이터 행이 복사되는 횟수입니다.

    그리고 말씀하시는 테이블은 데이터베이스 테이블인가요, 아니면 엑셀 테이블인가요?


    업데이트

    오피스 문서 작업에 특별히 사용되는 도구 라이브러리 Apache POI를 살펴보실 수 있습니다.

    일회용이라면 크게 생각할 필요가 없습니다. POI을 이용해 엑셀 문서를 메모리에 읽어온 후 프로그램에 데이터를 복사한 후 복사한 데이터를 분할합니다. 그리고 엑셀표에 적어보세요.

    js에 대해 조금 알고 계시다면 node-xlsx(nodejs에 따라 다름)를 사용하여 이 요구 사항을 달성하는 것이 좋습니다. 이는 java를 작성하는 것보다 빠릅니다. 코드 줄 수는 50줄 이내여야 합니다.

    업데이트 2

    저는 Java를 작성하고 싶지 않기 때문에 nodejs 코드 일부만 작성할 수 있습니다...

    으아악

    사용방법

    1. nodejs를 설치하세요.

    2. cmd 창을 열고 npm --registry https://registry.npm.taobao.org install -g nrm;

    3. 을 실행하세요.
    4. 달려nrm use taobao;

    5. 위 코드를 process.js로 저장하고 해당 파일을 Excel 소스 파일과 동일한 디렉터리에 넣습니다.

    6. cmd 창에 해당 디렉터리를 입력하고 npm i node-xlsx;

    7. 을 실행하세요.
    8. node process.js source.xlsx dest.xlsx 실행(두 번째 매개변수는 Excel 소스 파일 이름이고, 세 번째 매개변수는 저장하려는 Excel 파일 이름입니다.)

      회신하다
      0
  • 巴扎黑

    巴扎黑2017-04-18 09:29:23

    도구: Java POI는 Excel을 작동하고 비즈니스 규칙에 따라 각 행과 열을 스캔합니다. 한 시트를 배치할 수 없기 때문에 여러 저장소를 배치하고 각 데이터 행을 복사하여 Excel의 새 시트에 배치합니다. 넘치지 않게

    회신하다
    0
  • 취소회신하다