Java 如何在上一个现有列之后设置新单元格?

Java 如何在上一个现有列之后设置新单元格?,java,apache-poi,Java,Apache Poi,我需要在最后一个现有列之后设置一个名为Status的新列,但我的代码是前面的一些列,使用getLastColumn不会显示任何内容。如何在最后一列(“Link specificação”)之后设置一个新单元格 private Workbook setStatus(工作簿wb、映射头、列表验证、Planilha-Planilha){ Sheet Sheet=wb.getSheetAt(0); 蜂窝式; int coluna=header.size()+1; List lista=planilha.

我需要在最后一个现有列之后设置一个名为
Status
的新列,但我的代码是前面的一些列,使用getLastColumn不会显示任何内容。
如何在最后一列(“Link specificação”)之后设置一个新单元格

private Workbook setStatus(工作簿wb、映射头、列表验证、Planilha-Planilha){
Sheet Sheet=wb.getSheetAt(0);
蜂窝式;
int coluna=header.size()+1;
List lista=planilha.getSpec();
Map items=newhashmap();
Map itemsValidacao=新HashMap();
对于(基本CDB对象项名称:lista){
Map extras=(Map)itemsNome.get(“extras”);
items.put(Integer.parseInt(extras.get(“linha”).toString())-1,itemsNome.get(“peca_nome”).toString());
}
试一试{
用于(ValidacaoResultado aValidation:验证){
if(aValidation.getSpec()!=null){
if(aValidation.getArquivo()!=null){
字符串nomeOriginal=aValidation.getSpec().get(“peca_nome”).toString();
itemsValidacao.put(nomeOriginal,aValidation.getResultadoConsolidado());
}否则{
字符串nomeOriginal=aValidation.getSpec().get(“peca_nome”).toString();
itemsValidacao.put(nomeOriginal,aValidation.getResultadoConsolidado());
}
}
}
}捕获(例外e){
日志错误(该“错误”);
}
用于(行:页){
迭代器cellIterator=row.cellIterator();
while(cellIterator.hasNext()){
Cell=cellIterator.next();
if(row.getRowNum()==LINHA_CABECALHO&&cell.getColumnIndex()==header.size()){
style=cell.getCellStyle();
单元格状态=row.createCell(coluna);
status.setCellValue(“status”);
status.setCellStyle(样式);
}
if(cell.getColumnIndex()==coluna&&row.getRowNum()>LINHA_CABECALHO){
字符串peca=items.get(row.getRowNum());
字符串状态=itemsValidacao.get(peca);
如果(状态!=null){
if(status.toLowerCase()包含(“规范”)| | status.toLowerCase()包含(“媒体”)){
status=“Não contémídia。”;
}
}
cell.setCellValue(状态);
}
}
}
返回wb;
}
这是结果代码

这是我将新单元格设置为
row.getLastColumn+1

这应该可以做到,
getLastCellNum()
已经返回最后一个索引+1(等于基于1的单元格编号)。

在此之后,需要调整单元大小和可见性:

sheet.setColumnHidden(row.getLastCellNum(), false);
sheet.autoSizeColumn(row.getLastCellNum());
Cell status = row.createCell(row.getLastCellNum());
sheet.setColumnHidden(row.getLastCellNum(), false);
sheet.autoSizeColumn(row.getLastCellNum());