SlideShare uma empresa Scribd logo
JETT Exporte Excel do jeito que seu cliente sempre sonhou 
Emmanuel Neri
Emmanuel Neri 
• Análise e Desenvolvimento de Sistema - Unipar 
• Especialista em Engenharia de Software - PUCPR 
• Mestrando em Desenvolvimento de Tecnologias 
• Linha de Pesquisa : Arquitetura de Software 
! 
! 
• Desenvolvedor java desde de 2010 
• Atualmente desenvolvedor Java na TecSinapse 
emmanuelnerisouza@gmail.com 
@emanu_neri 
github/emmanuelneri
• Exportando dados para Excel 
• O que é Jett ? 
• Porque utilizar Jett ? 
• Como utilizar o Jett 
• Utilizando Jett 
• Quando utilizar Jett ? 
• Tags 
• forEach 
• span 
• style 
• formula 
• Outras Tags 
• Customizando Tags 
• Outras funcionalidades
Exportando dados para 
Excel 
Complexo ? Demorado ? 
• POI 
• JETT 
• JExcelApi 
• JXL 
• JXLS 
• JExcel
O que é Jett ? 
• Gerador de Excel a partir de templates 
• Facilidade na exportação 
• Agilidade na exportação 
• Baseado em POI 
• Baseado em Apache Commons JEXL 
• Versão atual 0.8.0 Beta 
• Licença GNU 
• Principal responsável Rangy Gettman 
• http://jett.sourceforge.net/ 
• http://jett.sourceforge.net/apidocs/index.html 
• http://sourceforge.net/p/jett/discussion/general
Porque utilizar Jett ?
Porque utilizar Jett ?
Como utilizar o Jett 
Basicamente 3 passos : 
• Criar arquivo Excel com tags do Jett 
• Criar um map de dados 
• Passar o arquivo e o map para a API do Jett
Utilizando Jett 
Dependências: 
• JEXL 
• org.apache.commons 
• commons-jexl 
! 
• JETT-CORE 
• net.sf.jett 
• jett-core
Utilizando Jett 
Criando template Excel:
Utilizando Jett 
Criando map de valores
Utilizando Jett 
Exportando para Excel
Utilizando Jett 
JEXL Expressions 
• ${valor} 
• ${map[‘nome’]} 
• ${lista(0)} 
• ${lista.size()} 
• ${objeto.nome}
Utilizando Jett 
POI em templates Excel: 
• Cell 
• ${cell.rowIndex} 
• ${cell.columnIndex} 
• Sheet 
• ${sheet.getFooter().setLeft(“by Emmanuel Neri”)} 
• Workbook 
• ${workbook.numberOfSheets}
Quando utilizar Jett ? 
Sempre ? 
Em novas 
exportações ? 
Devo mudar tudo para Jett ?
Tags - forEach
Tags - forEach
Tags - forEach
Tags - style
Tags - span
Tags - formula
Tags - Outras 
• if 
• test / then / else / elseAction 
• null 
• text 
• hyperlink 
• type / address / value 
• multiForEach 
• collections / vars / indexVar / limit
Customizando Tags
Customizando Tags
Customizando Tags
Customizando Tags
Outras funcionalidades 
• Gráficos 
• JDBC 
• Listeners 
• Cell 
• Sheet 
• Tag 
• Tag Loop 
• Register Functions
Dúvidas ?
Obrigado!! 
github/emmanuelneri/soujava-jett 
emmanuelnerisouza@gmail.com

Mais conteúdo relacionado

Semelhante a Jett: Exporte Excel do jeito que seu cliente sempre sonhou

Apresentação - HTML5 e CSS3 Fabrica do Design
Apresentação - HTML5 e CSS3 Fabrica do DesignApresentação - HTML5 e CSS3 Fabrica do Design
Apresentação - HTML5 e CSS3 Fabrica do Design
Iuri Andreazza
 
TDC2016SP - O que há de novo no Entity Framework Core 1.0
TDC2016SP - O que há de novo no Entity Framework Core 1.0TDC2016SP - O que há de novo no Entity Framework Core 1.0
TDC2016SP - O que há de novo no Entity Framework Core 1.0
tdc-globalcode
 
Entity Framework 7.0 a.k.a Entity Core 1.0
Entity Framework 7.0 a.k.a Entity Core 1.0Entity Framework 7.0 a.k.a Entity Core 1.0
Entity Framework 7.0 a.k.a Entity Core 1.0
Caliel Costa
 
Entity Framework 4, Novas funcionalidades
Entity Framework 4, Novas funcionalidadesEntity Framework 4, Novas funcionalidades
Entity Framework 4, Novas funcionalidades
C. Augusto Proiete
 
Net beans 7.4 Funções e Atalhos
Net beans 7.4 Funções e AtalhosNet beans 7.4 Funções e Atalhos
Net beans 7.4 Funções e Atalhos
andreandrade17
 
TDC2016POA | Trilha .NET - .NET Entity Core 1.0
TDC2016POA | Trilha .NET - .NET Entity Core 1.0TDC2016POA | Trilha .NET - .NET Entity Core 1.0
TDC2016POA | Trilha .NET - .NET Entity Core 1.0
tdc-globalcode
 
Python para análise de dados
Python para análise de dadosPython para análise de dados
Python para análise de dadosCaique Lima
 
Anatomia do JSF – JavaServer Faces
Anatomia do JSF – JavaServer FacesAnatomia do JSF – JavaServer Faces
Anatomia do JSF – JavaServer Faces
cejug
 
jQuery com Richfaces
jQuery com RichfacesjQuery com Richfaces
jQuery com Richfaces
Cezinha Cezer
 
Python - Programando em alto nível
Python - Programando em alto nívelPython - Programando em alto nível
Python - Programando em alto nível
Igor Sobreira
 

Semelhante a Jett: Exporte Excel do jeito que seu cliente sempre sonhou (11)

Apresentação - HTML5 e CSS3 Fabrica do Design
Apresentação - HTML5 e CSS3 Fabrica do DesignApresentação - HTML5 e CSS3 Fabrica do Design
Apresentação - HTML5 e CSS3 Fabrica do Design
 
TDC2016SP - O que há de novo no Entity Framework Core 1.0
TDC2016SP - O que há de novo no Entity Framework Core 1.0TDC2016SP - O que há de novo no Entity Framework Core 1.0
TDC2016SP - O que há de novo no Entity Framework Core 1.0
 
Entity Framework 7.0 a.k.a Entity Core 1.0
Entity Framework 7.0 a.k.a Entity Core 1.0Entity Framework 7.0 a.k.a Entity Core 1.0
Entity Framework 7.0 a.k.a Entity Core 1.0
 
Entity Framework 4, Novas funcionalidades
Entity Framework 4, Novas funcionalidadesEntity Framework 4, Novas funcionalidades
Entity Framework 4, Novas funcionalidades
 
AppPrint
AppPrintAppPrint
AppPrint
 
Net beans 7.4 Funções e Atalhos
Net beans 7.4 Funções e AtalhosNet beans 7.4 Funções e Atalhos
Net beans 7.4 Funções e Atalhos
 
TDC2016POA | Trilha .NET - .NET Entity Core 1.0
TDC2016POA | Trilha .NET - .NET Entity Core 1.0TDC2016POA | Trilha .NET - .NET Entity Core 1.0
TDC2016POA | Trilha .NET - .NET Entity Core 1.0
 
Python para análise de dados
Python para análise de dadosPython para análise de dados
Python para análise de dados
 
Anatomia do JSF – JavaServer Faces
Anatomia do JSF – JavaServer FacesAnatomia do JSF – JavaServer Faces
Anatomia do JSF – JavaServer Faces
 
jQuery com Richfaces
jQuery com RichfacesjQuery com Richfaces
jQuery com Richfaces
 
Python - Programando em alto nível
Python - Programando em alto nívelPython - Programando em alto nível
Python - Programando em alto nível
 

Mais de Emmanuel Neri

Arquitetura orientada a eventos
Arquitetura orientada a eventosArquitetura orientada a eventos
Arquitetura orientada a eventos
Emmanuel Neri
 
Iniciando com Docker
Iniciando com DockerIniciando com Docker
Iniciando com Docker
Emmanuel Neri
 
Arquitetura reativa, a solução para os microserviços?
Arquitetura reativa,  a solução para os microserviços?Arquitetura reativa,  a solução para os microserviços?
Arquitetura reativa, a solução para os microserviços?
Emmanuel Neri
 
Preparando nossas aplicações para falharem com feature toggle e configurações...
Preparando nossas aplicações para falharem com feature toggle e configurações...Preparando nossas aplicações para falharem com feature toggle e configurações...
Preparando nossas aplicações para falharem com feature toggle e configurações...
Emmanuel Neri
 
Preparando nossa aplicação para falhar com feature toggle e configurações dis...
Preparando nossa aplicação para falhar com feature toggle e configurações dis...Preparando nossa aplicação para falhar com feature toggle e configurações dis...
Preparando nossa aplicação para falhar com feature toggle e configurações dis...
Emmanuel Neri
 
Combatendo code smells em Java
Combatendo code smells em Java Combatendo code smells em Java
Combatendo code smells em Java
Emmanuel Neri
 
Configurações distribuídas com Spring Cloud Config
Configurações distribuídas com Spring Cloud ConfigConfigurações distribuídas com Spring Cloud Config
Configurações distribuídas com Spring Cloud Config
Emmanuel Neri
 
Lidando com desafios dos microserviços com a stack Spring Cloud Netflix
Lidando com desafios dos microserviços com a stack Spring Cloud NetflixLidando com desafios dos microserviços com a stack Spring Cloud Netflix
Lidando com desafios dos microserviços com a stack Spring Cloud Netflix
Emmanuel Neri
 
Trabalho Remoto
Trabalho RemotoTrabalho Remoto
Trabalho Remoto
Emmanuel Neri
 
O Impacto da arquitetura de Micro Serviços nas soluções de software
O Impacto da arquitetura de Micro Serviços nas soluções de softwareO Impacto da arquitetura de Micro Serviços nas soluções de software
O Impacto da arquitetura de Micro Serviços nas soluções de software
Emmanuel Neri
 
A Cultura do Home Office
A Cultura do Home OfficeA Cultura do Home Office
A Cultura do Home Office
Emmanuel Neri
 
A trilogia Spring MVC + Spring Data + AngularJS
A trilogia  Spring MVC + Spring Data + AngularJSA trilogia  Spring MVC + Spring Data + AngularJS
A trilogia Spring MVC + Spring Data + AngularJS
Emmanuel Neri
 
Criando uma arquitetura escalável para processamento de arquivos com micro s...
Criando uma arquitetura escalável para processamento de arquivos com micro s...Criando uma arquitetura escalável para processamento de arquivos com micro s...
Criando uma arquitetura escalável para processamento de arquivos com micro s...
Emmanuel Neri
 
Microservices: Mais que uma arquitetura de software, uma filosofia de desenvo...
Microservices: Mais que uma arquitetura de software, uma filosofia de desenvo...Microservices: Mais que uma arquitetura de software, uma filosofia de desenvo...
Microservices: Mais que uma arquitetura de software, uma filosofia de desenvo...
Emmanuel Neri
 
Aplicação da arquitetura de micro serviços em softwares corporativos
Aplicação da arquitetura de micro serviços em softwares corporativosAplicação da arquitetura de micro serviços em softwares corporativos
Aplicação da arquitetura de micro serviços em softwares corporativos
Emmanuel Neri
 
Análise e Design - RUP
Análise e Design - RUPAnálise e Design - RUP
Análise e Design - RUP
Emmanuel Neri
 
Solução técnica - CMMI nível 3
Solução técnica - CMMI nível 3Solução técnica - CMMI nível 3
Solução técnica - CMMI nível 3
Emmanuel Neri
 
Jenkins
JenkinsJenkins
Jenkins
Emmanuel Neri
 

Mais de Emmanuel Neri (18)

Arquitetura orientada a eventos
Arquitetura orientada a eventosArquitetura orientada a eventos
Arquitetura orientada a eventos
 
Iniciando com Docker
Iniciando com DockerIniciando com Docker
Iniciando com Docker
 
Arquitetura reativa, a solução para os microserviços?
Arquitetura reativa,  a solução para os microserviços?Arquitetura reativa,  a solução para os microserviços?
Arquitetura reativa, a solução para os microserviços?
 
Preparando nossas aplicações para falharem com feature toggle e configurações...
Preparando nossas aplicações para falharem com feature toggle e configurações...Preparando nossas aplicações para falharem com feature toggle e configurações...
Preparando nossas aplicações para falharem com feature toggle e configurações...
 
Preparando nossa aplicação para falhar com feature toggle e configurações dis...
Preparando nossa aplicação para falhar com feature toggle e configurações dis...Preparando nossa aplicação para falhar com feature toggle e configurações dis...
Preparando nossa aplicação para falhar com feature toggle e configurações dis...
 
Combatendo code smells em Java
Combatendo code smells em Java Combatendo code smells em Java
Combatendo code smells em Java
 
Configurações distribuídas com Spring Cloud Config
Configurações distribuídas com Spring Cloud ConfigConfigurações distribuídas com Spring Cloud Config
Configurações distribuídas com Spring Cloud Config
 
Lidando com desafios dos microserviços com a stack Spring Cloud Netflix
Lidando com desafios dos microserviços com a stack Spring Cloud NetflixLidando com desafios dos microserviços com a stack Spring Cloud Netflix
Lidando com desafios dos microserviços com a stack Spring Cloud Netflix
 
Trabalho Remoto
Trabalho RemotoTrabalho Remoto
Trabalho Remoto
 
O Impacto da arquitetura de Micro Serviços nas soluções de software
O Impacto da arquitetura de Micro Serviços nas soluções de softwareO Impacto da arquitetura de Micro Serviços nas soluções de software
O Impacto da arquitetura de Micro Serviços nas soluções de software
 
A Cultura do Home Office
A Cultura do Home OfficeA Cultura do Home Office
A Cultura do Home Office
 
A trilogia Spring MVC + Spring Data + AngularJS
A trilogia  Spring MVC + Spring Data + AngularJSA trilogia  Spring MVC + Spring Data + AngularJS
A trilogia Spring MVC + Spring Data + AngularJS
 
Criando uma arquitetura escalável para processamento de arquivos com micro s...
Criando uma arquitetura escalável para processamento de arquivos com micro s...Criando uma arquitetura escalável para processamento de arquivos com micro s...
Criando uma arquitetura escalável para processamento de arquivos com micro s...
 
Microservices: Mais que uma arquitetura de software, uma filosofia de desenvo...
Microservices: Mais que uma arquitetura de software, uma filosofia de desenvo...Microservices: Mais que uma arquitetura de software, uma filosofia de desenvo...
Microservices: Mais que uma arquitetura de software, uma filosofia de desenvo...
 
Aplicação da arquitetura de micro serviços em softwares corporativos
Aplicação da arquitetura de micro serviços em softwares corporativosAplicação da arquitetura de micro serviços em softwares corporativos
Aplicação da arquitetura de micro serviços em softwares corporativos
 
Análise e Design - RUP
Análise e Design - RUPAnálise e Design - RUP
Análise e Design - RUP
 
Solução técnica - CMMI nível 3
Solução técnica - CMMI nível 3Solução técnica - CMMI nível 3
Solução técnica - CMMI nível 3
 
Jenkins
JenkinsJenkins
Jenkins
 

Jett: Exporte Excel do jeito que seu cliente sempre sonhou