2015-02-28 7 views
5

मैं एक्सेल शीट डेटा को जेसन में परिवर्तित करना चाहता हूं। इसे गतिशील होना चाहिए, इसलिए एक अपलोड बटन है जहां उपयोगकर्ता एक्सेल शीट अपलोड करता है और डेटा को जेसन में परिवर्तित कर दिया जाता है। क्या आप मुझे जावास्क्रिप्ट कोड प्रदान कर सकते हैं? मैंने शीटजेएस की कोशिश की लेकिन पता नहीं लगा सका। मैं सीधे कुछ आगे पसंद करूंगा :)एक्सेल से JSON जावास्क्रिप्ट कोड?

मैं वास्तव में आपकी मदद की सराहना करता हूं!

+1

यदि आप अपने कोड/उदाहरण/प्रयासों की आपूर्ति नहीं करते हैं तो एसओएफ पर लोग आपको कोड नहीं देंगे .. संकेत के रूप में, फ़ाइल को सरणी में फ़ाइल पढ़ने के लिए उपयोग करें, फिर json_encode का उपयोग करें ... – Mayhem

+0

इसे क्लाइंट पक्ष में परिवर्तित कर देगा जावास्क्रिप्ट के साथ सबसे अच्छा विकल्प है? – JaredT

+0

मैं केवल जावास्क्रिप्ट का उपयोग करना चाहता हूं। मेरे पास अपना कोड नहीं है, मैंने अभी शीटजेएस से कोड लिया है और हेरफेर करने की कोशिश की है लेकिन यह अनुकूल नहीं है। तो मैं सीधे आगे जावास्क्रिप्ट कोड – Programmer

उत्तर

11

नोट: नहीं 100% क्रॉस ब्राउज़र

के रूप में आप लोगों को नहीं इतना आम ब्राउज़रों के साथ मुद्दों पड़ा है, लेकिन इस ब्राउज़र के संस्करण के लिए नीचे आ सकता है देखेंगे .. मैं हमेशा कुछ उपयोग करने की अनुशंसा जैसे caniuse देखने के लिए ब्राउज़र की किस पीढ़ी समर्थित है ... यह उपयोगकर्ता, नहीं लोग बस का उपयोग करने के लिए एक अंतिम कॉपी और पेस्ट कोड के लिए केवल एक काम कर जवाब है ..

फिडल: http://jsfiddle.net/d2atnbrt/3/

एचटीएमएल कोड:

<input type="file" id="my_file_input" /> 
<div id='my_file_output'></div> 

जे एस कोड:

var oFileIn; 

$(function() { 
    oFileIn = document.getElementById('my_file_input'); 
    if(oFileIn.addEventListener) { 
     oFileIn.addEventListener('change', filePicked, false); 
    } 
}); 


function filePicked(oEvent) { 
    // Get The File From The Input 
    var oFile = oEvent.target.files[0]; 
    var sFilename = oFile.name; 
    // Create A File Reader HTML5 
    var reader = new FileReader(); 

    // Ready The Event For When A File Gets Selected 
    reader.onload = function(e) { 
     var data = e.target.result; 
     var cfb = XLS.CFB.read(data, {type: 'binary'}); 
     var wb = XLS.parse_xlscfb(cfb); 
     // Loop Over Each Sheet 
     wb.SheetNames.forEach(function(sheetName) { 
      // Obtain The Current Row As CSV 
      var sCSV = XLS.utils.make_csv(wb.Sheets[sheetName]); 
      var oJS = XLS.utils.sheet_to_row_object_array(wb.Sheets[sheetName]); 

      $("#my_file_output").html(sCSV); 
      console.log(oJS) 
     }); 
    }; 

    // Tell JS To Start Reading The File.. You could delay this if desired 
    reader.readAsBinaryString(oFile); 
} 

यह भी https://cdnjs.cloudflare.com/ajax/libs/xls/0.7.4-a/xls.js की आवश्यकता है एक पठनीय प्रारूप में बदलने के लिए, मैं भी केवल div सामग्रियों को परिवर्तित करने के लिए और डोम के लिए jQuery का उपयोग किया है तैयार घटना .. तो jQuery

इस रूप में बुनियादी मैं इसे प्राप्त कर सकते हैं के रूप में है की जरूरत नहीं है,

संपादित करें - जनरेट कर रहा है एक टेबल

फिडल: http://jsfiddle.net/d2atnbrt/5/

.. यह दूसरी बेला अपनी खुद की मेज पैदा करने, चाबी यहाँ sheet_to_json उपयोग कर रहा है जे एस उपयोग के लिए सही स्वरूप में डेटा प्राप्त करने के का एक उदाहरण दिखाता

एक या दूसरी बेला में दो टिप्पणियां पहले बेला के संशोधित संस्करण के रूप में गलत हो सकता है .. सीएसवी टिप्पणी है कम से कम

टेस्ट XLS फ़ाइल: http://www.whitehouse.gov/sites/default/files/omb/budget/fy2014/assets/receipts.xls

इसमें एक्सएलएसएक्स फाइलों को सोचा नहीं गया है, यह उनके उदाहरणों का उपयोग करके उनके लिए समायोजित करना काफी आसान होना चाहिए।

+0

कैसे उत्पन्न करें दुर्भाग्य से, मैंने बेवकूफ कोशिश की और एक्सेल शीट अपलोड करने के बाद कुछ भी नहीं किया। – Programmer

+0

इस फ़ाइल का उपयोग करने का प्रयास करें: http://www.whitehouse.gov/sites/default/files/omb/budget/fy2014/assets/receipts.xls जैसा कि मैं परीक्षण कर रहा था, यह उनके डेमो पर सुझाए गए एक पृष्ठ। – Mayhem

+0

क्या आप जेएस त्रुटियों के लिए अपने ब्राउज़र कंसोल की जांच कर सकते हैं, आप किस ब्राउजर का उपयोग कर रहे हैं? – Mayhem

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