javascript - 使用 Sheetjs 访问单元格

标签 javascript electron sheetjs

我按照这里的演示操作: https://github.com/SheetJS/js-xlsx/tree/master/demos/electron

我可以将 excel 文件拖到我的 electron 应用程序中。

documentation 说,你可以访问每个单元格:

for(var R = range.s.r; R <= range.e.r; ++R) {
  for(var C = range.s.c; C <= range.e.c; ++C) {
    var cell_address = {c:C, r:R};
    /* if an A1-style address is needed, encode the address */
    var cell_ref = XLSX.utils.encode_cell(cell_address);
  }
}

我如何将它与下面的代码一起使用?我将文件的内容存储在我的测试变量中,但我无法访问它。那里的文档缺少信息。

var do_file = (function() {
    return function do_file(files) {
        var f = files[0];
        var reader = new FileReader();
        reader.onload = function(e) {
            var data = e.target.result;
            data = new Uint8Array(data);
            test = XLSX.read(data, {type: 'array'});
            console.log(test);
        };
        reader.readAsArrayBuffer(f);
    };
})();

我不知道如何开始,提前致谢

最佳答案

这里是:

var do_file = (function() {
    return function do_file(files) {
        var f = files[0];
        var reader = new FileReader();
        reader.onload = function(e) {
            var data = e.target.result;
            data = new Uint8Array(data);
            //process_wb(XLSX.read(data, {type: 'array'}));
                        /* read the file */
            var workbook = XLSX.read(data, {type: 'array'}); // parse the file
            var sheet = workbook.Sheets[workbook.SheetNames[0]]; // get the first worksheet

            /* loop through every cell manually */
            var range = XLSX.utils.decode_range(sheet['!ref']); // get the range
            for(var R = range.s.r; R <= range.e.r; ++R) {
              for(var C = range.s.c; C <= range.e.c; ++C) {
                /* find the cell object */
                console.log('Row : ' + R);
                console.log('Column : ' + C);
                var cellref = XLSX.utils.encode_cell({c:C, r:R}); // construct A1 reference for cell
                if(!sheet[cellref]) continue; // if cell doesn't exist, move on
                var cell = sheet[cellref];
                console.log(cell.v);

        };
        reader.readAsArrayBuffer(f);
    };
})();

关于javascript - 使用 Sheetjs 访问单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48816940/

相关文章:

javascript - Leaflet MarkerCluster : Is it possible to open multiple cluster-groups?

javascript - 如何使用 xlsx npm 库将嵌套的 json 对象转换为 excel 表?

javascript - 使用 sheetJS 在单个工作表中的多个表

javascript - 下拉未定义的 javascript 表单验证错误

javascript - 将大型 JSON 数据从 C# Web API 发送到 Javascript 客户端

javascript - 通过原型(prototype)扩展 JavaScript 中的原生元素?

javascript - Angular2模板中未呈现可观察事件

javascript - 我如何获取 Electron 网络内容中的事件?

reactjs - 如何加载图像 react babel

javascript - 如何从 js-xlsx (sheetjs) 中的 HTML 表创建多个 XLSX 工作表?