我正在使用freemarker 2.3.28
并尝试为变量赋值,但标题中出现错误
<#list 0..row.getLastCellNum()-1 as cell>
<#assign cellValue = cell.getStringCellValue()>
<#assign cellAddress = cell.getAddress().toString()>
<#if someCondition>
<td style='background-color:orange'>${cellValue}</td>
<#else>
<td>${cellValue}</td>
</#if>
</#list>
该错误发生在第二和第三行。变量row
是一个XSSFRow
对象,该对象在我要遍历的List
内部传入,而外部list (<#list rows as row>)
在此未显示。
为什么会这样?我该如何解决?
谢谢。
答案 0 :(得分:0)
在我看来cell
从未分配给实际的单元格对象。您的<#list 0..row.getLastCellNum()-1 as cell>
行将把循环计数器号分配给单元变量。如果您将其更改为此可以吗?:
<#list 0..row.getLastCellNum()-1 as idx>
<#assign cell = cell.getCell(idx)>
<#assign cellValue = cell.getStringCellValue()>
<#assign cellAddress = cell.getAddress().toString()>
<#if someCondition>
<td style='background-color:orange'>${cellValue}</td>
<#else>
<td>${cellValue}</td>
</#if>
</#list>
我在POI javadoc中没有看到任何暴露从该行获取所有单元格的东西,否则会更简单。