Java com Excel

12 respostas
B

Pessoal,
Boa noite!!

Eu preciso salvar algumas informações de um arquivo TXT em uma planilha já formatada do excel e no caso os dados deverão ser salvos na próxima linha disponível, pois vou acumular informações nele.

Pois bem, não tenho ideia de como utilizar o POI ou o JExcelAPI para fazer isso. No caso, pelo JExcelAPI, entendi como abrir minha planilha, selecionar a guia que preciso (Sheet), mas como salvar estes dados lá que é o problema…

será que alguém pode dar uma força ai ???

Valeu!!

12 Respostas

D

Pelo que entendi você tem um arquivo texto que vocẽ vai ler e criar um arquivo excel?
Realmente o POI da Apache ajuda e muito!
Tirei uns ótimos exemplos da página de ajuda rápida do HSSF e XSSF.

Nova planilha

Workbook wb = new HSSFWorkbook();
    //Workbook wb = new XSSFWorkbook();
    Sheet sheet1 = wb.createSheet("new sheet");
    Sheet sheet2 = wb.createSheet("second sheet");
    FileOutputStream fileOut = new FileOutputStream("workbook.xls");
    wb.write(fileOut);
    fileOut.close();

Criando células

Workbook wb = new HSSFWorkbook();
    //Workbook wb = new XSSFWorkbook();
    CreationHelper createHelper = wb.getCreationHelper();
    Sheet sheet = wb.createSheet("new sheet");

    // Create a row and put some cells in it. Rows are 0 based.
    Row row = sheet.createRow((short)0);
    // Create a cell and put a value in it.
    Cell cell = row.createCell(0);
    cell.setCellValue(1);

    // Or do it on one line.
    row.createCell(1).setCellValue(1.2);
    row.createCell(2).setCellValue(
         createHelper.createRichTextString("This is a string"));
    row.createCell(3).setCellValue(true);

    // Write the output to a file
    FileOutputStream fileOut = new FileOutputStream("workbook.xls");
    wb.write(fileOut);
    fileOut.close();

Criando células com datas

Workbook wb = new HSSFWorkbook();
    //Workbook wb = new XSSFWorkbook();
    CreationHelper createHelper = wb.getCreationHelper();
    Sheet sheet = wb.createSheet("new sheet");

    // Create a row and put some cells in it. Rows are 0 based.
    Row row = sheet.createRow(0);

    // Create a cell and put a date value in it.  The first cell is not styled
    // as a date.
    Cell cell = row.createCell(0);
    cell.setCellValue(new Date());

    // we style the second cell as a date (and time).  It is important to
    // create a new cell style from the workbook otherwise you can end up
    // modifying the built in style and effecting not only this cell but other cells.
    CellStyle cellStyle = wb.createCellStyle();
    cellStyle.setDataFormat(
        createHelper.createDataFormat().getFormat("m/d/yy h:mm"));
    cell = row.createCell(1);
    cell.setCellValue(new Date());
    cell.setCellStyle(cellStyle);

    //you can also set date as java.util.Calendar
    cell = row.createCell(2);
    cell.setCellValue(Calendar.getInstance());
    cell.setCellStyle(cellStyle);

    // Write the output to a file
    FileOutputStream fileOut = new FileOutputStream("workbook.xls");
    wb.write(fileOut);
    fileOut.close();

Trabalhando com diferentes tipos de células

Workbook wb = new HSSFWorkbook();
    Sheet sheet = wb.createSheet("new sheet");
    Row row = sheet.createRow((short)2);
    row.createCell(0).setCellValue(1.1);
    row.createCell(1).setCellValue(new Date());
    row.createCell(2).setCellValue(Calendar.getInstance());
    row.createCell(3).setCellValue("a string");
    row.createCell(4).setCellValue(true);
    row.createCell(5).setCellType(HSSFCell.CELL_TYPE_ERROR);

    // Write the output to a file
    FileOutputStream fileOut = new FileOutputStream("workbook.xls");
    wb.write(fileOut);
    fileOut.close();

Trabalhando com bordas

Workbook wb = new HSSFWorkbook();
    Sheet sheet = wb.createSheet("new sheet");

    // Create a row and put some cells in it. Rows are 0 based.
    Row row = sheet.createRow(1);

    // Create a cell and put a value in it.
    Cell cell = row.createCell(1);
    cell.setCellValue(4);

    // Style the cell with borders all around.
    CellStyle style = wb.createCellStyle();
    style.setBorderBottom(CellStyle.BORDER_THIN);
    style.setBottomBorderColor(IndexedColors.BLACK.getIndex());
    style.setBorderLeft(CellStyle.BORDER_THIN);
    style.setLeftBorderColor(IndexedColors.GREEN.getIndex());
    style.setBorderRight(CellStyle.BORDER_THIN);
    style.setRightBorderColor(IndexedColors.BLUE.getIndex());
    style.setBorderTop(CellStyle.BORDER_MEDIUM_DASHED);
    style.setTopBorderColor(IndexedColors.BLACK.getIndex());
    cell.setCellStyle(style);

    // Write the output to a file
    FileOutputStream fileOut = new FileOutputStream("workbook.xls");
    wb.write(fileOut);
    fileOut.close();
A

Você chegou a ler a documentação da JExcelAPI?

http://jexcelapi.sourceforge.net/resources/javadocs/index.html

B

dreampeppers99

Valeu pelo toque, legal, vou ver seus exemplos e tentar fazer alguma coisa com POI. Mas no caso, eu já tenho uma planilha criada, só preciso inserir os dados do meu arquivo TXT nesta planilha, no caso na próxima linha disponível, pois nesta planilha já terá dados mais antigos e não desejo sobrescrevê-los e sim acumular mais informações.

Andre Rosa

Li sim, porém, como não existe um exemplo mostrando mais ou menos o funcionamento dos métodos, pra mim fica um pouco mais difícil para entender, não que eu queira um código pronto, mas pelo menos que direção tomar…, tipo, use tal método para ler seu arquivo e use tal método para que os dados sejam inseridos no excel…tipo assim…

Obrigado,

S

veja esse tópico que criei…
já tem muita coisa que descobri…

B

Valeu Sandro, pode deixar que vou olhar sim…

B

Pessoal,

Eu baixei o POI e adicionei ele no Eclipse como referência de biblioteca.

Mas o que ocorre é que quando tento usar o Workbook wb = new HSSFWorbook(); não está funcionando.

De que maneira eu devo incluir o zip do POI no Eclipse? para que ele reconheça os métodos ?

Obrigado

N

zip?

B

NextUser,

Sim, pelo menos, foi o download que eu baixei do site do Apache POI como ZIP. Eu acredito que tenha que ser um *.JAR, mas no site só encontrei um ZIP.

Você teria o download correto para passar ??

Valeu…

N

vc está fa;ando serio queo não pegou o jar de dentro do zip?

ja teve momentos na minha vida que eu queria ser pedreiro, vc tem isso tb ou nem isso percebe?

S

o que o nextuser tá dizendo é pra vc descompactar o arquivo zip…

B

Sandro,

Com certeza descompactei o arquivo, porém não tinha o JAR. eu encontrei diversas pastas, posso não ter olhado corretamente, mas se lá existe um JAR então vou procurar para poder usá-lo.

N

http://www.apache.org/dyn/closer.cgi/poi/release/bin/poi-bin-3.7-20101029.zip

varios jars… varios

Criado 30 de abril de 2011
Ultima resposta 2 de mai. de 2011
Respostas 12
Participantes 5