Converta dados CSV e TXT em uma caixa de combinação preenchível com a macro ONLYOFFICE
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.
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.
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!
Crie sua conta gratuita no ONLYOFFICE
Visualize, edite e colabore em documentos, planilhas, slides, formulários e arquivos PDF online.