Kendo电子表格在解析行值时将时间转换为十进制

香托·西迪克(Shandi Siddiq)

我试图用js保存kendo电子表格数据。在解析行值时,我看到kendo电子表格将日期转换为数字,将时间转换为十进制。我已使用moment js将数字转换为日期,但无法将十进制数字转换为确切时间。如何转换它,或者如果我可以得到电子表格中显示的日期和时间,则意味着只有字符串,那将是很好的。以下是示例代码和屏幕截图。

var spreadsheet = $("#spreadsheet").data("kendoSpreadsheet");
    var spreadsheedata = spreadsheet.toJSON();
    var JsonArray = [];
        for (var i = 1; i < spreadsheedata.sheets[0].rows.length; i++) {
                var dataObject = {};
                dataObject.SortOrder = spreadsheedata.sheets[0].rows[i].cells[0].value;
                dataObject.RoundNo = spreadsheedata.sheets[0].rows[i].cells[1].value;
                dataObject.Team = spreadsheedata.sheets[0].rows[i].cells[2].value;
                dataObject.MatchDate = moment(new Date((new Date('01/01/1900')).setDate(spreadsheedata.sheets[0].rows[i].cells[3].value - 1))).format(spreadsheedata.sheets[0].rows[i].cells[3].format.replace("dd", "DD").replace("mm", "MM"));
                dataObject.StartTime = spreadsheedata.sheets[0].rows[i].cells[4].value;
                dataObject.EndTime = spreadsheedata.sheets[0].rows[i].cells[5].value;
                dataObject.Location = spreadsheedata.sheets[0].rows[i].cells[6].value;
                dataObject.Field = spreadsheedata.sheets[0].rows[i].cells[7].value;
                JsonArray.push(dataObject);
    }

查看单元格编号格式和值 查看单元格格式

在此处输入图片说明 这是日期和时间字段

香托·西迪克(Shandi Siddiq)

使用功能ConvertExcelTime和momentjs转换了StartTime和EndTime。

var spreadsheet = $("#spreadsheet").data("kendoSpreadsheet");
var spreadsheedata = spreadsheet.toJSON();
var JsonArray = [];
    for (var i = 1; i < spreadsheedata.sheets[0].rows.length; i++) {
            var dataObject = {};
            dataObject.SortOrder = spreadsheedata.sheets[0].rows[i].cells[0].value;
            dataObject.RoundNo = spreadsheedata.sheets[0].rows[i].cells[1].value;
            dataObject.Team = spreadsheedata.sheets[0].rows[i].cells[2].value;
            dataObject.MatchDate = moment(new Date((new Date('01/01/1900')).setDate(spreadsheedata.sheets[0].rows[i].cells[3].value - 1))).format(spreadsheedata.sheets[0].rows[i].cells[3].format.replace("dd", "DD").replace("mm", "MM").replace("-", "/").replace("-", "/"));
            dataObject.StartTime = moment(new Date(OrgTrainingCalendar.ConvertExcelTime(spreadsheedata.sheets[0].rows[i].cells[4].value))).format(spreadsheedata.sheets[0].rows[i].cells[4].format.replace("AM/PM", "a"));
            dataObject.EndTime = moment(new Date(OrgTrainingCalendar.ConvertExcelTime(spreadsheedata.sheets[0].rows[i].cells[5].value))).format(spreadsheedata.sheets[0].rows[i].cells[5].format.replace("AM/PM", "a"));
            dataObject.Location = spreadsheedata.sheets[0].rows[i].cells[6].value;
            dataObject.Field = spreadsheedata.sheets[0].rows[i].cells[7].value;
            JsonArray.push(dataObject);
}
ConvertExcelTime: function (excelTimestamp) {
    const secondsInDay = 24 * 60 * 60;
    const excelEpoch = new Date(1899, 11, 31);
    const excelEpochAsUnixTimestamp = excelEpoch.getTime();
    const missingLeapYearDay = secondsInDay * 1000;
    const delta = excelEpochAsUnixTimestamp - missingLeapYearDay;
    const excelTimestampAsUnixTimestamp = excelTimestamp * secondsInDay * 1000;
    const parsed = excelTimestampAsUnixTimestamp + delta;
    return isNaN(parsed) ? null : parsed;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

转换电子表格的十进制数字格式:句点和逗号分隔的十进制位置

来自分类Dev

将Excel电子表格转换为JSON

来自分类Dev

Excel将电子表格转换为html

来自分类Dev

Google脚本+电子表格+打开时将整个表格转换为大写

来自分类Dev

如何将电子表格单元格转换为时间单位?

来自分类Dev

将电子表格的行转换为单独的XML文件

来自分类Dev

如何将HTML表格转换为Excel电子表格

来自分类Dev

Google文档电子表格转换为JSON

来自分类Dev

将电子表格转换为文本的合理工具,一行=一页

来自分类Dev

将电子表格编号转换为列字母

来自分类常见问题

如何快速轻松地将电子表格数据转换为JSON?

来自分类Dev

如何将电子表格的“以字母命名”列坐标转换为整数?

来自分类Dev

使用GAS将Google电子表格转换为XLSX或ODS

来自分类Dev

将.json数据转换为电子表格的MATRIX

来自分类Dev

根据列表将.xls / .xlsx电子表格转换为多个.csv

来自分类Dev

使用GAS将Google电子表格转换为XLSX或ODS

来自分类Dev

如何将Microsoft Excel Online电子表格链接转换为CSV?

来自分类Dev

将.XLSX电子表格转换为CSV的代码无法正常工作

来自分类Dev

如何将扫描的手写表转换为Excel电子表格?

来自分类Dev

是否有将谷歌文档转换为谷歌电子表格的功能?

来自分类Dev

当L列的值与P列匹配时,VBA将行复制到新的电子表格

来自分类Dev

无法将表单值写入电子表格

来自分类Dev

将电子表格值返回到javascript

来自分类Dev

获取匹配值的电子表格行

来自分类Dev

将时间转换为十进制

来自分类Dev

将列值从一个电子表格复制到另一电子表格,仅添加必要的行

来自分类Dev

将值插入电子表格时,VBA不处理“不良”字符

来自分类Dev

当电子表格中有行/列值时如何找到平均值

来自分类Dev

遍历行以将值平均分割为新的电子表格

Related 相关文章

  1. 1

    转换电子表格的十进制数字格式:句点和逗号分隔的十进制位置

  2. 2

    将Excel电子表格转换为JSON

  3. 3

    Excel将电子表格转换为html

  4. 4

    Google脚本+电子表格+打开时将整个表格转换为大写

  5. 5

    如何将电子表格单元格转换为时间单位?

  6. 6

    将电子表格的行转换为单独的XML文件

  7. 7

    如何将HTML表格转换为Excel电子表格

  8. 8

    Google文档电子表格转换为JSON

  9. 9

    将电子表格转换为文本的合理工具,一行=一页

  10. 10

    将电子表格编号转换为列字母

  11. 11

    如何快速轻松地将电子表格数据转换为JSON?

  12. 12

    如何将电子表格的“以字母命名”列坐标转换为整数?

  13. 13

    使用GAS将Google电子表格转换为XLSX或ODS

  14. 14

    将.json数据转换为电子表格的MATRIX

  15. 15

    根据列表将.xls / .xlsx电子表格转换为多个.csv

  16. 16

    使用GAS将Google电子表格转换为XLSX或ODS

  17. 17

    如何将Microsoft Excel Online电子表格链接转换为CSV?

  18. 18

    将.XLSX电子表格转换为CSV的代码无法正常工作

  19. 19

    如何将扫描的手写表转换为Excel电子表格?

  20. 20

    是否有将谷歌文档转换为谷歌电子表格的功能?

  21. 21

    当L列的值与P列匹配时,VBA将行复制到新的电子表格

  22. 22

    无法将表单值写入电子表格

  23. 23

    将电子表格值返回到javascript

  24. 24

    获取匹配值的电子表格行

  25. 25

    将时间转换为十进制

  26. 26

    将列值从一个电子表格复制到另一电子表格,仅添加必要的行

  27. 27

    将值插入电子表格时,VBA不处理“不良”字符

  28. 28

    当电子表格中有行/列值时如何找到平均值

  29. 29

    遍历行以将值平均分割为新的电子表格

热门标签

归档