Ler arquivo em formulário

angelokiss
Fluig Bebê
Mensagens: 4
Registrado em: 19 Jan 2019 19:59

Ler arquivo em formulário

Mensagem por angelokiss »

Bom dia galera

Estou trabalhando em um fluxo onde os usuários preenchem um formulário e no fim da ultima tarefa pretendo buscar um arquivo xlsx e modificar ele com as informações do formulário. e salvar o novo arquivo como anexo na solicitação.

após o contexto básico minha duvida é a seguinte: podem me dizer uma forma fácil de ter acesso ao blob de um arquivo salvo em ->

/ecmnavigation?app_ecm_navigation_doc=0000
angelokiss
Fluig Bebê
Mensagens: 4
Registrado em: 19 Jan 2019 19:59

Re: Ler arquivo em formulário

Mensagem por angelokiss »

Consegui gerar o xlsx usando uma das rotas da api ecm.

Código: Selecionar todos

${baseUrl}:${porta}/api/public/ecm/document/${item.documentId}/${item.version}
segue exemplo de código abaixo:

Código: Selecionar todos

function gerarXlsx (){
  parent.ECM.attachmentTable.getData().forEach( function (item) {
    console.log(item);
    fetch(`${baseUrl}:${porta}/api/public/ecm/document/${item.documentId}/${item.version}`).then((response) => {
      console.log(response);
      return response.json();
    }).then((body) => {

      var fileUrl = body.content.fileURL;
      console.log(fileUrl);
      fetch(fileUrl).then((response) => {

        return response.arrayBuffer();
      }).then( (blob) => {
        console.log(blob);
        var workbook = XLSX.read(new Uint8Array(blob), {
          type: 'array'
        });

        var sheetNames = workbook.SheetNames;
        var wsMatriz = workbook.Sheets["MATRIZ"];
        var row1 = ["a","b","c" ... ]
        XLSX.utils.sheet_add_aoa(wsMatriz, [ row1], {origin: "E12"});

        XLSX.writeFile(workbook, "Teste Inicial.xlsx");
      })

    })
  });
}


se alguém souber uma forma melhor para lidar com essa edição de arquivo. em um dataset ou algo assim. por favor sinta-se avontade em compartilhar aqui. sei que fazer isso no client-side não foi a melhor das ideias então adoraria uma sugestão melhor.
Responder