gpt4 book ai didi

java - 正确读取 Excel 行

转载 作者:太空宇宙 更新时间:2023-11-04 12:53:20 27 4
gpt4 key购买 nike

我正在尝试从 .xlsx 文件读取多行数据。控制台中的输出将所有值依次显示。

问题是它们没有像在源 Excel 工作表中显示那样以表格的方式显示。

我的 Excel 文件是 .xlsx,所以我使用 XSSF POI api 进行编码。 它包含两列(名称和分数),总共 5 行。

控制台输出如下所示

Name
Score
TOM
1
DICK
2
HARRY
3
JERRY
4

我希望它像这样打印:

Name            Score
TOM 1
DICK 2
HARRY 3
JERRY 4

代码:

package gmailExcel;

import java.io.FileInputStream;
import java.io.IOException;

import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class ReadXl {

public static void main(String[] args) throws IOException {

// Locate xl file.
FileInputStream fis = new FileInputStream
("File location on local host");

// Load file, workbook and sheet.
XSSFWorkbook wb = new XSSFWorkbook(fis);
XSSFSheet ws = wb.getSheet("sheetName");


// Declare row and cell variable.
XSSFRow row;
XSSFCell cells;

// Get row and column count.
int rowCount = ws.getLastRowNum();
int colCount = ws.getRow(0).getLastCellNum();

// Iterate over rows and columns.
for(int r = 0; r < rowCount; r++) {
row = ws.getRow(r);

for(int c = 0; c < colCount; c++) {
cells = row.getCell(c);



// Output the values from Excel sheet.
String cellval = cells.toString();
System.out.println(cellval);
}

}

}
}

最佳答案

问题出在您的嵌套 for 循环中。在每次迭代中,您都会打印该值,并在其后添加换行符。您想要做的是仅在打印了我认为的第二列中的单元格后才打印换行符。

这可以通过在嵌套循环外部打印换行符来完成,如下所示:

for (int r = 0; r < rowCount; r++) {
for (int c = 0; c < colCount; c++) {
cells = row.getCell(c);
String cellval = cells.toString();
System.out.print(" | " + cellval); //New line IS NOT printed
}
System.out.println(" |"); //New line IS printed
}

关于java - 正确读取 Excel 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35615941/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com