在使用Apache Poi的createCell()方法时,不能直接将循环中的索引作为参数传递。这是因为该方法需要的参数是列的索引,而不是循环中的索引。解决此问题的一种方法是使用一个变量来保存列的索引,并在每次循环迭代时递增该变量。
以下是一个示例代码,演示了如何解决此问题:
import org.apache.poi.ss.usermodel.*;
public class ApachePoiExample {
public static void main(String[] args) {
// 创建一个新的工作簿
Workbook workbook = new HSSFWorkbook();
// 创建一个工作表
Sheet sheet = workbook.createSheet("Sheet1");
// 创建一个行
Row row = sheet.createRow(0);
// 创建一个变量来保存列的索引
int columnIndex = 0;
// 循环迭代
for (int i = 0; i < 10; i++) {
// 在当前行中创建一个单元格,并使用列的索引作为参数
Cell cell = row.createCell(columnIndex);
// 设置单元格的值
cell.setCellValue("Data " + i);
// 递增列的索引
columnIndex++;
}
// 保存工作簿
try {
workbook.write(new FileOutputStream("output.xls"));
workbook.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
在上述代码中,我们创建了一个变量columnIndex
来保存列的索引,并在每次循环迭代时递增该变量。然后,我们将columnIndex
作为参数传递给createCell()
方法,以正确创建单元格。
请注意,此示例使用的是HSSFWorkbook类(适用于xls文件格式),如果您想使用xlsx文件格式,则需要使用XSSFWorkbook类。另外,您还需要导入org.apache.poi.ss.usermodel.*
和java.io.*
包。