Apache poi

Preview:

DESCRIPTION

Palestra apresentada no fisl12 em 02/07/2011

Citation preview

Apache POI

Manipulação de Arquivos com

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

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

Motivação

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

• O que é? • Licença Apache

• Principais Projetos

Fundação Apache

Apache POI

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

• Compound Document Format - OLE2

API de Componentes

API de Componentes

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

• PowerPoint (HSLF+XSLF)

• Outlook (HSMF)

• Visio (HDGF)

• TNEF (HMEF)

• Publisher (HPBF)

Configurações

Configurações

Dependências

OpenXML4J (OOXML)

I/O Streams

OutputStream

InputStream

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

• 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)

Excel (XSSF)

Excel (XSSF)

Excel (XSSF)

Excel (XSSF)

Excel (XSSF)

Word (HWPF + XWPF)

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

• HWPF - Word 97 (-2007)

• XWPF - Word 2007 (.xlsx)

Word (XWPF)

Word (XWPF)

Word (XWPF)

Word (XWPF)

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

PowerPoint (XSLF)

PowerPoint (HSLF)

PowerPoint (HSLF)

PowerPoint (HSLF)

PowerPoint (HSLF)

Outlook (HSMF)

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

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

attachData)

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

Visio (HDGF)

Publisher (HPBF)

Elaboração

Apache POI e outras Linguagens

Apache POI e PHP

Apache POI e PHP

• 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

Apache POI e Ruby

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

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

Apache POI e Ruby

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

Apache POI e Microsoft

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

Patrocínio Platina

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

Patrocínio Ouro

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

Demais Patrocinadores

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

Equipe Atual - 17 pessoas

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

Como participar

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

Apache POI e Maven

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

Perguntas

Cristiano Agosticristiano.agosti@gmail.comhttp://agosti.blog.br @agosti

Luzitan Zancanzancan2@gmail.com

@luzitan

Agradecimento

Universidade do Oeste de Santa CatarinaCampus de Xanxerê

http://www.unoesc.edu.br