Manipulação de Arquivos com

      Apache POI
Apresentação
Cristiano Agosti - @agosti
Professor da Universidade do Oeste de Santa Catarina
Desenvolvedor JEE
Incentivador do uso de Software Livre
Participante do OeSC-livre.org


Luzitan Orso Zancan - @luzitan

Programador linguagens C e JEE
Incentivador do uso de Software Livre
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
Fundação Apache

• O que é?

• Licença Apache

• Principais Projetos
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
Excel (HSSF + XSSF)

• Criar workbook, planilha, células,   • Definir em uma planilha: área de
• Trabalhar com diferentes tipos de      impressão, número de páginas no
  células de dados                       rodapé, selecionar, definir zoom,
• Interagir sobre linhas e céluas        ajustar linhas
• Pegar o conteúdo de uma célula       • Criar painéis congelados
• Extrair texto                        • Desenhar shapes e graficos 2d
• Alinhar células                      • Formatação Condicional
• Trabalhar com bordas                 • Autofiltros
• Cores e fundos                       • Objetos Embutidos
• Merge de células                     • Validação de dados
• Fontes                               • Hiperlinks
• Criar novas linhas em células        • Ajustar colunas conforme o
• Criar dados no formatado definido      conteúdo
  pelo usuário                         • Setar comentários nas células
• Ajustar planilha em uma página       • Nomear intervalos e células
• Imagens                              • Cabeçalhos e rodapés
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
Elaboração


    Visio (HDGF)


    Publisher (HPBF)
Apache POI e outras Linguagens
Apache POI e PHP
Apache POI e PHP
Apache POI e Ruby
• 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




              Fonte: http://poi.apache.org/poi-ruby.html
Apache POI e Ruby




              Fonte: http://poi.apache.org/poi-ruby.html
Quem utiliza o Apache POI



Arian Lashkov
(alaskov at lbank.lt)



                        http://nutch.apache.org




                             http://jasperforge.org
   http://drupal.org
                                      Fonte: http://poi.apache.org
Apache POI e Microsoft




São US$100 mil por ano
Fonte: 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 Agosti
cristiano.agosti@gmail.com
http://agosti.blog.br
@agosti

Luzitan Zancan
zancan2@gmail.com
@luzitan
Agradecimento




     Universidade do Oeste de Santa Catarina
                Campus de Xanxerê
             http://www.unoesc.edu.br

Apache poi