gpt4 book ai didi

java - 包含 & 符号的公式中存在词汇错误

转载 作者:行者123 更新时间:2023-12-01 04:41:05 26 4
gpt4 key购买 nike

我正在尝试向电子表格中添加一个公式,其中包含引用单元格的 SUMIF。这是我尝试添加的公式的代码:

addFormula("(100 * " + dRangeCell + " / 256) * (SUMIF(B" + (dip.start+1) + ":B" + (dip.end+1) + ",\"<\"&" + dbThresholdCell + ")) / " + profile.getImageWidth(), 
dipAreaPercentageCol, row, sheet, highlightedFormat);

重要的部分是 SUMIF 中的条件,如果这些值小于另一个单元格中的值,我将尝试进行求和。

当代码运行时,我收到此错误:

Warning:  Lexical error:   (100 * D18 / 256) * (SUMIF(B1:B2,"<"&D21)) / 332 at char  36 when parsing formula (100 * D18 / 256) * (SUMIF(B1:B2,"<"&D21)) / 332 in cell Profile!N24

它提示的字符是&符号。但是,当我将该精确公式粘贴到 Excel 中的电子表格中时,它可以正常工作。

JExcel 不知道如何正确解析 & 符号吗?我的情况有解决方法吗?

最佳答案

如果你使用 concatenate(a,b) 而不是 a&b 你可以得到想要的效果。上面的示例仅处理单级串联,例如 &and&and&,如果您想要嵌套即 (and&and)& 并且您将不得不使用正则表达式 –

if (colElement.attributeValue("type").equals(CellType.STRING_FORMULA.toString())) {
WritableCellFormat wcf = new WritableCellFormat();
Pattern pattern = Pattern.compile("^([^&]+)&(.*)$");
for (Matcher m = pattern.matcher(t); m.matches(); m=pattern.matcher(t)) {
t = "CONCATENATE(" + m.group(1) + "," + m.group(2) + ")";
}
sheet.addCell(new jxl.write.Formula(x, y, t));

}

关于java - 包含 & 符号的公式中存在词汇错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16534148/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com