蓗乐 2022-02-05 12:28 采纳率: 66.7%
浏览 80
已结题

java在用poi 运行公式取值时遇到问题

先上代码

public class Test3 {

    public static void main(String[] args) throws Exception {
        
        FileInputStream inps = new FileInputStream("C:\\Users\\Administrator\\IdeaProjects\\语音合成\\原始数据.xls");
        HSSFWorkbook wb = new HSSFWorkbook(inps);

        Sheet sheet = wb.getSheet("原始数据表");
        Row row = sheet.createRow(0);//创建行
        Cell cell = row.createCell(0);//创建一个单元格, 第一列
        cell.setCellValue(AI.data);  //给单元格设置值
        
        row.createCell(6).setCellValue(true);
        HSSFCell cell6 = (HSSFCell) row.createCell(6);
        cell6.setCellFormula("VLOOKUP(A1,H:I,2,FALSE)");  // 设置计算公式

        // 获取计算公式的值
        HSSFFormulaEvaluator e = new HSSFFormulaEvaluator(wb);
        cell6 = e.evaluateInCell(cell6);
        Object outputStream = cell6.getStringCellValue();
        System.out.println(outputStream);
        FileOutputStream fileOutputStream=new FileOutputStream("30.xls");
        wb.write(fileOutputStream);
        fileOutputStream.close();
    }
}

         String str = printResponse(conn);
         AI.data = str.substring(str.indexOf("[")+2, str.lastIndexOf("。"));

AI.data 在cell中正常显示它的文字部分,Vlookup公式在cell中显示的运行结果也没有问题。
但是:在获取计算公式的值的时候就出问题了,
1.加上取值就出现以上错误;

img

2.去掉取值正常显示如下图;

img

3.把AI.data替换成文字,带上取值显示如下图;

img

初学java还不太熟悉,掉大坑里了,求拉一把。帮忙找一下具体是AI.data还是公式vlookup还是取值出问题了,网上好多在说是单元格格式问题不知道是不是。
(PS:已经卡了一个星期了,尝试N种修改,还是不行啊)

  • 写回答

1条回答 默认 最新

  • Code_流苏 C/C++领域优质创作者 2022-02-05 12:47
    关注

    img

    大致翻译如下:. lang。ILLegalstateException:不能从错误单元格中获得一个字符串值。
    单元格出错了,题主检查检查单元格是否正确。

    以上仅供参考,如有任何疑问,可以评论回复,看到即回。
    希望对题主有所帮助!可以的话,点个采纳!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 2月13日
  • 已采纳回答 2月5日
  • 创建了问题 2月5日

悬赏问题

  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加
  • ¥15 用ns3仿真出5G核心网网元
  • ¥15 matlab答疑 关于海上风电的爬坡事件检测
  • ¥88 python部署量化回测异常问题
  • ¥30 酬劳2w元求合作写文章
  • ¥15 在现有系统基础上增加功能