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

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 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵