Como criar uma planilha com JXL no Java

Veja um exemplo completo de como criar uma planilha com JXL no Java e automatize processos repetitivos na sua empresa e deixe o trabalho manual de lado.

[ad#texto]

Uma dúvida bem recorrente é como criar uma planilha com JXL no Java (aqui eu já mostro como ler uma planilha do Excel) para automatizar processos para criação de planilhas do Excel, com a API JExcel, antes de utilizar o exemplo não se esqueça de fazer o download da página do projeto.

Como criar uma planilha com JXL no Java
Como criar uma planilha com JXL no Java

A principio toda a tecnologia do Excel é privada e a detentora dos direitos é a Microsoft, porém através de engenharia reversa já existe há alguns anos formas alternativas de editar e/ou visualizar arquivos do Excel assim como dos demais programas da suíte Office.

Um exemplo disso são as suítes alternativas de escritório como o Libreoffice, que é distribuído na forma de freeware e tem um funcionamento muito estável e é compatível com várias versões recentes do Microsoft Office.

A partir deste conhecimento é possível que API´s sejam desenvolvidas permitindo trabalhar com arquivos do Microsoft Office e assim fica simples para mostrar como criar uma planilha com JXL no Java.

Como criar uma planilha com JXL no Java: um exemplo prático

package br.com.gualda.teste.tutorial.jexcel;
 
import java.io.File;
import java.io.IOException;
import java.util.Locale;
 
import jxl.CellView;
import jxl.Workbook;
import jxl.WorkbookSettings;
import jxl.write.Formula;
import jxl.write.Label;
import jxl.write.Number;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;
 
public class TutorialJExcel {
 
private WritableCellFormat timesBoldUnderline;
private WritableCellFormat times;
private String inputArquivo;

// Exemplo de Como criar uma planilha com JXL no Java
public void setOutputFile(String inputArquivo) {
this.inputArquivo = inputArquivo;
}
 
// Método responsável por fazer a escrita, a inserção dos dados na planilha
public void insere() throws IOException, WriteException {
// Cria um novo arquivo
File arquivo = new File(inputArquivo);
WorkbookSettings wbSettings = new WorkbookSettings();
 
wbSettings.setLocale(new Locale("pt", "BR"));
 
WritableWorkbook workbook = Workbook.createWorkbook(arquivo, wbSettings);
// Define um nome para a planilha
workbook.createSheet("Jexcel", 0);
WritableSheet excelSheet = workbook.getSheet(0);
criaLabel(excelSheet);
defineConteudo(excelSheet);
 
workbook.write();
workbook.close();
}
 
// Método responsável pela definição das labels
private void criaLabel(WritableSheet sheet)
throws WriteException {
// Cria o tipo de fonte como TIMES e tamanho
WritableFont times10pt = new WritableFont(WritableFont.TIMES, 10);
 
// Define o formato da célula
times = new WritableCellFormat(times10pt);
 
// Efetua a quebra automática das células
times.setWrap(true);
 
// Cria a fonte em negrito com underlines
WritableFont times10ptBoldUnderline = new WritableFont(
WritableFont.ARIAL, 10, WritableFont.BOLD, false);
//UnderlineStyle.SINGLE);
timesBoldUnderline = new WritableCellFormat(times10ptBoldUnderline);
 
// Efetua a quebra automática das células
timesBoldUnderline.setWrap(true);
 
CellView cv = new CellView();
cv.setFormat(times);
cv.setFormat(timesBoldUnderline);
cv.setAutosize(true);
 
// Escreve os cabeçalhos
addCaption(sheet, 0, 0, "Coluna 1");
addCaption(sheet, 1, 0, "Coluna 2");
addCaption(sheet, 2, 0, "Coluna 3");
}
 
private void defineConteudo(WritableSheet sheet) throws WriteException,
RowsExceededException {
// Escreve alguns números
for (int i = 1; i < 10; i++) {
// Primeira coluna
addNumero(sheet, 0, i, i + 10);
// Segunda coluna
addNumero(sheet, 1, i, i * i);
// Terceira coluna
addNumero(sheet, 2, i, 10 - i);
}
 
// Efetua a soma das colunas criadas anteriormente
StringBuffer buf = new StringBuffer();
buf.append("SUM(A2:A10)");
Formula f = new Formula(0, 10, buf.toString());
sheet.addCell(f);
buf = new StringBuffer();
buf.append("SUM(B2:B10)");
f = new Formula(1, 10, buf.toString());
sheet.addCell(f);
buf = new StringBuffer();
buf.append("SUM(C2:C10)");
f = new Formula(2, 10, buf.toString());
sheet.addCell(f);
 
// Agora vamos inserir algum texto nas colunas
for (int i = 12; i < 20; i++) {
// Primeira coluna
addLabel(sheet, 0, i, "JExcel " + i);
// Segunda coluna
addLabel(sheet, 1, i, "Tutorial");
// Terceira coluna
addLabel(sheet, 2, i, "Exemplo" + (10 - i));
}
}
 
// Adiciona cabecalho
private void addCaption(WritableSheet planilha, int coluna, int linha, String s)
throws RowsExceededException, WriteException {
Label label;
label = new Label(coluna, linha, s, timesBoldUnderline);
planilha.addCell(label);
}
 
private void addNumero(WritableSheet planilha, int coluna, int linha,
Integer integer) throws WriteException, RowsExceededException {
Number numero;
numero = new Number(coluna, linha, integer, times);
planilha.addCell(numero);
}
 
private void addLabel(WritableSheet planilha, int coluna, int linha, String s)
throws WriteException, RowsExceededException {
Label label;
label = new Label(coluna, linha, s, times);
planilha.addCell(label);
}
 
public static void main(String[] args) {
TutorialJExcel exemplo = new TutorialJExcel();
// Define o caminho e nome do arquivo que será criado
exemplo.setOutputFile("/tmp/ExemploJExcel.xls");
try {
exemplo.insere();
} catch (WriteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out
.println("Agora, vá até a pasta definida anteriormente e verifique o resultado em: /tmp/ExemploJExcel.xls ");
}
 
}

O código é bem completo e observando os comentários dá para entender claramente o que está sendo feito.

Agora você já sabe como criar uma planilha com JXL no Java, qualquer dúvida é só utilizar os comentários abaixo.

Como criar uma planilha com JXL no Java é mais fácil, embora o código seja um pouco extenso, ele cobre todos os procedimentos mais comuns que precisamos ao criar uma planilha.

Fonte: brunogualda

Petter Rafael

Desenvolvedor Web atua com as tecnologias Java e PHP apoiadas pelos bancos de dados Oracle e MySQL. Além dos ambientes de desenvolvimento acima possuiu amplo conhecimento em servidores Apache/Tomcat, Photoshop, Arte & Foto, Flash e mais uma dezena de ferramentas e tecnologias emergentes. Atualmente colabora com o Viablog escrevendo sobre programação e tecnologia.
ViamaisBLOG
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.