Importação Excel (Checkbox)
22/11/2017 11:17
1
Bom dia pessoal,

estou fazendo uma importação usando Apache Poi no Grails. Mas o problema é que no meu arquivo excel existem campos do tipo checkbox (aqueles criados com o form controls).

Não localizei nenhuma função no Apache Poi que consiga recuperar esse valor. Alguém conhece? Ou indica outra forma de importar esse arquivo?

.
Tags: Grails excel apache-poi JExcel


0
Oi Victor,

eu gero este tipo de arquivo com POI há muito tempo: confesso que nunca vi uma situação na qual isto fosse necessário. Aí fiquei curioso e resolvi consultar a API do POI.
Encontrei algo que talvez te ajude: https://poi.apache.org/apidocs/org/apache/poi/hwpf/model/package-summary.html

Dá uma olhada na classe FFData. Talvez seja o que você precisa. Nunca usei, mas pelo menos pelo que diz na documentação, parece ser justamente o que você precisa.
Depois nos conte aqui se funcionou? Fiquei curioso!


0
Pois é, no meu caso o problema é que eu tenho que realizar uma importação, e o padrão de arquivo (que já existe) está cheio desses checkboxes...
Só se eu falar que não é viável e forçar uma mudança no padrão de arquivos do cliente.  Mas ainda nem visualizei uma forma simples de importar isso. Talvez substituindo cada quadrado de checkbox por uma célula do excel... Não sei, vou ver...
De qualquer fora vou dar uma olhada e tentar fazer essa importação com esse FFData ou outro... Depois comento.
Segue uma imagem de exemplo de uma parte do arquivo:



0
Se for um arquivo no formato XLSX você vai ter um pouco mais de sorte, pois é um padrão aberto se não me engano.
Se for o xls antigo, entretanto, a coisa vai ficar bem pior pro seu lado, pois é um formato completamente fechado.


0
Hi Kico esse FFData que você mencionou é do hwpf (Documentos Word). Sigo pesquisando algo que faça o serviço rs.

Sim é XLSX!


0
Foi mal!


0
Tranquilo Kico.

Achei uma solução bem simples que me atende. Vou compartilhar aqui.

É possível realizar um link do checkbox com uma célula do excel. Quando esse checkbox for acionado, essa célula receberá o valor de TRUE para marcado ou FALSE para desmarcado. Aí basta recuperar o valor de cada checkbox nessa célula específica (esse valor pode ser ocultado de várias foras, por exemplo ocultando a coluna ou botando o texto com a mesma cor de fundo, etc).

Para fazer esse link no checkbox do ActiveX Control:
1- Vá no menu Developer (Em alguns casos é necessário habilitar esse menu)
2- Clicar em Design Mode
3- Botão direito no checkbox
4- Propriedades
5- Alterar o valor do atributo LinkedCell com o valor da célula específica
Exemplo:


Para fazer esse link no checkbox do Forms Control:
1- Botão direito no checkbox
2- Opção Format Control
3- Aba Control
4- Alterar o valor do atributo Cell Link com o valor da célula específica
Exemplo:
?

No Grails, um exemplo de método que recupera o arquivo importado e imprime o valor de um checkbox (recuperando a cell que foi usada no link):

def upload() {

def file = request.getFile('excelFile')

if(!file.empty) {

def workbook = new XSSFWorkbook(file.getInputStream())
def sheet = workbook.getSheetAt(0)

CellReference cr = new CellReference("D30")
XSSFRow row = sheet.getRow(cr.getRow())
XSSFCell cell = row.getCell(cr.getCol())

System.out.print(cell.getBooleanCellValue())

flash.message = "Importado Com Sucesso"
redirect action:"index"
}
}



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto