![](/img/trans.png)
[英]How do I set the value of a cell in a Jtable to be only the last character entered when clicking off of it?
[英]How do I set a new cell after the last existing column?
我需要在现有的最后一列之后设置一个名为Status
的新列,但是我的代码是之前的某些列,并且使用getLastColumn不会显示任何内容。
如何在最后一列 (“链接especificação”) 之后设置新的单元格?
private Workbook setStatus(Workbook wb, Map<String, Integer> header, List<ValidacaoResultado> validation, Planilha planilha) {
Sheet sheet = wb.getSheetAt(0);
CellStyle style;
int coluna = header.size() + 1;
List<BasicDBObject> lista = planilha.getSpec();
Map<Integer, String> items = new HashMap<>();
Map<String, String> itemsValidacao = new HashMap<>();
for (BasicDBObject itemsNome : lista) {
Map extras = (Map) itemsNome.get("extras");
items.put(Integer.parseInt(extras.get("linha").toString()) - 1, itemsNome.get("peca_nome").toString());
}
try {
for (ValidacaoResultado aValidation : validation) {
if (aValidation.getSpec() != null) {
if (aValidation.getArquivo() != null) {
String nomeOriginal = aValidation.getSpec().get("peca_nome").toString();
itemsValidacao.put(nomeOriginal, aValidation.getResultadoConsolidado());
} else {
String nomeOriginal = aValidation.getSpec().get("peca_nome").toString();
itemsValidacao.put(nomeOriginal, aValidation.getResultadoConsolidado());
}
}
}
} catch (Exception e) {
Log.error(this, "erro");
}
for (Row row : sheet) {
Iterator<Cell> cellIterator = row.cellIterator();
while (cellIterator.hasNext()) {
Cell cell = cellIterator.next();
if (row.getRowNum() == LINHA_CABECALHO && cell.getColumnIndex() == header.size()) {
style = cell.getCellStyle();
Cell status = row.createCell(coluna);
status.setCellValue("Status");
status.setCellStyle(style);
}
if (cell.getColumnIndex() == coluna && row.getRowNum() > LINHA_CABECALHO) {
String peca = items.get(row.getRowNum());
String status = itemsValidacao.get(peca);
if (status != null) {
if (status.toLowerCase().contains("spec") || status.toLowerCase().contains("media")) {
status = "Não contém mídia.";
}
}
cell.setCellValue(status);
}
}
}
return wb;
}
这是结果代码
这是将新单元格设置为row.getLastColumn + 1
Cell status = row.createCell(row.getLastCellNum());
这应该可以解决问题, getLastCellNum()
已经返回了最后一个索引+ 1(等于从1开始的单元格编号)。
之后,有必要调整单元格的大小和可见性:
sheet.setColumnHidden(row.getLastCellNum(), false);
sheet.autoSizeColumn(row.getLastCellNum());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.