Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

498
Visualizações
Apache poi rellena el valor de la celda por fórmula

Soy nuevo en apache poi tratando de escribir el archivo de Excel. Tengo algún problema al configurar la fórmula en la celda.

A continuación se muestra mi muestra de Excel:

Usuario País Valor
Rohit Reino Unido
Juan INDIANA

Necesito completar la columna Valor según los campos Usuario y País . A continuación se muestra la fórmula de Excel que quiero convertir a apache poi java

 =IF(AND(LEN([@[User]]) > 0, [@Country] = "UK"),1,0)

Alguien puede ayudarme ?

Código de muestra

 try { InputStream inputStream = this.getClass().getResourceAsStream("/sample.xlsx"); XSSFWorkbook workbook = new XSSFWorkbook (inputStream); System.out.println("inside the controller"); XSSFSheet sheet = workbook.getSheetAt(0); Object[][] bookData = { {"Rohit","UK",null}, {"John","IND",null} }; int rowCount = sheet.getLastRowNum(); int count=0; //CellStyle cell1; for (Object[] aBook : bookData) { Row row = sheet.createRow(++rowCount); int columnCount = 0; Cell cell = row.createCell(columnCount); // cell.setCellValue(rowCount); for (Object field : aBook) { cell = row.createCell(columnCount++); if(field==null){ cell.setCellFormula("IF(AND(LEN(A1:A3)>0,(B1:B3)=UK),1,0)"); } else if (field instanceof String) { cell.setCellValue((String) field); } else if (field instanceof Integer) { cell.setCellValue((Integer) field); } } } java.util.List<XSSFTable> l = sheet.getTables(); l.get(0).getCTTable().setRef("A1:L4"); FileOutputStream outputStream = new FileOutputStream("D://demo/sample_with_values.xlsx"); workbook.write(outputStream); workbook.close(); outputStream.close(); } catch (IOException | EncryptedDocumentException ex) { ex.printStackTrace(); }
over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Como mencionó @Axel Richter , usar == no es válido.

cell.setCellFormula("IF(AND(LEN(A1:A3)>0,(B1:B3)==UK),1,0)");

Errores con su fórmula.

#1. El error...

 Parse error near char 25 '=' in specified formula 'IF(AND(LEN(A1:A3)>0,(B1:B3)==UK),1,0)'. Expected cell ref or constant literal`

…implica que está utilizando un = adicional en la fórmula.

#2. (B1:B3)==UK debe ser (B1:B3)="UK" . Está comparando un valor de cadena, por lo que debe estar entre comillas dobles.

Código :

 cell.setCellFormula("IF(AND(LEN(A1:A3)>0,(B1:B3)=\"UK\"),1,0)");

Salida :

ingrese la descripción de la imagen aquí

over 4 years ago · Santiago Trujillo Relatório

0

public static void main(String[] args) throws Exception { HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet spreadsheet = workbook.createSheet("example"); HSSFRow row = spreadsheet.createRow((short) 0); row.createCell(0).setCellValue("User"); row.createCell(1).setCellValue("Country"); row.createCell(2).setCellValue("Value"); row = spreadsheet.createRow((short) 1); row.createCell(0).setCellValue("Rohit"); row.createCell(1).setCellValue("UK"); row.createCell(2).setCellFormula("IF(AND(LEN(A1:A3)>0,(B1:B3)=\"UK\"),1,0)"); row = spreadsheet.createRow((short) 2); row.createCell(0).setCellValue("John"); row.createCell(1).setCellValue("IND"); row.createCell(2).setCellFormula("IF(AND(LEN(A1:A3)>0,(B1:B3)=\"UK\"),1,0)"); FileOutputStream out = new FileOutputStream( new File("/Users/anand.keshri/workspace/poi/first.xls") ); workbook.write(out); out.close(); workbook.close(); System.out.println("first.xls written successfully");
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda