Converta dados CSV e TXT em uma caixa de combinação preenchível com a macro ONLYOFFICE

9 janeiro 2023By Klaibson

Os produtos ONLYOFFICE são soluções muito poderosas que cobrem todas as demandas de nossa era digital. A partir da versão 7.0, a equipe de especialistas do ONLYOFFICE ampliou a funcionalidade de nossos editores com ONLYOFFICE forms. Projetado para facilitar o trabalho com documentos eletrônicos, os formulários do ONLYOFFICE podem aliviar muitas tarefas mundanas. Um dos bons exemplos é usar formulários preenchíveis para criar um modelo de contrato de vendas. Mas e se você tiver as informações de seus clientes armazenadas em arquivos CSV/TXT separados? Nesta postagem do blog, mostraremos como criar uma macro que importa dados CSV e TXT e os converte em uma caixa de combinação preenchível.

Converta dados CSV e TXT em uma caixa de combinação preenchível com a macro ONLYOFFICE

Sobre os formulários do ONLYOFFICE

A funcionalidade estendida traz formatos que permitem aos usuários criar e operar facilmente com formulários preenchíveis em seus documentos. O formato DOCXF é uma extensão de arquivo baseada em DOCX que oferece uma ampla gama de ferramentas para criar e editar formulários. Permite construir formulários do zero ou de um arquivo DOCX existente. OFORM é uma extensão OOXML para formulários online prontos para preenchimento. Ele torna um modelo de formulário preenchível e restringe a edição por outros usuários.

Os formulários do ONLYOFFICE herdam a estrutura de um documento de texto e incluem várias classes principais:

  • text field
  • combo box
  • checkbox
  • picture form
  • complex form

Essas classes contêm métodos que incorporam a criação de campos de texto, campos complexos, caixas de combinação, listas suspensas, botões de opção, formulários de imagem, campos de telefone e endereço de e-mail.

Usaremos uma classe de caixa de combinação para nossa macro. O elemento da caixa de combinação incorpora uma lista suspensa de valores que importaremos do arquivo CSV/TXT externo.

Converta dados CSV e TXT em uma caixa de combinação preenchível com a macro ONLYOFFICE

Construindo uma macro

A seção Formulário do nosso Documentação da API inclui o método Api.CreateComboBoxForm . Ele cria uma caixa de combinação com parâmetros especificados:

 var oComboBoxForm = Api.CreateComboBoxForm({"key": "Personal information", "tip": "Choose your country", "required": true, "placeholder": "Country", "editable": false, "autoFit": false, "items": ["Latvia", "USA", "UK"]});

O parâmetro items contém a matriz dos valores exibidos na lista suspensa. Portanto, nosso curso de ação é substituir esse array pelo array de valores obtidos do arquivo CSV/TXT externo.

Mas primeiro, precisamos buscar o arquivo externo e processar os dados. Usamos uma estratégia semelhante com o Importar macros de dados CSV/TXT. As macros do ONLYOFFICE são baseadas em JavaScript, o que as torna extremamente versáteis e nos permite usar solicitações AJAX:

function LoadFile() {
        $.ajax({
            url: 'file:///C:/Users/LEOPARD/Desktop/Book1.csv',
            dataType: 'text',https://wpblog.onlyoffice.com//wp-admin/post-new.php?lang=en#
        }).done(successFunction);
    }
        LoadFile();

Agora que buscamos o arquivo, precisamos processar esses dados brutos e formatá-los. Então adicionamos o succesFunction. Ele pegará os dados e dividirá o texto em uma matriz de itens por linhas:

 function successFunction(data) {
      var arrAllItems = data.split(/\r?\n|\r/);
}

Em seguida, direcionamos o documento ativo e criamos a caixa de combinação com o arrAllItems array no parâmetro items:

 var oDocument = Api.GetDocument();
 var oComboBoxForm = Api.CreateComboBoxForm({ "key": "Personal information1", "tip": "Choose your country", "required": true, "placeholder": "Country", "editable": false, "autoFit": false, "items": arrAllItems });

Depois disso, criamos um parágrafo e adicionamos a caixa de combinação a ele:

  var oParagraph = Api.CreateParagraph();
oParagraph.AddElement(oComboBoxForm);

Agora precisamos inserir nossa caixa de combinação no documento. Existem várias maneiras de lidar com essa tarefa, mas sugerimos usar o método InsertContent. Ele insere um elemento exatamente onde o cursor está posicionado. Também sugerimos especificar as propriedades de texto e parágrafo nos parâmetros. Isso evitará possíveis erros e mau funcionamento da macro:

oDocument.InsertContent([oParagraph], { "KeepTextOnly": true });

Todo o código da macro é o seguinte:

(function()
{
   function LoadFile() {
      $.ajax({
          url: 'file:///filePath,
          dataType: 'text',
      }).done(successFunction);
    }
        LoadFile();

   function successFunction(data) {
        var arrAllItems = data.split(/\r?\n|\r/);
        var oDocument = Api.GetDocument();
        var oComboBoxForm = Api.CreateComboBoxForm({ "key": "Personal information", "tip": "Choose your option", "required": true, "placeholder": "Option", "editable": false, "autoFit": false, "items": arrAllItems });
        var oParagraph = Api.CreateParagraph();
oParagraph.AddElement(oComboBoxForm);
oDocument.InsertContent([oParagraph], { "KeepTextOnly": true });
    }
})();

Agora, vamos rodar nossa macro e ver como funciona!

Observação!

  • Para inserir uma caixa de combinação, pressione espaço após executar uma macro.
  • Para inserir várias caixas de combinação no documento, use diferentes parâmetros-chave do método Api.CreateComboBoxForm.

Essa macro é apenas um dos muitos exemplos do que você pode fazer implementando nossos métodos de API. Nós gentilmente encorajamos você a experimentar e esperamos que você utilize os conceitos descritos neste post para construir suas próprias macros.

Nossas macros são baseadas em JavaScript o que as torna extremamente versáteis e práticas. Não hesite em fazer perguntas ou compartilhar suas ideias conosco. Estamos abertos à discussão e cooperação. Boa sorte em seus esforços exploratórios!