将新的单元格写入工作表apache poi - java

我正在使用以下代码,以便使用apache poi(其.xlsx文件)读取Excel。请让我知道我可以做些什么,也可以在循环不断进行的同时更改每行中一个单元格的值。谢谢

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.

谢谢。

参考方案

应该是这样的:

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's Busy Developers' Guide。

POI-将工作表设置为非常隐藏不起作用 - java

我正在使用POI库在XLS文件上执行一些Java代码。我试图将某些工作表设置为非常隐藏,以便用户根本无法访问它们。非常隐藏的工作表的定义http://www.kiranjholla.com/myblog/2010/03/the-very-hidden-sheet-in-excel.html码 // Creates and hides a sheet HSSF…

Apache POI背景颜色样式似乎不起作用 - java

晚上好!我在apache poi v.14版本中遇到了一些麻烦,当我使用Libreoffice或Excel打开渲染的xlsx时,样式未正确应用。我有以下代码:class... { private XSSFCellStyle doubleLockStyle; /** * Create default cell style. * * @param myWorkB…

Excel POI:当Excel少于135行时,“我们在…中发现了某些内容的问题” - java

使用POI创建Excel时,我的行为很奇怪。每当我的行数少于〜135时,我将无法打开Excel,但出现以下异常:如果我有更多行,则可以毫无问题地打开Excel。这是代码,我如何创建工作表:val out = new ByteArrayOutputStream() try { wb = createWorkbook() wb.writeToOutputStre…

Java:线程池如何将线程映射到可运行对象 - java

试图绕过Java并发问题,并且很难理解线程池,线程以及它们正在执行的可运行“任务”之间的关系。如果我创建一个有10个线程的线程池,那么我是否必须将相同的任务传递给池中的每个线程,或者池化的线程实际上只是与任务无关的“工人无人机”可用于执行任何任务?无论哪种方式,Executor / ExecutorService如何将正确的任务分配给正确的线程? 参考方案 …

JAVA:字节码和二进制有什么区别? - java

java字节代码(已编译的语言,也称为目标代码)与机器代码(当前计算机的本机代码)之间有什么区别?我读过一些书,他们将字节码称为二进制指令,但我不知道为什么。 参考方案 字节码是独立于平台的,在Windows中运行的编译器编译的字节码仍将在linux / unix / mac中运行。机器代码是特定于平台的,如果在Windows x86中编译,则它将仅在Win…