Como faço para converter uma tabela do excel para um array javascript?

1

Eu preciso inserir uma grande quantidade de dados em uma matriz, que será desta forma:

[
  [data1,data2,data3,...,data9],
  [data1,data2,data3,...,data9],
  [data1,data2,data3,...,data9],
  ...
]

Como está, inserir os dados diretamente como JavaScript é um processo demorado que tende a ter muitos erros. Como alternativa, gostaria de inserir os dados em uma planilha do Excel e gerar o array JavaScript da planilha. Como posso fazer isso?

    
por Wais Kamal 22.05.2018 / 03:27

3 respostas

1

Como esta é uma operação que você faria uma vez ou apenas algumas vezes, aqui é uma solução de trabalho zero, usando o site Sr. Conversor de dados aparentemente criado por um Shan Carter.

Veja como convertei essa planilha de amostra fictícia de 679 linhas duplicadas:

  1. SelecioneosdadosinteirosusandoCtrl+A
  2. CopiarparaaáreadetransferênciacomCtrl+C
  3. Abraosite Sr. Conversor de Dados
  4. Clique na área de texto superior e cole os dados com Ctrl + V
  5. Selecione Saída como "JSON - Row Arrays"
  6. O resultado na área de texto inferior será semelhante a:

  • Clique na área de texto inferior e ela será selecionada
  • Copiar para a área de transferência com Ctrl + C
  • Agora você pode colar os dados em qualquer lugar e adicionar ao redor a declaração para o array JavaScript.

    Nota para o futuro: Se o website do Mr. Data Converter desaparecer da Internet, uma cópia de trabalho pode ser encontrada no Máquina Wayback .

        
    por 02.08.2018 / 10:43
    1

    Eu acredito que você poderia usar o Papa Parse , que é uma ferramenta JavaScript para analisar arquivos .csv.

    Primeiro, insira todos os seus dados no Excel e salve o arquivo como .csv

    Em seguida, use o NPM para instalar o Papa Parse:

    $ npm install papaparse
    

    Importe seu arquivo .csv para o JS:

    var file = '/path/to/your.csv';
    
    var content = fs.readFileSync(file, "utf8");
    

    Em seguida, use este código para analisar o .csv em uma matriz:

    var Papa = require('papaparse');
    
    Papa.parse(content, {
        header: false,
        delimiter: "\t",
        complete: function(results) {
        rows = results.data;
        }
    });
    
        
    por 01.08.2018 / 19:19
    0

    Supondo que você tenha , como delimitador em um arquivo .csv de texto simples, basta fazer isso:

    var csvarray = [];
    var client = new XMLHttpRequest();
    client.open('GET', '/mydata.csv');
    client.onreadystatechange = function() {
        var rows = client.responseText.split('\n');
        for(var i = 0; i < rows.length; i++){
            csvarray.push(rows[i].split(','));
        }
    }
    client.send();
    

    csvarray conterá uma matriz por linha do csv, contendo seus dados separados por vírgula.

        
    por 01.08.2018 / 19:28