解决方案 »

  1.   

    现在已经获取list数据,然后就算是不知道该怎么分割,生成多个excel.求解.
      

  2.   

    循环,一条一条的写入, 当到第501条的时候新建excel 然后到1001的时候在新建以此类推 。  理论上是可行的。
      

  3.   

    POI 不是有创建excel 的方法啊。直接调用。
      

  4.   

    我知道啊,关键现在是我不知道该怎么分割,具体代码卡壳了.
    例如我想把1-5000这个范围中的数据分割成每500条数据生成一个excel.
      

  5.   

    我知道啊,关键现在是我不知道该怎么分割,具体代码卡壳了.
    例如我想把1-5000这个范围中的数据分割成每500条数据生成一个excel.

    需求是这样的,下载的excel最多能65536行,现在做个一个功能从编号A到编号B里面数据生成一个excel.
    但是客户感觉这样数据量有点多,想把这一个范围里面的数据按照每500条,分割成一个excel
      

  6.   

     
                HSSFWorkbook workbook = new HSSFWorkbook();  
           
                HSSFSheet sheet = workbook.createSheet();  
    通过总条数然后判断有几个sheet ,然后循环写到对应 的excel
      

  7.   

    不是要有多个sheet,而是每500条数据生成一个excel
      

  8.   

    那就生成excel 的时候生成多个。
      

  9.   

    你那是不是循环item 从 501 开始 写到新的excel里面。
      

  10.   

    对的,list从501开始循环在写到另外一个excel里面
      

  11.   

    都拿到list了还不能根据条数创建表?
    HSSFWorkbook workbook;
    HSSFSheet sheet;
    for(int i=0;i<list.size;i++){
        if(i%500==0){
             workbook = new HSSFWorkbook();  
             sheet = workbook.createSheet();  
        }
        //todo 向里面放list的数据
    }
      

  12.   

    具体循环放怎么弄啊,老是一下把所有的数据都放在一个excel里面了
      

  13.   

    具体循环放怎么弄啊,老是一下把所有的数据都放在一个excel里面了
    能否远程帮我一下啊,是在是没发解决
      

  14.   

    具体循环放怎么弄啊,老是一下把所有的数据都放在一个excel里面了
    能否远程帮我一下啊,是在是没发解决来加个Q
      

  15.   

    /*
     * To change this license header, choose License Headers in Project Properties.
     * To change this template file, choose Tools | Templates
     * and open the template in the editor.
     */
    package com.excel;import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import org.apache.poi.hssf.usermodel.HSSFSheet;
    import org.apache.poi.hssf.usermodel.HSSFWorkbook;
    import org.apache.poi.ss.usermodel.Cell;
    import org.apache.poi.ss.usermodel.Row;/**
     *
     * @author lugl
     */
    public class Test {    public static void main(String[] args) {
            List<String> strings = new ArrayList<>();
            for (int i = 0; i < 30; i++) {
                strings.add("test" + i);
            }
            for (int i = 0; i < strings.size(); i++) {
                if (i % 3 == 0) {
                    List<String> list = new ArrayList<>();
                    int fromIndex = i / 3 * 3;
                    int toIndex = (i / 3 + 1) * 3;
                    if (toIndex > strings.size()) {
                        toIndex = strings.size();
                    }
                    list = strings.subList(fromIndex, toIndex);
                    createEx(list, "sheet" + i);
                }
            }
        }    public static void createEx(List<String> list, String sheetName) {
            FileOutputStream os = null;
            HSSFWorkbook wb = new HSSFWorkbook();
            HSSFSheet sheet = wb.createSheet(sheetName);
            for (int i = 0; i < list.size(); i++) {
                String string = list.get(i);
                Row row = sheet.createRow(i);
                Cell cell = row.createCell(0);
                cell.setCellValue(string);
            }
            try {
                os = new FileOutputStream("D:\\" + sheetName + ".xls");
                wb.write(os);
                os.close();
            } catch (FileNotFoundException ex) {
                Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);
            } catch (IOException ex) {
                Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }
      

  16.   

    随便写了一个,你导入poi的包之后就可以直接运行的,拿去参考一下吧
      

  17.   

    具体循环放怎么弄啊,老是一下把所有的数据都放在一个excel里面了
    能否远程帮我一下啊,是在是没发解决来加个Q
    772316481
    非常感谢啊
      

  18.   

    具体循环放怎么弄啊,老是一下把所有的数据都放在一个excel里面了
    能否远程帮我一下啊,是在是没发解决来加个Q
    772316481
    非常感谢啊

    我用了你写的那个代码,没有数据啊
      

  19.   

    具体循环放怎么弄啊,老是一下把所有的数据都放在一个excel里面了
    能否远程帮我一下啊,是在是没发解决来加个Q
    772316481
    非常感谢啊

    我用了你写的那个代码,没有数据啊
    帮我远程看一下吧,先谢啦
      

  20.   

    如何获取存储501或者1001这个值呢for(int i=0;i<list.size();i++){
      if(i>500){
        ...
    }
    }