use*_*609 3 java excel apache-poi
我的目标是读取excel文件uisng POI并打印其中的值.如果值为5,则我的输出必须为5.但它返回5.0.以下是我尝试过的代码.
FileInputStream fileInputStream = null;
XSSFSheet xssfResultSheet = null;
String filePath = "C:\\MyXcel.xlsx";
fileInputStream = new FileInputStream(new File(filePath));
XSSFWorkbook workbook = null;
workbook = new XSSFWorkbook(fileInputStream);
xssfResultSheet = workbook.getSheet("Sheet1");
int iRowCount = xssfResultSheet.getLastRowNum();
for (int i = 1; i <= iRowCount; i++) {
Row resultRow = xssfResultSheet.getRow(i);
System.out.println(resultRow.getCell(0));
}
Run Code Online (Sandbox Code Playgroud)
我的Excel的值为1,2,3,但我的输出为1.0,2.0,3.0.相反,我的输出也应该是1,2,3
更改:
System.out.println(resultRow.getCell(0));
Run Code Online (Sandbox Code Playgroud)
至:
System.out.println(new DataFormatter().formatCellValue(resultRow.getCell(0)));
Run Code Online (Sandbox Code Playgroud)
说明:
apache-poi提供DataFormatter类作为实用程序,以利用excel上显示的内容格式.您也可以选择自定义格式,一个简单的例子就是(单元格是XSSFCell对象的引用):
Excel工作表看起来像:

码:
System.out.println(new DataFormatter().formatCellValue(cell));
Run Code Online (Sandbox Code Playgroud)
以上行将打印:
50%
$ 1,200
12/21/14
9886605446
Run Code Online (Sandbox Code Playgroud)
而您的正常印刷品会以不同的方式解释它:
0.5
1200.0
21-Dec-2014
9.886605446E9
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10955 次 |
| 最近记录: |