这是因为您要在已有值的行索引上创建新行。
您需要将现有行向下移动 1 行,因此您要插入行的索引是“空闲”的。
换句话说,“createRow()”将始终创建一个新行和索引 x,无论是否已经存在。
使用sheet.shiftRows(..)
看:https://poi.apache.org/apidocs/org/apache/poi/hssf/usermodel/HSSFSheet.html#shiftRows(int https://poi.apache.org/apidocs/org/apache/poi/hssf/usermodel/HSSFSheet.html#shiftRows(int,整数,整数)
第一个参数应该是要插入内容的行的索引,第二个参数是最后一行的编号,第三个参数应该是 1。因此从 x 开始的所有行都将向下移动一行,您可以插入您在 x 处的行。
示例:每一行都是一行内容。
1 ----------------------
2 ----------------------
3 ---------------------- < you want to insert a new row at index 3
4 ----------------------
5 ----------------------
6 ----------------------
7 ----------------------
shiftRows(3,7,1) 将执行以下操作:
1 ----------------------
2 ----------------------
3 empty row
4 ---------------------- < your "old" row #3
5 ----------------------
6 ----------------------
7 ----------------------
8 ----------------------
createRow(3),设置单元格值:
1 ----------------------
2 ----------------------
3 ////////////////////// < your new row #3 witht he new content
4 ---------------------- < your "old" row #3
5 ----------------------
6 ----------------------
7 ----------------------
8 ----------------------