दिलचस्प पोस्ट
आप एक नया \ डेटटाइम ('0000-00-00 00:00:00') के लिए परिणाम की व्याख्या कैसे करते हैं? SQL सर्वर पूर्ण पाठ खोज अक्षर से बचें? $ (विंडो) के बीच का अंतर। लोड () और $ (दस्तावेज़) .ready () फ़ंक्शन ASP.Net MVC में नियंत्रक पर अनुरोध कैसे नकली है? ले जाने के माध्यम से मूल्य का प्रचार करना रूबी प्रो सिंटेक्स एंड्रॉइड – एक फ़ोल्डर खोलें? MySQL CASE कैसे काम करता है? जावास्क्रिप्ट को ट्रिगर करने पर एक लिंक क्लिक होने पर मैं स्क्रॉलिंग से ऊपर तक एक वेब पेज कैसे रोकूं? एक कमांड लाइन टूल में चौखटे का उपयोग करना मैं पृष्ठ पर स्क्रॉल करने पर एक <div> ऊपर और नीचे कैसे कर सकता हूं? जेडीबीसी कनेक्शन विफल रहा, त्रुटि: मेजबान के लिए टीसीपी / आईपी कनेक्शन विफल रहा जांच अगर एक चेकबॉक्स jQuery के साथ चेक किया गया है अजगर सीडीएफ कैसे पाइपथन में matplotlib में साजिश? विंडोज बैच: नई लाइन के बिना गूंज

एक्सएलएल के लिए एक्सएलएल का उपयोग करें

मैं कोणीय जेएस ऐप पर काम कर रहा हूं और मुझे ऐसी स्थिति में फंस गया है जिसमें मुझे एक्सएलएल को एन्सेल जेएस के जरिए डेटा निर्यात करना होगा। मैंने निर्यात कार्यक्षमता या कोणीय जेएस के लिए किसी भी पुस्तकालय के लिए इंटरनेट पर बहुत कुछ खोज लिया है इसलिए मैं ऐसा कर सकता हूं या कम से कम मुझे यह पता मिल सकता है कि कैसे निर्यात करना है मेरे पास यहां दिखाने के लिए कोई कोड या काम नहीं है

मुझे सुझाव चाहिए कृपया इस पर मेरी सहायता करें।

अग्रिम में धन्यवाद।

अद्यतन करें:

मेरे पास एक ऐसा डेटा है जो ऑब्जेक्ट्स की एक सरणी है और मैं इसे एक तालिका में UI पर पुनरारंभ कर रहा हूं। मेरा बैकेंड नोड। जेएस और फ्रंटएन्ड कोणीय जेएस है।

मेरी समस्या यह है कि हमारे पास सर्वर से डेटा है और मैं UI पर उपयोग कर रहा हूं, मैं एन्सेल जेएस का उपयोग करके Xls को निर्यात करने के लिए उसी डेटा का उपयोग कैसे कर सकता हूं। मैं डेटा को निकालने और निर्यात करने के लिए बैकएंड पर एक कॉल फिर से नहीं देना चाहता हूं।

मौजूदा तालिका में, उपयोगकर्ता Xls को डेटा निकालने के लिए चेकबॉक्स (किसी भी पंक्ति या सभी पंक्तियां) का चयन कर सकते हैं।

Node.js में मैंने नोड मॉड्यूल का उपयोग किया है जिसका नाम है: एक्सेल और यह नोडेमोडुल्स साइट पर उपलब्ध है।

मेरा डेटा ऐसा है:

"data": [ { "Name": "ANC101", "Date": "10/02/2014", "Terms": ["samsung", "nokia": "apple"] },{ "Name": "ABC102", "Date": "10/02/2014", "Terms": ["motrolla", "nokia": "iPhone"] } ] 

मुझे एन्ज्युलर या किसी एंगल्यूल लाइब्रेरी का उपयोग कर समाधान चाहिए।

वेब के समाधान से एकत्रित समाधान "एक्सएलएल के लिए एक्सएलएल का उपयोग करें"

ऐसा करने का एक सस्ता तरीका है एक <table> उत्पन्न करने के लिए कोणीय का उपयोग करना और उपयोगकर्ता को डाउनलोड करने के लिए तालिका के रूप में एक .xls फ़ाइल के रूप में आउटपुट करने के लिए FileSaver.js का उपयोग करें। Excel एक HTML तालिका को एक स्प्रेडशीट के रूप में खोलने में सक्षम होगा।

 <div id="exportable"> <table width="100%"> <thead> <tr> <th>Name</th> <th>Email</th> <th>DoB</th> </tr> </thead> <tbody> <tr ng-repeat="item in items"> <td>{{item.name}}</td> <td>{{item.email}}</td> <td>{{item.dob | date:'MM/dd/yy'}}</td> </tr> </tbody> </table> </div> 

कॉल निर्यात करें:

 var blob = new Blob([document.getElementById('exportable').innerHTML], { type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8" }); saveAs(blob, "Report.xls"); }; 

डेमो: http://jsfiddle.net/TheSharpieOne/XNVj3/1/

चेकबॉक्स कार्यक्षमता और प्रश्न के डेटा के साथ अद्यतन डेमो डेमो: http://jsfiddle.net/TheSharpieOne/XNVj3/3/

आप अलास्कल जावास्क्रिप्ट लाइब्रेरी की कोशिश कर सकते हैं जो एक्सेलएस.जेएस लाइब्रेरी के साथ Angular.js डेटा के आसान निर्यात के लिए काम कर सकते हैं। यह exportData () फ़ंक्शन के साथ नियंत्रक का एक उदाहरण है:

 function myCtrl($scope) { $scope.exportData = function () { alasql('SELECT * INTO XLSX("john.xlsx",{headers:true}) FROM ?',[$scope.items]); }; $scope.items = [{ name: "John Smith", email: "j.smith@example.com", dob: "1985-10-10" }, { name: "Jane Smith", email: "jane.smith@example.com", dob: "1988-12-22" }]; } 

Jsfiddle में इस उदाहरण के लिए पूर्ण HTML और JavaScript कोड देखें

रंगीन कोशिकाओं के साथ एक और उदाहरण ।

इसके अलावा आपको दो पुस्तकालयों को शामिल करने की आवश्यकता है:

  • alasql.min.js
  • xlsx.core.min.js

यदि आप अपना डेटा एनजी-ग्रिड में लोड करते हैं, तो आप सीएसवी निर्यात प्लगइन का उपयोग कर सकते हैं। प्लगइन एक एआर टैग के अंदर सीएसवी के रूप में ग्रिड डेटा के साथ एक बटन बनाता है।

http://angular-ui.github.io/ng-grid/

https://github.com/angular-ui/ng-grid/blob/2.x/plugins/ng-grid-csv-export.js

लाइब्रेरी के रूप में लिंक अपडेट करने का नाम बदल दिया गया है:

जिथूब लिंक: https://github.com/angular-ui/ui-grid

पुस्तकालय पृष्ठ: http://ui-grid.info/

सीएसवी निर्यात पर प्रलेखन: http://ui-grid.info/docs/#/tutorial/206_exporting_data

जब मुझे एक जैसी चीज की जरूरत थी, एनजी-सीएसवी और अन्य समाधान यहां पूरी तरह से मदद नहीं करते थे। मेरा डेटा $ गुंजाइश में था और इसमें दिखाए गए कोई टेबल नहीं थे इसलिए, मैंने शीट.जेएस (xslsx.js) और FileSaver.js का उपयोग करके Excel को दिए गए डेटा को निर्यात करने के लिए एक निर्देश बनाया है।

यहाँ मेरा समाधान पैक किया गया है

उदाहरण के लिए, डेटा है:

 $scope.jsonToExport = [ { "col1data": "1", "col2data": "Fight Club", "col3data": "Brad Pitt" }, { "col1data": "2", "col2data": "Matrix Series", "col3data": "Keanu Reeves" }, { "col1data": "3", "col2data": "V for Vendetta", "col3data": "Hugo Weaving" } ]; 

मेरे नियंत्रक में मेरे निर्देश के लिए मुझे एरे की सरणी के रूप में डेटा तैयार करना था:

 $scope.exportData = []; // Headers: $scope.exportData.push(["#", "Movie", "Actor"]); // Data: angular.forEach($scope.jsonToExport, function(value, key) { $scope.exportData.push([value.col1data, value.col2data, value.col3data]); }); 

अंत में, मेरे टेम्प्लेट में निर्देश जोड़ें। यह एक बटन दिखाता है ( बेला देखें)।

 <div excel-export export-data="exportData" file-name="{{fileName}}"></div> 

एक शुरुआती बिंदु इस निर्देश (एनजी-सीएसवी) का उपयोग करने के लिए सिर्फ फाइल को सीएसवी के रूप में डाउनलोड करने के लिए हो सकता है और ऐसा कुछ है जिसे एक्सेल समझ सकता है

http://ngmodules.org/modules/ng-csv

शायद आप इस कोड को अनुकूलित कर सकते हैं (अद्यतन लिंक):

http://jsfiddle.net/Sourabh_/5ups6z84/2/

यह एक्सएमएलएसएस (एफ़एलएमएसएस) लगता है, फाइल खोलने से पहले आपको चेतावनी दी जाती है, अगर आप फ़ाइल खोलने का विकल्प चुनते हैं तो यह सही तरीके से खुल जाएगा।

 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) { if (!table.nodeType) table = document.getElementById(table) var ctx = {worksheet: name || 'Worksheet', table: table.innerHTML} window.location.href = uri + base64(format(template, ctx)) } })() 

अनुकूलित फ़ाइल नाम के साथ नीचे की कोशिश करें:

 $scope.exportData= 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]; }) } var table = document.getElementById("searchResult"); var filters = $('.ng-table-filters').remove(); var ctx = {worksheet: name || 'Worksheet', table: table.innerHTML}; $('.ng-table-sort-header').after(filters) ; var url = uri + base64(format(template, ctx)); var a = document.createElement('a'); a.href = url; a.download = 'Exported_Table.xls'; a.click(); }; 
 $scope.ExportExcel= function () { //function define in html tag //export to excel file var tab_text = '<table border="1px" style="font-size:20px" ">'; var textRange; var j = 0; var tab = document.getElementById('TableExcel'); // id of table var lines = tab.rows.length; // the first headline of the table if (lines > 0) { tab_text = tab_text + '<tr bgcolor="#DFDFDF">' + tab.rows[0].innerHTML + '</tr>'; } // table data lines, loop starting from 1 for (j = 1 ; j < lines; j++) { tab_text = tab_text + "<tr>" + tab.rows[j].innerHTML + "</tr>"; } tab_text = tab_text + "</table>"; tab_text = tab_text.replace(/<A[^>]*>|<\/A>/g, ""); //remove if u want links in your table tab_text = tab_text.replace(/<img[^>]*>/gi, ""); // remove if u want images in your table tab_text = tab_text.replace(/<input[^>]*>|<\/input>/gi, ""); // reomves input params // console.log(tab_text); // aktivate so see the result (press F12 in browser) var fileName = 'report.xls' var exceldata = new Blob([tab_text], { type: "application/vnd.ms-excel;charset=utf-8" }) if (window.navigator.msSaveBlob) { // IE 10+ window.navigator.msSaveOrOpenBlob(exceldata, fileName); //$scope.DataNullEventDetails = true; } else { var link = document.createElement('a'); //create link download file link.href = window.URL.createObjectURL(exceldata); // set url for link download link.setAttribute('download', fileName); //set attribute for link created document.body.appendChild(link); link.click(); document.body.removeChild(link); } } //html of button