3

我正在使用以下代码,用于使用 apache poi 读取 excel,它是一个 .xlsx 文件。请让我知道我能做什么,以便在我的循环继续进行时更改每一行中的单元格的值。谢谢

import java.io.FileInputStream;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

String fileName = "C:/createCDN.xlsx";
FileInputStream fis = null;
fis = new FileInputStream(fileName);
XSSFWorkbook workbook = new XSSFWorkbook(fis);
FileOutputStream fos=new FileOutputStream(fileName);
XSSFSheet sheet = workbook.getSheetAt(0);
int totalRows=sheet.getLastRowNum();
for(int i=1;i<=totalRows;i++) {
    XSSFRow row = sheet.getRow(i);
    method.fillTextBox(row.getCell(0),"name", pageProp);
    method.fillTextBox(row.getCell(0),"name", pageProp);
} //Do something here, or inside loop to write to lets say cell(2) of same row.

谢谢。

4

2 回答 2

14

它应该是这样的:

for(int i = 1; i <= totalRows; i++) {
    Row row = sheet.getRow(i);
    Cell cell = row.getCell(2);
    if (cell == null) {
        cell = row.createCell(2);
    }
    cell.setCellType(Cell.CELL_TYPE_STRING);
    cell.setCellValue("some value");
}

要保存工作簿,您可以编写:

FileOutputStream fos = new FileOutputStream(fileName);
workbook.write(fos);
fos.close();

您应该查看POI 的 Busy Developers' Guide

于 2012-10-05T22:25:25.023 回答
1

首先,您需要在 excel 文件中创建空间,如下所示:

for(int row = 0; row < 10 ; row++) {
    sheet.createRow(row);
    for(int column = 0; column < 10; column++) { 
        sheet.getRow(row).createCell(column);                
    }                
}            

然后您可以使用以下命令编写 excel:

sheet.getRow(row).getCell(column).setCellValue("hello");
于 2016-06-03T19:55:29.053 回答