sexta-feira, 11 de fevereiro de 2011

Utilizando jExcelAPI


JExcel é uma biblioteca para integração do Microsoft Excel para aplicações Java .Com esta biblioteca você possui classes que nos fornecem funções para a criação, escrita e leitura de arquivos para o excel em tempo real. A vantagem é que dependendo da aplicação que desejamos não necessitamos de um banco de dados já que no caso seria a propria planilha o armazenamento das informações que queremos. A plataforma requerida é a JVM (Java Virtual Machine) que significa que o código desenvolvido com JExcel pode ser executado em diferentes sistemas operacionais sem nenhuma modificação. O exemplo a seguir é uma aplicação que cria um novo documento em excel e escreve os dados em diferentes folhas deste.
   1: import java.io.*;
   2: import jxl.*;
   3: import java.util.*;
   4: import jxl.Workbook;
   5: import jxl.write.DateFormat;
   6: import jxl.write.Number;
   7:  
   8: import jxl.write.*;
   9: import java.text.SimpleDateFormat;
  10:  
  11: class  create
  12: {
  13:   public static void main(String[] args) 
  14:   {
  15:     try
  16:     {
  17:       String filename = "entrada.xls";
  18:       WorkbookSettings ws = new WorkbookSettings();
  19:       ws.setLocale(new Locale("en", "EN"));
  20:       WritableWorkbook workbook = 
  21:         Workbook.createWorkbook(new File(filename), ws);
  22:       WritableSheet s = workbook.createSheet("Folha1", 0);
  23:       WritableSheet s1 = workbook.createSheet("Folha1", 0);
  24:       writeDataSheet(s);
  25:       writeImageSheet(s1);
  26:       workbook.write();
  27:       workbook.close();      
  28:     }
  29:     catch (IOException e)
  30:     {
  31:       e.printStackTrace();
  32:     }
  33:     catch (WriteException e)
  34:     {
  35:       e.printStackTrace();
  36:     }
  37:   }
  38:  
  39:   private static void writeDataSheet(WritableSheet s) 
  40:     throws WriteException
  41:   {
  42:  
  43:     /* Formata a fonte */
  44:     WritableFont wf = new WritableFont(WritableFont.ARIAL, 
  45:       10, WritableFont.BOLD);
  46:     WritableCellFormat cf = new WritableCellFormat(wf);
  47:     cf.setWrap(true);
  48:  
  49:     /* Cria um label e escreve a data em uma célula da folha*/
  50:     Label l = new Label(0,0,"Data",cf);
  51:     s.addCell(l);
  52:     WritableCellFormat cf1 = 
  53:       new WritableCellFormat(DateFormats.FORMAT9);
  54:  
  55:     DateTime dt = 
  56:       new DateTime(0,1,new Date(), cf1, DateTime.GMT);
  57:  
  58:     s.adCell(dt);
  59:     
  60:     /* Cria um label e escreve um float numver em uma célula da folha*/
  61:     l = new Label(2,0,"Float", cf);
  62:     s.addCell(l);
  63:     WritableCellFormat cf2 = new WritableCellFormat(NumberFormats.FLOAT);
  64:     Number n = new Number(2,1,3.1415926535,cf2);
  65:     s.addCell(n);
  66:  
67: n = new Number(2,2,-3.1415926535, cf2);
  68:     s.addCell(n);
  69:  
  70:     /* Cria um label e escreve um float number acima de 3 decimais 

  71:        em uma célula da folha*/
  72:     l = new Label(3,0,"3dps",cf);
  73:     s.addCell(l);
  74:     NumberFormat dp3 = new NumberFormat("#.###");
  75:     WritableCellFormat dp3cell = new WritableCellFormat(dp3);
  76:     n = new Number(3,1,3.1415926535,dp3cell);
  77:     s.addCell(n);
  78:  
  79:     /* Cria um label e adiciona 2 células na folha*
  80:     l = new Label(4, 0, "Add 2 cells",cf);
  81:     s.addCell(l);
  82:     n = new Number(4,1,10);
  83:     s.addCell(n);
  84:     n = new Number(4,2,16);
  85:     s.addCell(n);
  86:     Formula f = new Formula(4,3, "E1+E2");
  87:     s.addCell(f);
  88:  
  89:     /* Cria um Label e mulpiplica o valor de uma célula da folha por 2 */
  90:     l = new Label(5,0, "Multiplica por 2",cf);
  91:     s.addCell(l);
  92:     n = new Number(5,1,10);
  93:     s.addCell(n);
  94:     f = new Formula(5,2, "F1 * 3");
  95:     s.addCell(f);
  96:  
  97:     /* Cria um Label e divide o valor de uma célula da folha por 2.5 */
  98:     l = new Label(6,0, "Divide por 2.5",cf);
  99:     s.addCell(l);
 100:     n = new Number(6,1, 12);
 101:     s.addCell(n);
 102:     f = new Formula(6,2, "F1/2.5");
 103:     s.addCell(f);
 104:   }
 105:  
 106:   private static void writeImageSheet(WritableSheet s) 
 107:     throws WriteException
 108:   {
 109:     /* Cria um label e escreve uma imagem em uma célula da folha*/    
 110:     Label l = new Label(0, 0, "Imagem");
 111:     s.addCell(l);
 112:     WritableImage wi = new WritableImage(0, 3, 5, 7, new File("imagem.png"));
 113:     s.addImage(wi);
 114:  
 115:     /* Cria um label e escreve hyperlink em uma célula da folha*/
 116:     l = new Label(0,15, "HYPERLINK");
 117:     s.addCell(l);
 118:     Formula f = new Formula(1, 15, 
 119:       "DevMedia(\"http://www.devmedia.com.br\", "+
 120:       "\"Portal DevMedia\")");
 121:     s.addCell(f);
 122:     
 123:     }
 124: }

Download : Download Fonte do Código exemplo : How-to-create-an-excel-file Este é o guide do site oficial : JExcel-PGuide Tutorial: Tutorial

0 comentários:

Postar um comentário