segunda-feira, 10 de novembro de 2014

Como criar uma planilha com Apache POI

package samples;

import java.io.FileOutputStream;
import java.text.SimpleDateFormat;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.CreationHelper;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;

public class App {

 public static void main(String[] args) {
  try {
   Workbook wb = new HSSFWorkbook();
   
   Sheet sheet = wb.createSheet("Sheet");
   
   // Usado para formatar celulas
   CreationHelper createHelper = wb.getCreationHelper();
      
   // formatador para data
      CellStyle cellStyle = wb.createCellStyle();
         cellStyle.setDataFormat(createHelper.createDataFormat().getFormat("dd/mm/yyyy"));
         
         // formatador para valor monetário
         CellStyle cellStyleValor = wb.createCellStyle();
      cellStyleValor.setDataFormat((short)7);
         
      // Cria primeira linha
      Row row = sheet.createRow(0);
      
      Cell valorMonetario = row.createCell(0);
      valorMonetario.setCellStyle(cellStyleValor);
      valorMonetario.setCellValue(122342.43433);

      Cell data = row.createCell(1);
      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
      data.setCellValue(sdf.parse("2014-02-12"));
      data.setCellStyle(cellStyle);

      // Grava uma formula na linha
      Cell valorRCOReal = row.createCell(2);
      valorRCOReal.setCellType(Cell.CELL_TYPE_FORMULA);
      valorRCOReal.setCellStyle(cellStyleValor);
   valorRCOReal.setCellFormula("ROUND(A1,2)");

   
   // redimensiona a coluna para
   sheet.autoSizeColumn(0);
   sheet.autoSizeColumn(1);
   sheet.autoSizeColumn(2);

   FileOutputStream fileOut = new FileOutputStream("c:/Marcel/PlanilhaSample.xls");
   wb.write(fileOut);
   wb.close();
   fileOut.close();
  } catch (Exception e) {
   e.printStackTrace();
  }
 }

}

Nenhum comentário:

Postar um comentário