Exception in thread "main" org.apache.poi.ss.formula.FormulaParseException: Parse error near char 0 '$' in specified formula '$A$F3'. Expected number, string, defined name, or data table
at org.apache.poi.ss.formula.FormulaParser.expected(FormulaParser.java:269)
at org.apache.poi.ss.formula.FormulaParser.parseAsName(FormulaParser.java:926)
at org.apache.poi.ss.formula.FormulaParser.parseNonRange(FormulaParser.java:893)
at org.apache.poi.ss.formula.FormulaParser.parseRangeable(FormulaParser.java:501)
at org.apache.poi.ss.formula.FormulaParser.parseRangeExpression(FormulaParser.java:322)
at org.apache.poi.ss.formula.FormulaParser.parseSimpleFactor(FormulaParser.java:1540)
at org.apache.poi.ss.formula.FormulaParser.percentFactor(FormulaParser.java:1498)
at org.apache.poi.ss.formula.FormulaParser.powerFactor(FormulaParser.java:1485)
at org.apache.poi.ss.formula.FormulaParser.Term(FormulaParser.java:1858)
at org.apache.poi.ss.formula.FormulaParser.additiveExpression(FormulaParser.java:1986)
at org.apache.poi.ss.formula.FormulaParser.concatExpression(FormulaParser.java:1970)
at org.apache.poi.ss.formula.FormulaParser.comparisonExpression(FormulaParser.java:1927)
at org.apache.poi.ss.formula.FormulaParser.intersectionExpression(FormulaParser.java:1900)
at org.apache.poi.ss.formula.FormulaParser.unionExpression(FormulaParser.java:1880)
at org.apache.poi.ss.formula.FormulaParser.parse(FormulaParser.java:2028)
at org.apache.poi.ss.formula.FormulaParser.parse(FormulaParser.java:170)
at org.apache.poi.xssf.usermodel.XSSFCell.setFormula(XSSFCell.java:566)
at org.apache.poi.xssf.usermodel.XSSFCell.setCellFormula(XSSFCell.java:544)
at com.jameskleeh.excel.internal.CreatesCells.formula(CreatesCells.groovy:159)
at com.jameskleeh.excel.internal.CreatesCells.formula(CreatesCells.groovy:136)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:384)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1027)
at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:69)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:52)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:154)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:166)
at ExcelBookFormula$_write_closure1$_closure2$_closure4.doCall(ExcelBookFormula.groovy:37)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1027)
at groovy.lang.Closure.call(Closure.java:414)
at groovy.lang.Closure.call(Closure.java:430)
at com.jameskleeh.excel.Sheet.row(Sheet.groovy:196)
at com.jameskleeh.excel.Sheet.row(Sheet.groovy:169)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:384)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1027)
at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:69)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:52)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:154)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:166)
at ExcelBookFormula$_write_closure1$_closure2.doCall(ExcelBookFormula.groovy:36)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1027)
at groovy.lang.Closure.call(Closure.java:414)
at groovy.lang.Closure.call(Closure.java:430)
at com.jameskleeh.excel.Workbook.handleSheet(Workbook.groovy:114)
at com.jameskleeh.excel.Workbook.sheet(Workbook.groovy:55)
at com.jameskleeh.excel.Workbook.sheet(Workbook.groovy:66)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:384)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1027)
at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:69)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:52)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:154)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:174)
at ExcelBookFormula$_write_closure1.doCall(ExcelBookFormula.groovy:28)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1027)
at groovy.lang.Closure.call(Closure.java:414)
at groovy.lang.Closure.call(Closure.java:430)
at com.jameskleeh.excel.ExcelBuilder.build(ExcelBuilder.groovy:55)
at com.jameskleeh.excel.ExcelBuilder$build.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
at ExcelBookFormula.write(ExcelBookFormula.groovy:27)
at FormulaBugCheck.main(FormulaBugCheck.java:4)
When you use 2-letter column and anchor it, then the exception is thrown because in the code only self[0] is taken.
https://github.com/jameskleeh/groovy-excel-builder/blob/3f77031ca01365cfc36a22355024bc47d88448ee/src/main/groovy/com/jameskleeh/excel/extensions/StringExtension.groovy#L34
I created an mvce