54
Apache POI Manipulação de Arquivos com

Apache poi

Embed Size (px)

DESCRIPTION

Palestra apresentada no fisl12 em 02/07/2011

Citation preview

Page 1: Apache poi

Apache POI

Manipulação de Arquivos com

Page 2: Apache poi

Cristiano Agosti - @agosti

Professor da Universidade do Oeste de Santa CatarinaDesenvolvedor JEE Incentivador do uso de Software LivreParticipante do OeSC-livre.org

Luzitan Orso Zancan - @luzitan

Programador linguagens C e JEEIncentivador do uso de Software Livre

Apresentação

Page 3: Apache poi

Agenda• Motivação • Fundação Apache• Apache POI• Streams• Configurações • API Componentes• Exemplos• Integração com PHP e Ruby • Como Participar• Quem utiliza

Page 4: Apache poi

Motivação

Detecção de Plágio em Arquivos http://www.copiaecola.com.br

Page 5: Apache poi

• O que é? • Licença Apache

• Principais Projetos

Fundação Apache

Page 6: Apache poi

Apache POI

• Poor Obfuscation Implementation - POI • Open Office XML - OOXML

• Compound Document Format - OLE2

Page 7: Apache poi

API de Componentes

Page 8: Apache poi

API de Componentes

• Excel (HSSF+XSSF) • Word (HWPF+XWPF)

• PowerPoint (HSLF+XSLF)

• Outlook (HSMF)

• Visio (HDGF)

• TNEF (HMEF)

• Publisher (HPBF)

Page 9: Apache poi

Configurações

Page 10: Apache poi

Configurações

Page 11: Apache poi

Dependências

Page 12: Apache poi

OpenXML4J (OOXML)

Page 13: Apache poi
Page 14: Apache poi
Page 15: Apache poi

I/O Streams

Page 16: Apache poi

OutputStream

Page 17: Apache poi

InputStream

Page 18: Apache poi

Excel (HSSF + XSSF)

• API Java para criação, modificação, leitura e escrita no Microsoft Excel

• HSSF - Excel 97 (-2007)

• XSSF - Excel 2007 (.xlsx)

• http://poi.apache.org/spreadsheet/quick-guide.html

• http://poi.apache.org/spreadsheet/examples.html

Page 19: Apache poi

• Criar workbook, planilha, células, • Trabalhar com diferentes tipos de

células de dados• Interagir sobre linhas e céluas• Pegar o conteúdo de uma célula• Extrair texto• Alinhar células• Trabalhar com bordas• Cores e fundos• Merge de células• Fontes• Criar novas linhas em células• Criar dados no formatado definido

pelo usuário• Ajustar planilha em uma página• Imagens

• Definir em uma planilha: área de impressão, número de páginas no rodapé, selecionar, definir zoom, ajustar linhas

• Criar painéis congelados• Desenhar shapes e graficos 2d• Formatação Condicional• Autofiltros• Objetos Embutidos• Validação de dados• Hiperlinks• Ajustar colunas conforme o

conteúdo• Setar comentários nas células• Nomear intervalos e células• Cabeçalhos e rodapés

Excel (HSSF + XSSF)

Page 20: Apache poi

Excel (XSSF)

Page 21: Apache poi

Excel (XSSF)

Page 22: Apache poi

Excel (XSSF)

Page 23: Apache poi

Excel (XSSF)

Page 24: Apache poi

Excel (XSSF)

Page 25: Apache poi

Word (HWPF + XWPF)

• API Java para criação, modificação, leitura e escrita no Microsoft Word

• HWPF - Word 97 (-2007)

• XWPF - Word 2007 (.xlsx)

Page 26: Apache poi

Word (XWPF)

Page 27: Apache poi

Word (XWPF)

Page 28: Apache poi

Word (XWPF)

Page 29: Apache poi

Word (XWPF)

Page 30: Apache poi

PowerPoint (HSLF+XSLF)

• API Java para criação, modificação, leitura e escrita no Microsoft PowerPoint

• HSLF - Word 97 (-2007) • XSLF - não finalizado

• http://poi.apache.org/slideshow/how-to-shapes.html

Page 31: Apache poi

PowerPoint (XSLF)

Page 32: Apache poi

PowerPoint (HSLF)

Page 33: Apache poi

PowerPoint (HSLF)

Page 34: Apache poi

PowerPoint (HSLF)

Page 35: Apache poi

PowerPoint (HSLF)

Page 36: Apache poi

Outlook (HSMF)

• Implementa manipulação das mensagens no formato do Outlook

• MAPIMessage• getDisplayFrom()• getDisplayTo()• getDisplayCC()• getDisplayBCC()• getSubject()• getTextBody()• getAttachmentFiles() - AttachmentChunks (attachFileName,

attachData)

Page 37: Apache poi

HMEF (TNEF)

• Java API para acessar o Microsoft Transport Neutral Encoding Files (TNEF)

• Manipulação dos arquivos do Outlook e Exchange

• Permite fácil extração dos dados do corpo da mensagem e

anexos • Trabalhar com atributos da mensagem e do corpo

Page 38: Apache poi

Visio (HDGF)

Publisher (HPBF)

Elaboração

Page 39: Apache poi

Apache POI e outras Linguagens

Page 40: Apache poi

Apache POI e PHP

Page 41: Apache poi

Apache POI e PHP

Page 42: Apache poi

• Compilar POI com http://gcc.gnu.org/java • Gerar Ruby wrapper com http://www.swig.org

• http://poi.apache.org/poi-ruby.html

Apache POI e Ruby

Page 43: Apache poi

Apache POI e Ruby

Fonte: http://poi.apache.org/poi-ruby.html

Page 44: Apache poi

Fonte: http://poi.apache.org/poi-ruby.html

Apache POI e Ruby

Page 45: Apache poi

Arian Lashkov (alaskov at lbank.lt)

Fonte: http://poi.apache.org

http://jasperforge.org

Quem utiliza o Apache POI

http://drupal.org

http://nutch.apache.org

Page 46: Apache poi

Apache POI e Microsoft

São US$100 mil por anoFonte: http://meiobit.com/16589/a-necessidade-cria-estranhos-companheiros-de-cama

Page 47: Apache poi

Patrocínio Platina

Fonte: http://www.apache.org/foundation/thanks.html

Page 48: Apache poi

Patrocínio Ouro

Fonte: http://www.apache.org/foundation/thanks.html

Page 49: Apache poi

Demais Patrocinadores

Fonte: http://www.apache.org/foundation/thanks.html

Page 50: Apache poi

Equipe Atual - 17 pessoas

Fonte: http://poi.apache.org/who.html

Page 51: Apache poi

Como participar

• http://svn.apache.org/repos/asf

Page 52: Apache poi

Apache POI e Maven

• http://mvnrepository.com/artifact/org.apache.poi/poi/3.5-beta3

Page 53: Apache poi

Perguntas

Cristiano [email protected]://agosti.blog.br @agosti

Luzitan [email protected]

@luzitan

Page 54: Apache poi

Agradecimento

Universidade do Oeste de Santa CatarinaCampus de Xanxerê

http://www.unoesc.edu.br