Ir para conteúdo
waguinho

[Resolvido] XLSX para JSON acessando "sub abas" do arquivo Execel

Recommended Posts

Bom dia!

 

Estou com problema quando converto um arquivo do Excel com extensão XLSX para JSON javascript, o método está funcionando normalmente,

recebo um Array com objetos, porém esse Array só vem com a primeira "ABA" do arquivo Excel, uma vez que esse arquivo Excel que estou convertendo tem 4 abas no total.

Como faço para acessar e converter todas essas "abas" ?

Estou usando o 

"https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.14.0/xlsx.full.min.js"  para conversão.

 

Segue meu código abaixo:

 

Obrigado !!!

 

function ajax(config) {
 
const xhr = new XMLHttpRequest()
xhr.open(config.metodo, config.url, true)
xhr.responseType = "arraybuffer"
 
xhr.onload = function(e) {
if(xhr.status === 200) {
config.sucesso(xhr.response)
} else if(xhr.status >= 400) {
config.erro(xhr.statusText)
}
}
xhr.send()
}

 

ajax({
url: "teste.xlsx",
metodo: "GET",
sucesso(resposta) {
 
const arraybuffer = resposta
 
const data = new Uint8Array(arraybuffer)
const arr = []
 
for(let i = 0; i !=data.length; i++) {
arr[i] = String.fromCharCode(data[i])
}
 
let bstr = arr.join("")
const workbook = XLSX.read(bstr, { type:"binary" })

 

const first_sheet_name = workbook.SheetNames[0]
 
const worksheet = workbook.Sheets[first_sheet_name]
var info = XLSX.utils.sheet_to_json(worksheet, { raw: true })
 
return info
 
},
erro(e) {
console.log(e)
}

 

})

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por FabianoSouza
      Gente, como pego o valor do objeto "apelido" (no final da string) desse JSON???
       
      [{"dd":[{"dados":[{"id":"1","modulo":"Recrutamento e Seleção","iconemedio":"recruta_sel_48x48.png"},{"id":"3","modulo":"Desenvolvimento Organizacional","iconemedio":"desto_org_48x48.png"},{"id":"4","modulo":"Análises","iconemedio":"analises_48x48.png"},{"id":"5","modulo":"Senior Data Partner","iconemedio":"senior-data-partners-48x48.png"},{"id":"7","modulo":"Home","iconemedio":"home_48x48.png"},{"id":"8","modulo":"Administração do sistema","iconemedio":"administrador_48x48.png"}],"apelido":"XPTO"}]}]
       
      Meu ajax está pronto, funciona para recuperar valores dos objetos dentro do array "dados".
      Com esse trecho de JS eu consigo recuperar valor do campo "modulo".
      $json.dados[i].modulo Preciso só ajustar esse trecho acima parta ler o objeto "apelido".
       
      Já tentei coisa como isso...
      $json.dd[5][1].apelido  
      Valew!
    • Por gsinhorini
      Olá! Bom dia pessoal tudo bem?
      Estou com uma dúvida, estou fazendo um requerimento em Ajax para pegar algumas informações e preencher alguns campos até ai tudo bem. A minha dúvida é o seguinte eu preciso fazer uma validação em um select como eu posso fazer isso.
      Eu criei um variável output que recebe as informações e monta o html, tenho que fazer a validação dentro do output. Vou colocar o código. 
      Muito obrigado pela atenção.
      $('#btn_problema').on('click', function () { var codigo_sac = $(this).attr('data-codigo'); console.log(codigo_sac); $.ajax({ type: "GET", url:'buscarProblema?codigo='+codigo_sac, dataType: "html", async:false, success: function (data) { console.log(data); var dados = JSON.parse(data); output = ""; $('#descricao-problema').val(dados.descricao); $('#Etapa02_codigo_sac').val(dados.codigo_sac); if (dados["debitos"] != null) { $.each(dados.debitos, function (i, item) { if (item.tipo == 1) { output += '<div class="col-md-12"><div class="col-md-2"><div class="form-group text-center"><label class="control-label">Tipo<!-- <span class="required"> * </span> --></label><div class=""><select class="form-control select2me" disabled><option value="">Selecione...</option><option value="1" selected > Débitos </option></select></div></div></div><div class="col-md-3"><div class="form-group text-center"><label class="control-label uppercase">Descrição:<!-- <span class="required"> * </span> --></label><div class=""><div class=""><input readonly type="text" class="form-control text-center" value="'+item.descricao+'" /></div></div></div></div><div class="col-md-3"><div class="form-group text-center"><label class="control-label uppercase">Data:<!-- <span class="required"> * </span> --></label><div class=""><div class=""><input readonly type="date" class="form-control text-center" value="'+item.data+'" /></div></div></div></div><div class="col-md-2"><div class="form-group text-center"><label class="control-label uppercase">Valor:<!-- <span class="required"> * </span> --></label><div class=""><div class=""><input readonly type="text" class="form-control text-center" name="" id="" value="R$ '+item.valor+'" /></div></div></div></div><div class="col-md-2"><div class="form-group text-center"><label class="control-label">Ação<span class="required"> * </span></label><div class=""><select class="form-control select2me acao_debitos" data-codigo="item.codigo"><option value="">Selecione...</option><option value="1"> Sim </option><option value="2"> Não </option></select></div></div></div></div>'; } if (item.tipo == 2) { output += '<div class="col-md-12"><div class="col-md-2"><div class="form-group text-center"><label class="control-label">Tipo<!-- <span class="required"> * </span> --></label><div class=""><select class="form-control select2me" disabled><option value="">Selecione...</option><option value="2" selected > Multa </option></select></div></div></div> <div class="col-md-3"><div class="form-group text-center"><label class="control-label uppercase">Data:<!-- <span class="required"> * </span> --></label><div class=""><div class=""><input readonly type="date" class="form-control text-center" value="'+item.data+'" /></div></div></div></div><div class="col-md-2"><div class="form-group text-center"><label class="control-label uppercase">Valor:<!-- <span class="required"> * </span> --></label><div class=""><div class=""><input readonly type="text" class="form-control text-center" name="" id="" value="'+item.valor+'" /></div></div></div></div><div class="col-md-3"><div class="form-group text-center"><label class="control-label uppercase">AIT:<!-- <span class="required"> * </span> --></label><div class=""><div class=""><input readonly type="text" class="form-control text-center" value="RS'+item.ait+'" /></div></div></div></div><div class="col-md-2"><div class="form-group text-center"><label class="control-label">Aprovação<span class="required"> * </span></label><div class=""><select class="form-control select2me acao_debitos" data-codigo="item.codigo"><option value="">Selecione...</option><option value="1"> Sim </option><option value="2"> Não </option></select></div></div></div></div>'; } $("#problema-debitos").html(output); $("#problema-debitos").trigger('chosen:updated'); }); } } }); });  
    • Por danilofoganholi
      Eu estou tentando receber um JSON via POST deste jeito, mas não esta funcionando. Sou novo em php e estou aprendendo por conta, então, se possível, detalhar mais a resposta, eu agradeço. 
       
      //NOME DO CLIENTE $name = $_POST["name"];   // CPF $cpf_cnpj = $_POST["cpf_cnpj"];   //EMAIL $email = $_POST["email"];   //ID DO CLIENTE HUGGY $chat_id = $_POST["chat_id"];
    • Por sergiosantojacinto
      Olá Pessoal,   Pelo que estive analisando os links abaixo do Site Broadcast.com.br eles tem a opção JSON, não identifiquei nada de RSS ou ATOM. Saberiam me informar se é possível eu ter um link RSS/FEED/ATOM para colocar no programa http://www.rssowl.org, para receber as noticias, este programa RSSOWL faz leitura em RSS/XML. http://www.broadcast.com.br/cadernos/financeiro/ http://www.broadcast.com.br/cadernos/politico/ <link rel="alternate" type="application/json+oembed" href="http://www.broadcast.com.br/wp-json/oembed/1.0/embed?url=http%3A%2F%2Fwww.broadcast.com.br%2Fcadernos%2Fpolitico%2F" /> <link rel="alternate" type="text/xml+oembed" href="http://www.broadcast.com.br/wp-json/oembed/1.0/embed?url=http%3A%2F%2Fwww.broadcast.com.br%2Fcadernos%2Fpolitico%2F&#038;format=xml" /> Muito obrigado.

    • Por fkmello
      Estou estudando Rest e JSON no Delphi e pra isso estou usando a API do Cartola FC pra estudo, porém, tem alguns dados que precisa estar logado para conseguir consumir e eu não estou sabendo pegar o Token e fazer o login na API do Cartola FC (globo.com)... 
       
      Gostaria de uma luz por onde seguir... Provavelmente é burrice minha... KKK, pois é a primeira vez que estou mexendo com isso, então desculpe se falei alguma besteira... Kkk
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.