javascript - atscript - स्क्रिप्टिंग भाषा




एक्सेल फ़ाइल को जावास्क्रिप्ट/एचटीएमएल 5 में कैसे पार्स करें (6)

var excel = new ActiveXObject ("Excel.Aplication"); var book = excel.Workbooks.Open (your_full_file_name_here.xls); var sheet = book.Sheets.Item (1); var value = sheet.Range ("A1");

जब आपके पास चादर है। आप एक्सेल में करते हुए वीबीए फ़ंक्शंस का उपयोग कर सकते हैं।

मैं FileReader माध्यम से एक्सेल फ़ाइल को पढ़ने में सक्षम FileReader लेकिन यह टेक्स्ट के साथ-साथ अजीब पात्रों को आउटपुट करता है। मुझे xls फ़ाइल पंक्ति-वार पढ़ने की आवश्यकता है, प्रत्येक कॉलम में डेटा पढ़ें और इसे JSON में रूपांतरित करें।

क्या कोई जानता है कि पंक्ति द्वारा xls फ़ाइल पंक्ति को कैसे पढ़ा जाए।

किसी भी मदद को बहुत सराहा जाएगा।


xslx.js, xlsx.full.min.js, jszip.js शामिल करें

एक फ़ाइल इवेंट हैंडलर को फ़ाइल इनपुट में जोड़ें

function showDataExcel(event)
{
            var file = event.target.files[0];
            var reader = new FileReader();
            var excelData = [];
            reader.onload = function (event) {
                var data = event.target.result;
                var workbook = XLSX.read(data, {
                    type: 'binary'
                });

                workbook.SheetNames.forEach(function (sheetName) {
                    // Here is your object
                    var XL_row_object = XLSX.utils.sheet_to_row_object_array(workbook.Sheets[sheetName]);

                    for (var i = 0; i < XL_row_object.length; i++)
                    {
                        excelData.push(XL_row_object[i]["your column name"]);

                    }

                    var json_object = JSON.stringify(XL_row_object);
                    console.log(json_object);
                    alert(excelData);
                })

            };

            reader.onerror = function (ex) {
                console.log(ex);
            };

            reader.readAsBinaryString(file);

}

पुराना सवाल है, लेकिन मुझे ध्यान रखना चाहिए कि जावास्क्रिप्ट से एक्सएलएस फाइलों को पार्स करने का सामान्य कार्य कठिन और मुश्किल है लेकिन असंभव नहीं है।

मेरे पास शुद्ध जेएस में लागू बुनियादी पार्सर्स हैं:

दोनों पेज एचटीएमएल 5 फाइल एपीआई संचालित एक्सएलएस / एक्सएलएसएक्स पार्सर्स हैं (आप अपनी फाइल को ड्रैग-ड्रॉप कर सकते हैं और यह कॉमा से अलग सूची में सेल्स में डेटा प्रिंट करेगा)। आप जेएसओएन ऑब्जेक्ट्स भी उत्पन्न कर सकते हैं (माना जाता है कि पहली पंक्ति हेडर पंक्ति है)।

परीक्षण सुइट http://oss.sheetjs.com/ एक ऐसा संस्करण दिखाता है जो फ़ाइलों को प्राप्त करने और विश्लेषण करने के लिए एक्सएचआर का उपयोग करता है।


फ़ंक्शन के नीचे Excel शीट (एक्सएलएसएक्स प्रारूप) डेटा जेएसओएन में परिवर्तित करता है। आप समारोह में वादा जोड़ सकते हैं।

<script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.8.0/xlsx.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.8.0/jszip.js"></script>
<script>
var ExcelToJSON = function() {

  this.parseExcel = function(file) {
    var reader = new FileReader();

    reader.onload = function(e) {
      var data = e.target.result();
      var workbook = XLSX.read(data, {
        type: 'binary'
      });

      workbook.SheetNames.forEach(function(sheetName) {
        // Here is your object
        var XL_row_object = XLSX.utils.sheet_to_row_object_array(workbook.Sheets[sheetName]);
        var json_object = JSON.stringify(XL_row_object);
        console.log(json_object);

      })

    };

    reader.onerror = function(ex) {
      console.log(ex);
    };

    reader.readAsBinaryString(file);
  };
};
</script>

पोस्ट के नीचे एक्सएलएस प्रारूप एक्सेल के लिए जेएसओएन जावास्क्रिप्ट कोड कोड है?


यदि आप ब्राउज़र में * .xslx फ़ाइल पढ़ने का सबसे सरल और सबसे छोटा तरीका चाहते हैं तो यह लाइब्रेरी ऐसा कर सकती है:

https://catamphetamine.github.io/read-excel-file/

<input type="file" id="input" />
import readXlsxFile from 'read-excel-file'

const input = document.getElementById('input')

input.addEventListener('change', () => {
  readXlsxFile(input.files[0]).then((data) => {
    // `data` is an array of rows
    // each row being an array of cells.
  })
})

उपर्युक्त उदाहरण में कच्चे स्ट्रिंग डेटा है। schema तर्क पारित करके इसे सख्त स्कीमा के साथ JSON पर पार्स किया जा सकता है। इसके उदाहरण के लिए एपीआई दस्तावेज़ देखें।

एपीआई दस्तावेज़: http://npmjs.com/package/read-excel-file


यह कोड आपकी मदद कर सकता है
अधिकांश समय jszip.js काम नहीं कर रहा है इसलिए अपने जेएस कोड में xlsx.full.min.js शामिल करें।

HTML कोड

 <input type="file" id="file" ng-model="csvFile"  
    onchange="angular.element(this).scope().ExcelExport(event)"/>

जावास्क्रिप्ट

<script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.8.0/xlsx.js">
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.8.0/jszip.js">
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.10.8/xlsx.full.min.js">
</script>

$scope.ExcelExport= function (event) {


    var input = event.target;
    var reader = new FileReader();
    reader.onload = function(){
        var fileData = reader.result;
        var wb = XLSX.read(fileData, {type : 'binary'});

        wb.SheetNames.forEach(function(sheetName){
        var rowObj =XLSX.utils.sheet_to_row_object_array(wb.Sheets[sheetName]);
        var jsonObj = JSON.stringify(rowObj);
        console.log(jsonObj)
        })
    };
    reader.readAsBinaryString(input.files[0]);
    };







filereader