मैं excel फ़ाइल (.xlsx प्रारूप में) बना सकते हैं और क्लाइंट के प्रयोग द्वारा डाउनलोड के लिए यह उपलब्ध कराना चाहते हैं साइड जावास्क्रिप्ट। मैं js-xlsx लाइब्रेरी का उपयोग कर नमूना फ़ाइल बनाने में सक्षम था। लेकिन मैं इसे किसी भी शैलियों को लागू करने में सक्षम नहीं हूं। पृष्ठभूमि रंग शीर्षलेख पर, बोल्ड फ़ॉन्ट हेडर के लिए और पाठ कोशिकाओं के लिए लपेटकर सहित कम से कम कुछ बुनियादी शैलियों की आवश्यकता है।एक एक्सेल क्लाइंट पक्ष जावास्क्रिप्ट का उपयोग कुछ शैलियों के साथ फ़ाइल बनाने (संभव js-xlsx का उपयोग कर पुस्तकालय अगर)
जेएस-xlsx लाइब्रेरी प्रलेखन का कहना है कि हम Cell Object का उपयोग करके शैलियों को दे सकते हैं।
मैंने सेल ऑब्जेक्ट का उपयोग करके शैलियों को देने का प्रयास किया लेकिन यह डाउनलोड की गई .xlsx फ़ाइल में प्रतिबिंबित नहीं हो रहा है। मैंने एक .xlsx फ़ाइल पढ़ने और XLSX.write() फ़ंक्शन का उपयोग करके उसी फ़ाइल को वापस पढ़ने का प्रयास किया। लेकिन यह बिना किसी शैलियों के एक्सेल फ़ाइल को वापस देता है। आदर्श रूप से मैं डाउनलोड की गई फ़ाइल की अपलोड की गई फाइलों की समान शैलियों की अपेक्षा करता हूं। पुनर्निर्मित फ़ाइल में कोई फ़ॉन्ट रंग या पृष्ठभूमि रंग लागू नहीं किए गए थे। मैं डाउनलोड की गई फ़ाइलों का परीक्षण करने के लिए एक्सेल 2013 का उपयोग करता हूं।
कृपया अपलोड करने से पहले और बाद में एक्सेल स्क्रीनशॉट के नीचे खोजें।
मूल फ़ाइल
डाउनलोड की गई फ़ाइल
कोड नीचे दी गई है।
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<script type="text/javascript" src="xlsx.core.min.js"></script>
<script type="text/javascript" src="Blob.js"></script>
<script type="text/javascript" src="FileSaver.js"></script>
<script>
function s2ab(s) {
var buf = new ArrayBuffer(s.length);
var view = new Uint8Array(buf);
for (var i=0; i!=s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;
return buf;
}
/* set up XMLHttpRequest */
var url = "template-sample.xlsx";
var oReq = new XMLHttpRequest();
oReq.open("GET", url, true);
oReq.responseType = "arraybuffer";
oReq.onload = function(e) {
var arraybuffer = oReq.response;
/* convert data to binary string */
var data = new Uint8Array(arraybuffer);
var arr = new Array();
for(var i = 0; i != data.length; ++i) arr[i] = String.fromCharCode(data[i]);
var bstr = arr.join("");
/* Call XLSX */
var workbook = XLSX.read(bstr, {type:"binary", cellStyles:true});
console.log("read workbook");
console.log(workbook);
/* DO SOMETHING WITH workbook HERE */
var wbout = XLSX.write(workbook, {bookType:'xlsx', bookSST:true, type: 'binary', cellStyles: true});
saveAs(new Blob([s2ab(wbout)],{type:"application/octet-stream"}), "template-download.xlsx");
}
function read(){
oReq.send();
}
</script>
</head>
<body>
<button onclick="read()">save xlsx</button>
</body></html>
नमूना कोड here से लिया गया था।
जो मैं आगे देखता हूं वह या तो जेएस-xlsx लाइब्रेरी या अन्य लाइब्रेरी का उपयोग करके कोशिकाओं को शैलियों को देने का विकल्प है जो इस कार्यक्षमता को प्रदान करता है। मुझे exceljs नामक लाइब्रेरी मिली, लेकिन इसे समर्थन देने के लिए नोड जेएस की आवश्यकता है। मैं पूरी तरह क्लाइंट साइड आधारित समाधान की तलाश में हूं। इसका उपयोग कॉर्डोवा आधारित टैबलेट और डेस्कटॉप एप्लिकेशन के लिए किया जाना है।
मैं उसी समाधान की तलाश में था। क्या आप नमूना कोड के साथ अपडेट कर सकते हैं कि आपने इसे 'xlsx-style' का उपयोग करके कैसे किया। मेरी आवश्यकता है कि कुछ मूल शैली के साथ .xlsx फ़ाइल में डेटा लिखें। किसी भी मदद की सराहना करते हैं। – gihan
क्या आप कृपया मुझे बता सकते हैं कि सेल ऑब्जेक्ट में स्टाइल ऑब्जेक्ट को कैसे परिभाषित किया गया है। मैंने इस तरह से कोशिश की लेकिन काम नहीं किया।'वर सेल = {वी: डेटा [आर] [सी], एस: {बीजी रंग: "# ई 1697 बी"}} ; – gihan
मैं जल्द ही एक कार्य कोड अपडेट करने का प्रयास करूंगा। –