【发布时间】:2016-02-25 00:24:33
【问题描述】:
我正在尝试从 .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);
}
}
}
}
【问题讨论】:
-
在您的问题中,所需的输出与控制台输出相同。是不是打错字了?
-
不是错字,这不是我输入问题的方式,所以就这样吧。当前控制台输出:名称分数 TOM 1 DICK 2 HARRY 3 JERRY 4
-
不是错字,这不是我输入问题的方式,所以就这样吧。当前的控制台输出以很长的方式一个接一个地打印所有值,我希望它以类似表格的方式打印。我会尽量附上截图。
-
你的意思是他们是在每一行打印一个还是在同一行打印一个?
-
我想我可能会给你一个答案。
标签: java automation xssf