使用JavaPOI将巨大的数据2D数组写入excel文件
我有一个大约16000 X 16000的二维数组,我想将这些记录导出到excel文件。目前,我可以在短时间内导出多达1000 X1000个二维阵列。但是当我增加数组的大小时,例如3000 X 3000,我的程序会运行很长时间而不返回任何数据。 我请求帮助将整个二维数组导出到excel文件,并使用POI 我的示例代码用于导出数据,其中一个参数是我的2D数组 公共类导出数据{使用JavaPOI将巨大的数据2D数组写入excel文件,java,excel,multidimensional-array,apache-poi,Java,Excel,Multidimensional Array,Apache Poi,我有一个大约16000 X 16000的二维数组,我想将这些记录导出到excel文件。目前,我可以在短时间内导出多达1000 X1000个二维阵列。但是当我增加数组的大小时,例如3000 X 3000,我的程序会运行很长时间而不返回任何数据。 我请求帮助将整个二维数组导出到excel文件,并使用POI 我的示例代码用于导出数据,其中一个参数是我的2D数组 公共类导出数据{ public static void exportDataToExcel(String fileName, String t
public static void exportDataToExcel(String fileName, String tabName, int[][] data) throws FileNotFoundException, IOException
{
//Create new workbook and tab
Workbook wb = new XSSFWorkbook();
FileOutputStream fileOut = new FileOutputStream(fileName);
Sheet sheet = wb.createSheet(tabName);
//Create 2D Cell Array
Row[] row = new Row[data.length];
Cell[][] cell = new Cell[row.length][];
//Define and Assign Cell Data from Given
for(int i = 0; i < row.length; i ++)
{
row[i] = sheet.createRow(i);
cell[i] = new Cell[data[i].length];
for(int j = 0; j < cell[i].length; j ++)
{
cell[i][j] = row[i].createCell(j);
cell[i][j].setCellValue(data[i][j]);
}
}
//Export Data
wb.write(fileOut);
fileOut.close();
System.out.println("File exported successfully");
}
public static void exportDataToExcel(字符串文件名、字符串tabName、int[][]数据)抛出FileNotFoundException、IOException
{
//创建新工作簿和选项卡
工作簿wb=新XSSFWorkbook();
FileOutputStream fileOut=新的FileOutputStream(文件名);
Sheet Sheet=wb.createSheet(tabName);
//创建二维单元阵列
行[]行=新行[data.length];
单元格[][]单元格=新单元格[行长度][];
//定义和分配给定数据的单元格数据
for(int i=0;i
}我看到您的数据是int[]。所以我相信它的计划是静态数据(没有任何excel公式) 那么,为什么不将数据写入CSV文件呢?这是快速+有限制的行数,如在POI限制65000+记录新表
您可以使用,因为我看到您的数据是int[]。所以我相信它的计划是静态数据(没有任何excel公式) 那么,为什么不将数据写入CSV文件呢?这是快速+有限制的行数,如在POI限制65000+记录新表
您可以使用,因为我看到您的数据是int[]。所以我相信它的计划是静态数据(没有任何excel公式) 那么,为什么不将数据写入CSV文件呢?这是快速+有限制的行数,如在POI限制65000+记录新表
您可以使用,因为我看到您的数据是int[]。所以我相信它的计划是静态数据(没有任何excel公式) 那么,为什么不将数据写入CSV文件呢?这是快速+有限制的行数,如在POI限制65000+记录新表
您可以在这里使用csvwriter打印2D阵列的完整示例
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import au.com.bytecode.opencsv.CSVWriter;
/**
* @author Girish
*
*/
public class CSVWritterExample
{
public static void main(String[] args) throws FileNotFoundException, IOException
{
int[][] data = new int[100][100];
for (int i = 0; i < 100; i++)
{
for (int j = 0; j < 100; j++)
{
data[i][j] = j * i;
}
}
exportDataToExcel("D:/sample.csv", data);
}
public static void exportDataToExcel(String fileName, int[][] data) throws FileNotFoundException, IOException
{
File file = new File(fileName);
if (!file.isFile())
file.createNewFile();
CSVWriter csvWriter = new CSVWriter(new FileWriter(file));
int rowCount = data.length;
for (int i = 0; i < rowCount; i++)
{
int columnCount = data[i].length;
String[] values = new String[columnCount];
for (int j = 0; j < columnCount; j++)
{
values[j] = data[i][j] + "";
}
csvWriter.writeNext(values);
}
csvWriter.flush();
csvWriter.close();
}
}
导入java.io.File;
导入java.io.FileNotFoundException;
导入java.io.FileWriter;
导入java.io.IOException;
导入au.com.bytecode.opencsv.CSVWriter;
/**
*@author Girish
*
*/
公共类CSVwitterExample
{
公共静态void main(字符串[]args)抛出FileNotFoundException、IOException
{
int[][]数据=新int[100][100];
对于(int i=0;i<100;i++)
{
对于(int j=0;j<100;j++)
{
数据[i][j]=j*i;
}
}
exportDataToExcel(“D:/sample.csv”,数据);
}
公共静态void exportDataToExcel(字符串文件名,int[][]数据)引发FileNotFoundException,IOException
{
文件=新文件(文件名);
如果(!file.isFile())
createNewFile();
CSVWriter CSVWriter=新的CSVWriter(新的文件编写器(文件));
int rowCount=data.length;
对于(int i=0;i
这里是使用CSVWritter打印2D阵列的完整示例
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import au.com.bytecode.opencsv.CSVWriter;
/**
* @author Girish
*
*/
public class CSVWritterExample
{
public static void main(String[] args) throws FileNotFoundException, IOException
{
int[][] data = new int[100][100];
for (int i = 0; i < 100; i++)
{
for (int j = 0; j < 100; j++)
{
data[i][j] = j * i;
}
}
exportDataToExcel("D:/sample.csv", data);
}
public static void exportDataToExcel(String fileName, int[][] data) throws FileNotFoundException, IOException
{
File file = new File(fileName);
if (!file.isFile())
file.createNewFile();
CSVWriter csvWriter = new CSVWriter(new FileWriter(file));
int rowCount = data.length;
for (int i = 0; i < rowCount; i++)
{
int columnCount = data[i].length;
String[] values = new String[columnCount];
for (int j = 0; j < columnCount; j++)
{
values[j] = data[i][j] + "";
}
csvWriter.writeNext(values);
}
csvWriter.flush();
csvWriter.close();
}
}
导入java.io.File;
导入java.io.FileNotFoundException;
导入java.io.FileWriter;
导入java.io.IOException;
导入au.com.bytecode.opencsv.CSVWriter;
/**
*@author Girish
*
*/
公共类CSVwitterExample
{
公共静态void main(字符串[]args)抛出FileNotFoundException、IOException
{
int[][]数据=新int[100][100];
对于(int i=0;i<100;i++)
{
对于(int j=0;j<100;j++)
{
数据[i][j]=j*i;
}
}
exportDataToExcel(“D:/sample.csv”,数据);
}
公共静态void exportDataToExcel(字符串文件名,int[][]数据)引发FileNotFoundException,IOException
{
文件=新文件(文件名);
如果(!file.isFile())
createNewFile();
CSVWriter CSVWriter=新的CSVWriter(新的文件编写器(文件));
int rowCount=data.length;
对于(int i=0;i
这里是使用CSVWritter打印2D阵列的完整示例
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import au.com.bytecode.opencsv.CSVWriter;
/**
* @author Girish
*
*/
public class CSVWritterExample
{
public static void main(String[] args) throws FileNotFoundException, IOException
{
int[][] data = new int[100][100];
for (int i = 0; i < 100; i++)
{
for (int j = 0; j < 100; j++)
{
data[i][j] = j * i;
}
}
exportDataToExcel("D:/sample.csv", data);
}
public static void exportDataToExcel(String fileName, int[][] data) throws FileNotFoundException, IOException
{
File file = new File(fileName);
if (!file.isFile())
file.createNewFile();
CSVWriter csvWriter = new CSVWriter(new FileWriter(file));
int rowCount = data.length;
for (int i = 0; i < rowCount; i++)
{
int columnCount = data[i].length;
String[] values = new String[columnCount];
for (int j = 0; j < columnCount; j++)
{
values[j] = data[i][j] + "";
}
csvWriter.writeNext(values);
}
csvWriter.flush();
csvWriter.close();
}
}
导入java.io.File;
导入java.io.FileNotFoundException;
导入java.io.FileWriter;
导入java.io.IOException;
导入au.com.bytecode.opencsv.CSVWriter;
/**
*@author Girish
*
*/
公共类CSVwitterExample
{
公共静态void main(字符串[]args)抛出FileNotFoundException、IOException
{
int[][]数据=新int[100][100];
对于(int i=0;i<100;i++)
{
对于(int j=0;j<100;j++)
{
数据[i][j]=j*i;
}