SlideShare uma empresa Scribd logo
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)
Apache poi
Apache poi
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

Mais conteúdo relacionado

PDF
noSQL com CouchDb e PHP
PPTX
Novidades do elasticsearch 2.0 e como usá-lo com PHP
PDF
Workshop de ELK - EmergiNet
PDF
Apache CouchDB
PDF
Apache Poi Recipes
PPTX
Apache poi tutorial
PDF
Introdução ao Desenvolvimemto de Jogos com Unity
PPTX
Introdução ao desenvolvimento de jogos 2d com Unit 3d
noSQL com CouchDb e PHP
Novidades do elasticsearch 2.0 e como usá-lo com PHP
Workshop de ELK - EmergiNet
Apache CouchDB
Apache Poi Recipes
Apache poi tutorial
Introdução ao Desenvolvimemto de Jogos com Unity
Introdução ao desenvolvimento de jogos 2d com Unit 3d

Semelhante a Apache poi (20)

PDF
Tecnologias para mineração de dados nas nuvens
PDF
Slide Aula - Curso CakePHP
KEY
Projeto Octopus - Database Sharding para ActiveRecord
PDF
Conexão Java 2006: Introdução ao Ajax
PDF
LabMM4 (T10 - 12/13) - Tecnologias server-side - PHP
PPTX
No sql Orientado a documento
PDF
Web 3.0
PPT
Mongo Db - PHP Day Workshop
PDF
Aula9-Spark-Básico sematix com dataframes
PPTX
Seminário: PHP
PDF
Visualização de dados
PDF
Slides .pptx.pdf
PPTX
Performance Web com ASP.NET MVC
PDF
Palestra DataFlow - II São Paulo Perl Workshop
PDF
Python mudando o modo de desenvolver para a web - Marcos Daniel Petry
PDF
Python mudando o modo de desenvolver para a internet
PPTX
Arquitetura SQL Server
PPTX
MEO Cloud - Python Lisbon Meetup
ODP
Processos iniciais do mapeamento OR
PDF
SQLite: um motor de bases de dados relacional open source
Tecnologias para mineração de dados nas nuvens
Slide Aula - Curso CakePHP
Projeto Octopus - Database Sharding para ActiveRecord
Conexão Java 2006: Introdução ao Ajax
LabMM4 (T10 - 12/13) - Tecnologias server-side - PHP
No sql Orientado a documento
Web 3.0
Mongo Db - PHP Day Workshop
Aula9-Spark-Básico sematix com dataframes
Seminário: PHP
Visualização de dados
Slides .pptx.pdf
Performance Web com ASP.NET MVC
Palestra DataFlow - II São Paulo Perl Workshop
Python mudando o modo de desenvolver para a web - Marcos Daniel Petry
Python mudando o modo de desenvolver para a internet
Arquitetura SQL Server
MEO Cloud - Python Lisbon Meetup
Processos iniciais do mapeamento OR
SQLite: um motor de bases de dados relacional open source
Anúncio

Mais de Cristiano Agosti (6)

PDF
Apresentação Tdc2015 - Trilha Java
PDF
Vraptor 3
PDF
Reaproveitamento de código com Generics
PDF
03 jax-ws
PDF
Portal de Colaboração Social
PDF
Jogo para dispositivos móveis
Apresentação Tdc2015 - Trilha Java
Vraptor 3
Reaproveitamento de código com Generics
03 jax-ws
Portal de Colaboração Social
Jogo para dispositivos móveis
Anúncio

Último (19)

PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PPTX
Aula 18 - Manipulacao De Arquivos python
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PDF
Aula04-Academia Heri- Tecnologia Geral 2025
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PDF
Apple Pippin Uma breve introdução. - David Glotz
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PDF
Processos na gestão de transportes, TM100 Col18
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Custos e liquidação no SAP Transportation Management, TM130 Col18
Aula 18 - Manipulacao De Arquivos python
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
COBITxITIL-Entenda as diferença em uso governança TI
Aula04-Academia Heri- Tecnologia Geral 2025
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Apple Pippin Uma breve introdução. - David Glotz
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Processos na gestão de transportes, TM100 Col18
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Gestão de transportes básica no SAP S/4HANA, S4611 Col20

Apache poi

  • 1. Manipulação de Arquivos com Apache POI
  • 2. 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
  • 3. Agenda • Motivação • Fundação Apache • Apache POI • Streams • Configurações • API Componentes • Exemplos • Integração com PHP e Ruby • Como Participar • Quem utiliza
  • 4. Motivação Detecção de Plágio em Arquivos http://www.copiaecola.com.br
  • 5. Fundação Apache • O que é? • Licença Apache • Principais Projetos
  • 6. Apache POI • Poor Obfuscation Implementation - POI • Open Office XML - OOXML • Compound Document Format - OLE2
  • 8. API de Componentes • Excel (HSSF+XSSF) • Word (HWPF+XWPF) • PowerPoint (HSLF+XSLF) • Outlook (HSMF) • Visio (HDGF) • TNEF (HMEF) • Publisher (HPBF)
  • 18. 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
  • 19. 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
  • 25. Word (HWPF + XWPF) • API Java para criação, modificação, leitura e escrita no Microsoft Word • HWPF - Word 97 (-2007) • XWPF - Word 2007 (.xlsx)
  • 30. 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
  • 36. Outlook (HSMF) • Implementa manipulação das mensagens no formato do Outlook • MAPIMessage • getDisplayFrom() • getDisplayTo() • getDisplayCC() • getDisplayBCC() • getSubject() • getTextBody() • getAttachmentFiles() - AttachmentChunks (attachFileName, attachData)
  • 37. 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
  • 38. Elaboração Visio (HDGF) Publisher (HPBF)
  • 39. Apache POI e outras Linguagens
  • 42. 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
  • 43. Apache POI e Ruby Fonte: http://poi.apache.org/poi-ruby.html
  • 44. Apache POI e Ruby Fonte: http://poi.apache.org/poi-ruby.html
  • 45. 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
  • 46. Apache POI e Microsoft São US$100 mil por ano Fonte: http://meiobit.com/16589/a-necessidade-cria-estranhos-companheiros-de- cama
  • 47. Patrocínio Platina Fonte: http://www.apache.org/foundation/thanks.html
  • 48. Patrocínio Ouro Fonte: http://www.apache.org/foundation/thanks.html
  • 49. Demais Patrocinadores Fonte: http://www.apache.org/foundation/thanks.html
  • 50. Equipe Atual - 17 pessoas Fonte: http://poi.apache.org/who.html
  • 52. Apache POI e Maven • http://mvnrepository.com/artifact/org.apache.poi/poi/3.5- beta3
  • 54. Agradecimento Universidade do Oeste de Santa Catarina Campus de Xanxerê http://www.unoesc.edu.br