Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法使用js xlsx读取excel文件的空单元格_Excel_Js Xlsx - Fatal编程技术网

无法使用js xlsx读取excel文件的空单元格

无法使用js xlsx读取excel文件的空单元格,excel,js-xlsx,Excel,Js Xlsx,我有一个excel文件,我正在使用js xlsx阅读。除了单元格为空外,代码工作正常。这些单元格被忽略。在创建JSON对象时,如何获取这些单元格 我浏览了一些关于SO的问题,以及其他一些关于同一问题的论坛,但都不满意 欢迎任何帮助。我的代码是: reader.addEventListener('load', function(){ var data = this.result; var wb = XLSX.read(data, {type: 'binary',

我有一个excel文件,我正在使用js xlsx阅读。除了单元格为空外,代码工作正常。这些单元格被忽略。在创建JSON对象时,如何获取这些单元格

我浏览了一些关于SO的问题,以及其他一些关于同一问题的论坛,但都不满意

欢迎任何帮助。我的代码是:

 reader.addEventListener('load', function(){
        var data = this.result;
        var wb = XLSX.read(data, {type: 'binary', sheetStubs:true});
        //  console.log(headers);

        wb.SheetNames.forEach(function(sheetName){
            //pulling out column headers for tablecreation
            var headers = get_header_row(wb.Sheets[sheetName]);
            createTableInDB(headers);
            // Here is your object
            var XL_row_object = XLSX.utils.sheet_to_json(wb.Sheets[sheetName]);
            //console.log(XL_row_object);

            for(var i=0; i<XL_row_object.length; i++){
                var json_object = XL_row_object[i];

                if(json_object !== null){
                    var dataobject = {
                        "tablename": tname,
                        "dbname": dbname,
                        "info": json_object,
                        "uname": uname
                    }

                    dataobject = $.toJSON(dataobject);

                    $.ajax({
                        type: "POST",
                        url: "insertIntoTable.php",
                        async: false,
                        data:"pInsertData=" + dataobject, 
                        success: function(msg){

                            console.log(msg);

                        }
                    });
                    //console.log(json_object);

                }

            }
        });
    });

    reader.readAsBinaryString(document.querySelector('input').files[0]);
reader.addEventListener('load',function(){
var数据=此结果;
var wb=XLSX.read(数据,{type:'binary',sheetStubs:true});
//console.log(头文件);
wb.SheetNames.forEach(函数(sheetName){
//拉出列标题以创建表
var headers=获取标题行(wb.Sheets[sheetName]);
createTableInDB(标题);
//这是你的物品
var XL_row_object=XLSX.utils.sheet_to_json(wb.Sheets[sheetName]);
//console.log(XL\u行\u对象);
对于(var i=0;iSolution 1.Condition“if(h==undefined)continue;”在“xlsx.core.min.js”中注释掉

或者好好做

解决方案2.通过在运行这个XLSX.utils.sheet_to_json(wb.Sheets[name],{blankCell:false})时传递条件额外参数。在第19150行中添加一个条件“if(deffal==undefined&&blankCell)continue;”在文件XLSX.js等中。

解决方案1.Condition“if(h==undefined)continue;”在“XLSX.core.min.js”中注释掉它

或者好好做


解决方案2.通过在运行这个XLSX.utils.sheet_to_json(wb.Sheets[name],{blankCell:false})时传递条件额外参数。在文件XLSX.js等中的第19150行添加一个条件“if(deffal==undefined&&blankCell)continue;”。

只需将
sheet_中的默认值传递给
json方法:

var jsonObj = XLS.utils.sheet_to_json(data.Sheets[data.SheetNames[0]], {
                header: 0,
                defval: ""
              });

只需将
工作表中的默认值传递给\u json
方法:

var jsonObj = XLS.utils.sheet_to_json(data.Sheets[data.SheetNames[0]], {
                header: 0,
                defval: ""
              });

库中有一个选项。在下面的代码中:

...
// Here is your object
var XL_row_object = XLSX.utils.sheet_to_json(wb.Sheets[sheetName]);
//console.log(XL_row_object);
...
您应该为options参数
{deffal:null}
提供以下选项,如下所示:

...
// Here is your object
var XL_row_object = XLSX.utils.sheet_to_json(wb.Sheets[sheetName], {defval: null});
//console.log(XL_row_object);
...

然后,它应该可以工作。

库中有一个选项。在下面的代码中:

...
// Here is your object
var XL_row_object = XLSX.utils.sheet_to_json(wb.Sheets[sheetName]);
//console.log(XL_row_object);
...
您应该为options参数
{deffal:null}
提供以下选项,如下所示:

...
// Here is your object
var XL_row_object = XLSX.utils.sheet_to_json(wb.Sheets[sheetName], {defval: null});
//console.log(XL_row_object);
...

然后,它应该可以工作。

deffal用作空单元格值xlsx,jszip用于下面的链接0.14.4版本文件deffal用作空单元格值xlsx,jszip用于下面的链接0.14.4版本文件