открыть файл excel с xlsx.js по пути

Привет, я хочу открыть файл Excel с расширением xlsx с библиотекой xlsx.js. Я могу открыть файл с помощью ввода html, но я хочу открыть его, используя путь к файлу.

У меня есть этот код, извлеченный из демонстрации xlsx.js:

function handleFile(e) {
    rABS = false;
    use_worker = false;

    console.log(e);

    var files = e.target.files;


    var f = files[0]; {
        var reader = new FileReader();
        var name = f.name;
        reader.onload = function (e) {
            if (typeof console !== 'undefined')
                console.log("onload", new Date(), rABS, use_worker);

            var data = e.target.result;
            console.log("target result >>>>>>>>> " + e.target.result);
            if (use_worker) {
                xw(data, process_wb);
            } else {
                var wb;
                if (rABS) {
                    wb = X.read(data, {
                            type : 'binary'
                        });
                } else {
                    var arr = fixdata(data);
                    wb = X.read(btoa(arr), {
                            type : 'base64'
                        });
                }
                process_wb(wb);
            }
        };
        if (rABS)
            reader.readAsBinaryString(f);
        else
            reader.readAsArrayBuffer(f);
    }
}

Я хочу что-то вроде этого:

var file = new File([""],"C:\\Users\\PalFS\\Downloads\\Fiverr_Example_List (1).xlsx");

var data = file;

Как это сделать или как я могу преобразовать этот файл в буфер массива, как он возвращается, var data = e.target.result;.

Спасибо


person PalFS    schedule 10.07.2016    source источник


Ответы (1)


Вы можете использовать флаг --allow-file-access-from-files в chrome, chrome с XMLHttpRequest , .responseType установленным на "arraybuffer" для извлечения .xlsx файла из локальной файловой системы как ArrayBuffer; установить new File() данные для возврата ArrayBuffer. Второй параметр в конструкторе new File() должен устанавливать свойство .name создаваемого файла.

Запустить /path/to/chrome --allow-file-access-from-files

  var request = new XMLHttpRequest();
  // may be necessary to escape path string?
  request.open("GET", "C:\\Users\\PalFS\\Downloads\\Fiverr_Example_List (1).xlsx");
  request.responseType = "arraybuffer";
  request.onload = function () {
     // this.response should be `ArrayBuffer` of `.xlsx` file
     var file = new File(this.response, "Fiverr_Example_List.xlsx");
     // do stuff with `file`
  };
  request.send();
person guest271314    schedule 10.07.2016