Как создать несколько файлов excel и записать в них данные с помощью Java &apachi POI framework
Мне нужна java программа для следующего запроса,
скажем, n=200000;
java-программа должна создать 15 столбцов в каждой строке с данными ячейки = номером строки
Бывший: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 .... Вот так.
как только 50k строк завершены, excel должен быть закрыт, и новый файл excel должен быть создан, и данные должны быть продолжены с 50001 и так далее, пока он не достигнет предела n.
Что я уже пробовал:
пробовал делать но получать Java из кучи исключений памяти,
package excelCheckings; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.util.ArrayList; import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.eventusermodel.XSSFSheetXMLHandler; import org.apache.poi.xssf.usermodel.*; public class MultiWorkbooks { @SuppressWarnings("null") public static void main(String[] args) throws IOException { int sc=1; Row r; Cell c; int i; int n=100000;//total result rows int rc=50000;// rows per book int cou=1,j=0,data=1; int doc=0; FileOutputStream outputStream = null; XSSFWorkbook wbo = new XSSFWorkbook(); XSSFSheet s = null ; for(i=0;i<=n;i++) { if(i%rc == 0){ s=wbo.createSheet(); } if(i!=0 && i%rc == 0) { outputStream = new FileOutputStream("C:/Users/1239320/Desktop/Multi Sheet"+doc+ ".xlsx"); wbo.write(outputStream); outputStream.flush(); wbo.close(); System.gc(); doc++; cou=1; } r = s.createRow(cou); for( j=0;j<15;j++) { c = r.createCell(j); c.setCellValue(data); } System.out.println(data); data++; cou++; } System.out.println("Completed"); } }
Richard MacCutchan
Стараться.
Sri Harsha Nitesh
Это ошибка памяти кучи java, как управлять пространством ?
Patrice T
Покажи свой код !
Sri Harsha Nitesh
Код перешел к вопросу ОП.
Richard MacCutchan
Вы повторяете свой основной цикл 100 000 раз, так что это должно дать ключ к пониманию того, почему вы используете всю кучу.