我正在尝试使用Apache Poi(v3.11 / XSSFWorkbook)读取excel文件。我正在阅读特定的表格{e.x. sheet(0)}由来自同一文件的大约15张不同的宏组成。问题是我能够读取非格式化的字符串数据但无法读取格式化的数据,如货币或%。
无论如何,我无法控制excel工作表。我将从网络共享路径中读取文件。
XSSFWorkbook myWorkBook = null
XSSFSheet mySheet = null;
Row rowHeader = null;
Row rowData = null;
FileInputStream fis = new FileInputStream(
new File(
"inputfile.xlsx"));
myWorkBook = new XSSFWorkbook(fis);
mySheet = myWorkBook.getSheetAt(0);
rowHeader = mySheet.getRow(0);
rowData = mySheet.getRow(1);
for (Cell s : rowHeader) {
System.out.print("| "+s.getStringCellValue());
System.out.println(" -->"+getCellValue(myWorkBook,rowData.getCell(s.getColumnIndex())));
}
myWorkBook.close();
}
// $#,##0.00
private static String getCellValue(XSSFWorkbook wb, Cell cell)
{
XSSFCell x = (XSSFCell)cell;
return x.getRawValue();
}
}
我有一张excel表,如下所示
Name Amount Rate
Name1 $1,500 75%
如果我使用此代码阅读上述表格
名称 - > NAME1
金额 - > 1500(注意缺少的$和,)
费率 - > 74.99999998(编号未提供且缺少%符号)
答案 0 :(得分:1)
谢谢@Gagravarr
以下代码解决了问题
private static String getCellValue(XSSFWorkbook wb, Cell cell)
{
DataFormatter formatter = new DataFormatter();
String formattedCellValue = formatter.formatCellValue(cell);
return formattedCellValue;
}
答案 1 :(得分:0)