最近在弄Excel模板的时候发现了一个问题。
当JAVA 后端 查好对应数据后,填充进下拉框内。类似于下面内容
String[] scope = ......;
.createValidationData(scope, 2, 500, 9, 9)
然后前端页面,下载模板。
使用excel打开后,excel提示修复模板,点击修复后,发现下拉框的数据消失了。
排查完问题,发现可能是由于填充的数据量过大导致,createValidationData直接使用这个方法数据会直接填充进对应的单元格内,
由于数据量过大,导致字节流发生问题。所以这里,提供一个解决方案,
.fillDataColumn(scope , 11).setColumnHidden(11, true)
.createValidationDataFormula(String.format("=元模型!$L$1:$L$%s", scope .length), 2, 500, 9, 9)
以上代码根据实际情况调整,复制粘贴肯定不能成功
先把数据填充到另外一行隐藏域内,然后下拉框从隐藏域读取数据进行填充 这样就不会出错了