2017-06-23 27 views
-1

我正在生成電子表格,有時數據以NaN形式出現。不是問題Kendo SaveAsExcel nan

但是,當我「SaveAsExcel」,並去Excel 2016中打開電子表格時,我得到了 「我們發現了'reportname'中的一些內容存在問題。您是否希望我們嘗試恢復儘可能多的內容如果您信任本工作手冊的來源,請點擊是「 單擊是,我得到Excel可以打開以下文件:

」已修復的記錄:來自/ xl /工作表/ sheet1.xml部分「

和指向日誌文件的鏈接,它顯示... Nothing

error072200_01.xml在文件MyFileName.xlsx'Repaired Records中檢測到錯誤:/xl/worksheets/sheet1.xml中的單元信息部分

現在,如果我刪除工作表上的NaN,則無任何問題。任何人都有線索如何解決這個問題?

+0

你做到這一點從劍道電網? – Shai

+0

Kendo電子表格 –

+0

請考慮發佈一些代碼,並儘可能使用[可重現的示例](http://dojo.telerik.com/)。 – Sandman

回答

0

我重新創建了問題並提出了一個解決方案 - 查看錶格中的所有單元格,並檢查單元格的值是否爲NaN並驗證爲數字,如果是,則將該值更改爲「」。

您可以將解決方案更改爲符合您需要的更好的方法。

<!DOCTYPE html> 
 
<html> 
 
<head> 
 
    <meta charset="utf-8"/> 
 
    <title>Kendo UI Snippet</title> 
 

 
    <link rel="stylesheet" href="http://kendo.cdn.telerik.com/2017.2.621/styles/kendo.common.min.css"/> 
 
    <link rel="stylesheet" href="http://kendo.cdn.telerik.com/2017.2.621/styles/kendo.rtl.min.css"/> 
 
    <link rel="stylesheet" href="http://kendo.cdn.telerik.com/2017.2.621/styles/kendo.silver.min.css"/> 
 
    <link rel="stylesheet" href="http://kendo.cdn.telerik.com/2017.2.621/styles/kendo.mobile.all.min.css"/> 
 

 
    <script src="http://code.jquery.com/jquery-1.12.4.min.js"></script> 
 
    <script src="http://kendo.cdn.telerik.com/2017.2.621/js/jszip.min.js"></script> 
 
    <script src="http://kendo.cdn.telerik.com/2017.2.621/js/kendo.all.min.js"></script> 
 
</head> 
 
<body> 
 
    
 
    <button id="export">Export to Excel</button> 
 
    <div id="spreadsheet"></div> 
 
    <script> 
 
     $("#spreadsheet").kendoSpreadsheet({ 
 
      sheets: [{ 
 
       name: "Food Order", 
 
       mergedCells: [ 
 
        "A1:G1" 
 
       ], 
 
       rows: [{ 
 
        height: 70, 
 
        cells: [{ 
 
         value: "My Company", fontSize: 32, textAlign: "center" 
 
        }] 
 
       }, { 
 
        cells: [{ 
 
        value: NaN, 
 
        textAlign: "center", 
 
        validation: { 
 
         from: "1", 
 
         to: "2", 
 
         comparerType: "between", 
 
         dataType: "number", 
 
         messageTemplate: "Number should match the validation." 
 
        } 
 
        }] 
 
       }], 
 
      }], 
 
      \t excelExport: function(e) { 
 
       \t e.workbook.sheets[0].rows.forEach(function(row) { 
 
       \t \t row.cells.forEach(function(cell) { 
 
        \t \t if (isNaN(cell.value) && cell.validation && cell.validation.dataType === "number") { 
 
          cell.value = ""; 
 
         } 
 
        }); 
 
       }); 
 
       \t console.log(e.workbook.sheets[0]); 
 
      } 
 
     }); 
 
     $("#export").click(function(e) { 
 
      var spreadsheet = $("#spreadsheet").data("kendoSpreadsheet"); 
 
      spreadsheet.saveAsExcel(); 
 
     }); 
 
    </script> 
 

 
    <!-- Load JSZIP library to enable Excel export --> 
 
    <script src="http://kendo.cdn.telerik.com/2017.2.621/js/jszip.min.js"></script> 
 
</body> 
 
</html>

+0

謝謝,這工作。不要以爲服務器應該在沒有它的情況下生成無效的excel文件,但這確實有效 如何標記爲答案 –

+0

向下/向上投票計數器下面有一個複選標記 – Shai

+0

這是一個好的觀點,也許你應該追蹤'NaN'來自哪裏 – Shai