[英]Reading 2D double array in Excel Using Apache POI
I am trying to make use of Apache POI to read an excel file and convert it to a 2-dimensional object array.我正在尝试利用 Apache POI 读取 excel 文件并将其转换为二维 object 数组。 Attached is the code section.附件是代码部分。
Workbook workbook = new XSSFWorkbook(inputStream);
Sheet firstSheet = workbook.getSheetAt(1);
int numRows = 3;
int cols = 5;
double[][] excelData = new double[numRows][cols];
for (int i = 1; i < numRows; i++) {
Row row = firstSheet.getRow(i);
if (row != null) {
for (int j = 1; j < cols; j++) {
Cell cell = row.getCell(j);
if (cell != null) {
try {
excelData[i][j] = cell.getNumericCellValue();
} catch (IllegalStateException e) {
System.out.println("Cell data is not a double");
}
}
}
}
}
workbook.close();
inputStream.close();
return excelData;
}
enter image description here This is my excel sheet and I want to "just" read the blue part of it as a 2d array, but after running the code the first row and column all are zero and I don't want it, appreciate your help on how can quickly pull out all the zeros enter image description here . enter image description here这是我的 excel 工作表,我想“只是”将它的蓝色部分作为二维数组读取,但在运行代码后第一行和第一列都是零,我不想要它,谢谢你有关如何快速提取所有零的帮助,请在此处输入图像描述。
You need to change index in the 1st loop to 0 (first field in excel file) but in row you must provide index + 1 bc you need to read from the 2nd field.您需要将第一个循环中的索引更改为 0(excel 文件中的第一个字段)但是在行中您必须提供索引 + 1 bc,您需要从第二个字段中读取。 Same analogy for 2nd loop and cell field第二个循环和单元格字段的类比相同
Workbook workbook = new XSSFWorkbook(new File("d:\\book1.xlsx"));
Sheet firstSheet = workbook.getSheetAt(1);
int numRows = 3;
int cols = 5;
double[][] excelData = new double[numRows][cols];
for (int i = 0; i < numRows; i++) {
Row row = firstSheet.getRow(i + 1);
if (row != null) {
for (int j = 0; j < cols; j++) {
Cell cell = row.getCell(j + 1);
if (cell != null) {
try {
if (cell.getCellType().equals(CellType.NUMERIC)) {
excelData[i][j] = Double.valueOf(cell.getNumericCellValue());
}
} catch (IllegalStateException e) {
System.out.println("Cell data is not a double");
}
}
}
}
}
workbook.close();
Returned result for it:它的返回结果:
0.041256 0.033079 -0.01138 -0.02138 -0.01138
0.041256 0.033079 -0.01138 -0.01138 -0.01138
0.020628 0.01654 -0.00569 -0.10569 -0.00569
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.