excel SheetJS格式化日期列

vyswwuz2  于 2023-10-22  发布在  其他
关注(0)|答案(1)|浏览(147)


v 0.10.2 of sheets.js.我试图格式化Excel中的一列,这是一个日期,以便过滤时,Excel显示的过滤器是日期相关的,即他们都按天,月和年过滤。
我已经格式化了使用以下创建的Excel,使第5列成为日期之一。

range.s.c = 5; 
 range.e.c = 5;      //  end of the column
 XLSX.utils.sheet_set_range_style(ws, range, {
 z: "dd/mm/yyyy"
                });

创建的Excel已附呈。可以看出,“TransactionDate”列的格式是“Date”。但excel不认为它是一个日期,因为在该列上创建过滤器表明excel认为它是一个文本单元格。
有没有办法使excel识别该单元格或列作为一个实际的日期之一。
哈日
我第一次结束了只是一个字符字段。我使用了范围并将格式设置为dd/mm/yyyy,这使得单元格在excel中被“视为”日期,但它并不将其识别为日期。

uqcuzwp8

uqcuzwp81#

我不得不在JavaScript中格式化日期字段。JSONData是从服务器返回到JavaScript应用程序的JSON数据。这是一个多维数组,因此旋转数据以获取日期字段,然后将日期字段格式化为JavaScript日期对象。将原始JSONData转换为NewJSONData。

for (var key in JSONData) {
     var value = JSONData[key];
                                    
     let obj={};
     for (var key2 in value) {
        var value2 = value[key2];
        
        /* TransactionDate is the date field */
        if (key2==="TransactionDate" && value2!==""){
                        
            /* DD/MM/YYYY is the format the date is in. 
               We want to convert it into MM/DD/YYYY */
                        
             xx=moment(value2,'DD/MM/YYYY').format('MM/DD/YYYY');
             obj[key2]=new Date(xx);
         }
         else{
             obj[key2]=value2
         }    
                    
     }
                
     NewJSONData.push(obj);
                
  }

  var ws = XLSX.utils.json_to_sheet(NewJSONData);

相关问题