Как преобразовать файл .xls в .csv или json, используя d3.js - PullRequest
0 голосов
/ 05 июля 2019

Я использую d3.js для построения графиков. Мой набор данных - это файл .xls; но d3.js может читать .csv или json файлы. Я пытался использовать SheetJS для преобразования файла в .csv, но браузер не поддерживает функцию ReadFile; это можно использовать только на сервере.

var workbook = XLSX.readFile('data/file.xls');
var sheet_name_list = workbook.SheetNames;
sheet_name_list.forEach(function(y) {
    var worksheet = workbook.Sheets[y];
    var headers = {};
    var data = [];
    for(z in worksheet) {
        if(z[0] === '!') continue;
        //parse out the column, row, and value
        var tt = 0;
        for (var i = 0; i < z.length; i++) {
            if (!isNaN(z[i])) {
                tt = i;
                break;
            }
        };
        var col = z.substring(0,tt);
        var row = parseInt(z.substring(tt));
        var value = worksheet[z].v;

        //store header names
        if(row == 1 && value) {
            headers[col] = value;
            continue;
        }

        if(!data[row]) data[row]={};
        data[row][headers[col]] = value;
    }
    //drop those first two rows which are empty
    //data.shift();
    //data.shift();
    console.log(data);
});

но ошибка:

Ошибка: невозможно получить доступ к файлу data / file.xls

В другом ответе:

readFile доступен только в серверных средах. Браузеры не имеют API для чтения произвольных файлов с заданным путем, поэтому другая стратегия должна использоваться.

У вас есть какие-нибудь идеи, чтобы предложить?

Спасибо всем

...