我不知道为什么我不能用setCellValue()写2个单元格值,它只更新x1单元格中的1个值,而x2单元格不更新。我有一个文件excel,我想更新这个文件的值,数据来自arraylist listThoaiThang,tt.getNoIbo()和tt.getNgoAimang()是一个字符串,当日志记录时不是null。
代码在下面,谢谢。
public void writeFile(ArrayList<LLThoaiNoiHat> llList) {
FileInputStream fis = null;
try {
DateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
String date1 = dateFormat.format(new Date()).toString();
File tongHop = new File("Thongke_LL_NOIHAT_VTT_" + date1 + ".xlsx");
copyFileUsingApacheCommonsIO(new File("Mau_Thongke_LL_NOIHAT_VTT.xlsx"), tongHop); //copy sample file before edit data
fis = new FileInputStream(tongHop);
BufferedInputStream bis = new BufferedInputStream(fis);
XSSFWorkbook workbook = new XSSFWorkbook(fis);
Sheet sheet = workbook.getSheetAt(0);
fis.close();
int rowNum = 9;
Row row;
ArrayList<LLThoaiThang> listThoaiThang;
for (LLThoaiNoiHat tnh : llList) {
row = sheet.getRow(rowNum++);
int colNum = 2;
listThoaiThang =tnh.getListThoaiThang();
for (LLThoaiThang tt :listThoaiThang ) {
int aa = tt.getThang() / 2+3;
Cell x1 = row.getCell(aa);
x1.setCellValue(tt.getNoiBo()); //only first cell ok
Cell x2 = row.getCell(aa+1);
x2.setCellValue(tt.getNgoaiMang());//this cell cannot change value and all cell after cannot change value
}
}
FileOutputStream outFile = new FileOutputStream(tongHop);
workbook.write(outFile);
outFile.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
我发现这里的问题是如果你将一个数字值设置为字符串,它将不会在单元格之后更新,我认为这是apache POI的问题,所以答案是:
for (LLThoaiThang tt :listThoaiThang ) {
int aa = tt.getThang() / 2+3;
Cell x1 = row.getCell(aa);
if(!tt.getNoiBo().isEmpty())
x1.setCellValue(Double.parseDouble(tt.getNoiBo())); //only this cell ok
Cell x2 = row.getCell(aa+1);
if(!tt.getNgoaiMang().isEmpty())
x2.setCellValue(Double.parseDouble(tt.getNgoaiMang()));;
}
如何使用Apache POI将文本/图像写入特定的合并单元格。特定单元格意味着,我直接将文本或图像写入B3: D7。下面的代码是每个索引的手动代码,而不是单元格的特定名称和数量。我想通过单元格名称和编号放置。
我对Eclipse Java编码一无所知。我正在努力完成一个管理库存的项目。我遇到的问题是,当我试图将项目写入excel单元格时,我收到错误消息,称数组超出了界限。 附言:项目和item.get部分名称等都定义在另一个类文件下。请帮忙。谢谢
我使用POI API从Postgres数据库生成了excel文档。第一列“Ordre”有许多相同的值。但是我想合并具有相同值的单元格。 我想遵循这个算法: 在字段“ordre”中循环 如果单元格(i)=单元格(i1) 而不是合并它们 但是我有一个问题,在Java中如何说,我不希望它能给出一些令人满意的结果,我开始写这段代码: 任何建议都将不胜感激
我在把数据写到excel文件时遇到了问题。我使用的是apache POI 4.1.2版本库。下面是示例代码。 在excel文件中保存的最后一列单元格中,以前的单元格保持为空白。请帮忙,如果我做错了什么,请告诉我?
我正在写一个程序,它需要从excel文件中读取和写入数据,而不考虑格式(xls或xlsx)。 我知道ApachePOI,但它似乎有不同的类来处理xls文件(HSSF)和xlsx(XSSF)文件。 任何人都知道我将如何实现我在这里的目标。(也欢迎使用POI以外的API的想法)。
问题内容: 如何在poi的帮助下在单元格中写下我的全部价值? 即如果值是1000.000,那么我怎么能写出完整的值而不会在“之后”截断000。与POI?表示我想要全部价值。 就我而言,只需要1000,但这对我来说不是正确的格式。 问题答案: 您必须设置要存储此数字的单元格的“格式”。示例代码: 来源:http : //poi.apache.org/spreadsheet/quick- guide.