Use a macro ONLYOFFICE para importar dados CSV e TXT para sua planilha
Armazenar dados tabulares em formato CSV é muito prático de várias maneiras, o que torna esse tipo de arquivo extremamente popular. O ONLYOFFICE Docs permite importar arquivos CSV e TXT locais. No entanto, e se quisermos importar esses arquivos da web sem precisar baixá-los? Esta postagem no blog compartilhará um pequeno truque sobre como isso pode ser feito.
Em nossos posts anteriores, falamos sobre macros do ONLYOFFICE. Eles são baseados em JavaScript e não podemos enfatizar o suficiente como são versáteis. Esse recurso nos ajudará a importar arquivos CSV e TXT remotos. Então, como você já deve ter adivinhado, vamos criar outra macro.
Observação! Esta macro só funciona com a versão para computador do ONLYOFFICE Docs.
Construindo uma macro
Primeiro, precisamos buscar o arquivo. JavaScript é a base do desenvolvimento web, e tem todas as ferramentas necessárias já embutidas. No nosso caso, vamos usar a requisição AJAX:
function LoadFile() {
$.ajax({
url: 'your url',
dataType: 'text',
}).done(successFunction);
}
}
Agora temos os dados, mas são brutos, então precisamos formatá-los. Primeiro, dividimos em linhas:
function successFunction(data) {
var arrAllRows = data.split(/\r?\n|\r/);
Em seguida, obtemos a planilha ativa:
var oWorksheet = Api.GetActiveSheet();
Já dividimos os dados do array em linhas e agora dividimos em palavras separadas:
for (var singleRow = 0; singleRow < arrAllRows.length; singleRow++) {
var rowCells = arrAllRows[singleRow].split(',');
}
Em seguida, inserimos esses valores nas células. Para isso, usaremos os métodos GetCells e SetValue. O primeiro seleciona o intervalo e o último insere o valor na célula selecionada. O Método GetCells recebe dois parâmetros: o número de linhas e o número de colunas. Para indicar o número de linhas e colunas, usaremos as variáveis i e j e as incrementaremos a cada iteração do loop for:
for (var rowCell = 0; rowCell < rowCells.length; rowCell++) {
oWorksheet.GetCells(i,j).SetValue(rowCells[rowCell]);
j = j + 1;
}
i = i + 1;
j = 1;
}
}
E, finalmente, para exibir os novos valores, precisamos recalcular todo o documento. Faremos isso implementando o método Api.asc_calculate. Usamos esse método em nossa macro Qualidade do ar. Isso nos permitiu recalcular os dados de entrada com um determinado intervalo. Mas desta vez, vamos remover o parâmetro interval. Desta forma, o documento será recalculado instantaneamente:
let reload = setInterval(function(){
Api.asc_calculate(Asc.c_oAscCalculateType.All);
});
Todo o código da macro é o seguinte:
(function() {
function LoadFile() {
$.ajax({
url: 'your url',
dataType: 'text',
}).done(successFunction);
}
function successFunction(data) {
var arrAllRows = data.split(/\r?\n|\r/);
var oWorksheet = Api.GetActiveSheet();
//reference point
var i = 1;
var j = 1;
for (var singleRow = 0; singleRow < arrAllRows.length; singleRow++) {
var rowCells = arrAllRows[singleRow].split(',');
for (var rowCell = 0; rowCell < rowCells.length; rowCell++) {
oWorksheet.GetCells(i,j).SetValue(rowCells[rowCell]);
j = j + 1;
}
i = i + 1;
j = 1;
}
}
LoadFile();
let reload = setInterval(function(){
Api.asc_calculate(Asc.c_oAscCalculateType.All);
});
})();
E agora, vamos executar nossa macro e ver como ela funciona!
Esta pequena macro é um exemplo perfeito da versatilidade do JavaScript. E é apenas uma das muitas implementações possíveis de nossos métodos de API. Nós gentilmente encorajamos você a experimentar e criar seus scripts. Não hesite em compartilhar suas ideias ou macros conosco. Estamos sempre abertos à discussão e cooperação. Boa sorte em seus empreendimentos exploratórios!
Crie sua conta gratuita no ONLYOFFICE
Visualize, edite e colabore em documentos, planilhas, slides, formulários e arquivos PDF online.