help wanted
Description
背景:
我希望能够对某一列加下拉框,这个列的下标是不固定的,如列名为: '是否是问题' 就添加'是问题'、'非问题'的下拉框 当前的做法是在writeHandler 的 afterWorkbookDispose方法中,获取每个sheet的第一个Row的值,然后进行匹配,但是当excel行数过多时,这个sheet.getRow(0)就会返回null,无法获取到第一行的值。
异常代码
public void afterWorkbookDispose(WriteWorkbookHolder writeWorkbookHolder) {
Workbook workbook = writeWorkbookHolder.getWorkbook();
Iterator<Sheet> sheetIterator = workbook.sheetIterator();
sheetIterator.forEachRemaining(sheet -> {
setConstraintSheet(sheet.getRow(0), dropDownList, size, sheet);
for (int index : hideIndex) {
sheet.setColumnHidden(index, true);
}
});
}
异常提示
看起来像是调用afterWorkbookDispose时,已经把部分内容刷新到excel里面了,sheet的lastFlushedRowNumeber已经有值,导致无法获取到第一行的内容。
问题描述
afterWorkbookDispose该方法中无法获取到sheet中的第一行数据,有什么方法可以获取到吗,或者我的需求可以用其他方法实现?
示例文档中是在拦截器的afterSheetCreate 里面设置下拉框,但是此时无法获取第一行的内容,是手动指定下标来设置的。我希望能够根据表头内容,来设置对应的下拉框