![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
用java解析EXCEL公式的问题
有没有第三方的lib可以解析公式提取出元素名,比如输入SUM(A1:A2)可以输出A1和A2.输入A1+A2+A3可以输出A1,A2,A3.不知道poi有没有这个功能,有...
有没有第三方的lib可以解析公式提取出元素名, 比如输入SUM(A1:A2) 可以输出A1和A2. 输入A1+A2+A3可以输出A1,A2,A3. 不知道poi有没有这个功能, 有的话请写个例子.
展开
4个回答
展开全部
获取公式值可用 HSSFFormulaEvaluator e= New HSSFFormularEvaluator(workbook);
e.evaluate(cell).getNumberiValue.
如果不是你要的结果。还有其它很多方法。
比如这样一个比较笨的方法。
double value = cell.getNumericCellValue();
value = value * 24 *3600;
int h = (int) (value /3600)
int m= (int )((value - h* 3600) /60);
int s = (int)(value-h*3600 -m* 60) ;
String result = h + ":"+m + "s" ;
得到结果。
e.evaluate(cell).getNumberiValue.
如果不是你要的结果。还有其它很多方法。
比如这样一个比较笨的方法。
double value = cell.getNumericCellValue();
value = value * 24 *3600;
int h = (int) (value /3600)
int m= (int )((value - h* 3600) /60);
int s = (int)(value-h*3600 -m* 60) ;
String result = h + ":"+m + "s" ;
得到结果。
展开全部
while (cells.hasNext()) {
String valueString="";
HSSFCell cell = (HSSFCell) cells.next();
switch (cell.getCellType()) { //获取数据类型
case HSSFCell.CELL_TYPE_NUMERIC: // 数字
valueString=String.valueOf((int)cell.getNumericCellValue());
break;
case HSSFCell.CELL_TYPE_STRING: // 字符串
valueString=String.valueOf(cell.getStringCellValue());
break;
case HSSFCell.CELL_TYPE_BOOLEAN: // Boolean
valueString=String.valueOf(cell.getBooleanCellValue());
break;
case HSSFCell.CELL_TYPE_FORMULA: // 公式
valueString=String.valueOf(cell.getCellFormula());
break;
case HSSFCell.CELL_TYPE_ERROR: // 故障
System.out.println(" ");
break;
}
String valueString="";
HSSFCell cell = (HSSFCell) cells.next();
switch (cell.getCellType()) { //获取数据类型
case HSSFCell.CELL_TYPE_NUMERIC: // 数字
valueString=String.valueOf((int)cell.getNumericCellValue());
break;
case HSSFCell.CELL_TYPE_STRING: // 字符串
valueString=String.valueOf(cell.getStringCellValue());
break;
case HSSFCell.CELL_TYPE_BOOLEAN: // Boolean
valueString=String.valueOf(cell.getBooleanCellValue());
break;
case HSSFCell.CELL_TYPE_FORMULA: // 公式
valueString=String.valueOf(cell.getCellFormula());
break;
case HSSFCell.CELL_TYPE_ERROR: // 故障
System.out.println(" ");
break;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |