2013-10-16 10 views
9

मैं निर्यात HTML तालिका को .xls फ़ाइल में जावास्क्रिप्ट कोड का उपयोग कर रहा हूं। यह क्रोम में काम करता है और जब डेटा बड़ा नहीं होता है। लेकिन जब डेटा बड़ा होता है तो यह मुझे त्रुटि दिखाता हैनिर्यात के रूप में .xls फ़ाइल के रूप में निर्यात नहीं होता है जब बड़े डेटा

enter image description here

कोड है जो मैं निर्यात के लिए .xls फ़ाइल के रूप में तालिका का इस्तेमाल किया है के रूप में नीचे है:

function exportDiv() { 
    //working on crome perfectly  
     var dt = new Date(); 
     var day = dt.getDate(); 
     var month = dt.getMonth() + 1; 
     var year = dt.getFullYear(); 
     var hour = dt.getHours(); 
     var mins = dt.getMinutes(); 
     var postfix = day + "." + month + "." + year + "_" + hour + "." + mins; 
     var a = document.createElement('a'); 
     var data_type = 'data:application/vnd.ms-excel'; 
     var table_div = document.getElementById('tbl-1'); 
     var table_html = table_div.outerHTML.replace(/ /g, '%20'); 
     a.href = data_type + ', ' + table_html; 
     a.download = 'exported_table_' + postfix + '.xls'; 
     a.click(); 
     e.preventDefault(); 

} 

मैं भी पर्याप्त 4 जीबी रैम है, तो मुझे लगता है कि इसकी स्मृति सीमा नहीं समस्या।

क्या आप कृपया बड़े डेटा को निर्यात करने के लिए मेरी सहायता कर सकते हैं? संपादित करें: मैं भी

var table_html=encodeURIComponent(table_div.outerHTML); 

लेकिन अब भी वही त्रुटि आ इस तरह से इस्तेमाल किया ahve।

+0

नहीं आपके सवाल का जवाब है, लेकिन आप की [ 'encodeURIComponent()'] उपयोग कर सकते हैं (https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/encodeURIComponent) के बजाय अपने आप को विशेष पात्रों की जगह लेना। – Passerby

+0

अनंत लूप में हो रहा है मुझे लगता है कि –

+0

@ अरुण किलु: केवल एक बार यह फ़ंक्शन कहलाता है और उसमें मैंने केवल .xls फ़ाइल के रूप में तालिका डाउनलोड की है, तो अनंत लूप कहां है? – user1181940

उत्तर

0

मैंने टेबल पर टेक्सटेसेल फ़ंक्शन को कॉल किया है जैसा कि नीचे क्लिक करें और यह फ़ायरफ़िक्स में ठीक काम कर रहा है।

<a id="dlink" style="display:none;"></a> 

    var tableToExcel = (function() { 
      var uri = 'data:application/vnd.ms-excel;base64,' 
      , template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--></head><body><table>{table}</table></body></html>' 
      , base64 = function (s) { return window.btoa(unescape(encodeURIComponent(s))) } 
      , format = function (s, c) { return s.replace(/{(\w+)}/g, function (m, p) { return c[p]; }) } 
      return function (table, name, filename) { 
       if (!table.nodeType) table = document.getElementById(table) 
       var ctx = { worksheet: name || 'Worksheet', table: table.innerHTML } 

       document.getElementById("dlink").href = uri + base64(format(template, ctx)); 
       document.getElementById("dlink").download = filename; 
       document.getElementById("dlink").click(); 

      } 
     })(); 
1

एक्सेल शीट को एक्सेल सेल के समान 32767 वर्णों की एक वर्ण सीमा मिली है।

संदर्भ जांच करने के लिए इस लिंक

: http://office.microsoft.com/en-in/excel-help/excel-specifications-and-limits-HP010073849.aspx

+0

यह ** ** ** एक्सेल फ़ाइल नहीं है, यह सिर्फ एक * .htm फ़ाइल है, जिसे एक्सेल द्वारा खोला जा सकता है। यह आपको एक्सटेंशन और फ़ाइल स्वरूप मिलान के बारे में चेतावनी देगा। – Arnthor

+0

वर्कशीट में 1,048,576 पंक्तियां 16,384 कॉलम हैं। मेरे पास 3500 पंक्तियां और 30 कॉलम हैं। इसलिए मुझे लगता है कि यह मुझे exlode करने के लिए ristrict नहीं होगा। – user1181940

1

सबसे अधिक संभावना आपके द्वारा Chrome में 2 एमबी URL की सीमा तक पहुंचते हैं। आप इसके बारे में यहां पढ़ सकते हैं - issue link। मेरा सुझाव है कि आप फ़ायरफ़ॉक्स में अपने ऐप को आज़माएं, अगर यह काम करता है, तो यह मुद्दा है।

+0

लेकिन मेरा कोड फ़ायरफ़ॉक्स में काम नहीं करता है। जब मैं निर्यात बटन पर क्लिक करता हूं तो यह कुछ भी नहीं करेगा। मैंने त्रुटि लॉग भी जांच ली है लेकिन कोई त्रुटि नहीं है। – user1181940

+0

धन्यवाद, आपका सही फ़ायरफ़ॉक्स मेरे लिए ठीक है। –

संबंधित मुद्दे