Créer un fichier excel avec un peu de styles à l'aide de code JavaScript coté client (si possible en utilisant js-xlsx bibliothèque)

Je veux créer un fichier excel(en .xlsx format) et le rendre disponible pour téléchargement à l'aide de Côté Client JavaScript. J'ai été en mesure de créer un exemple de fichier à l'aide de js-xlsx de la bibliothèque. Mais je ne suis pas en mesure d'appliquer tous les styles. Au moins quelques styles différents, y compris couleur d'arrière-plan à en-tête, gras d'en-tête et de l'habillage de texte pour les cellules sont nécessaires.

js-xlsx de la bibliothèque de documentation dit que nous pouvons donner de styles à l'aide de Objet De Cellule.

J'ai essayé de donner des styles à l'aide de la cellule de l'objet, mais il ne reflète pas le téléchargé .fichier xlsx. J'ai même essayé de lire un .fichier xlsx et d'écrire le même fichier à l'aide de XLSX.write() fonction. Mais il donne en retour un fichier excel avec aucun style. Idéalement, j'attends le fichier téléchargé pour avoir les mêmes styles de fichier téléchargé. Pas de la couleur de la police ou des couleurs d'arrière-plan ont été appliquées dans le recréé le fichier. J'utilise Excel 2013 pour tester les fichiers téléchargés.

Veuillez trouver ci-dessous les excel des captures d'écran avant et après le chargement.

Fichier D'Origine

Créer un fichier excel avec un peu de styles à l'aide de code JavaScript coté client (si possible en utilisant js-xlsx bibliothèque)

Fichier Téléchargé

Créer un fichier excel avec un peu de styles à l'aide de code JavaScript coté client (si possible en utilisant js-xlsx bibliothèque)

Le code est donné ci-dessous.

<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>

Exemple de code a été prise à partir de ici.

À quoi j'aspire est soit une option pour donner des styles de cellules à l'aide de js-xlsx bibliothèque ou d'une autre bibliothèque qui fournit cette fonctionnalité. J'ai trouvé une bibliothèque nommée exceljs , mais il nécessite node js pour la soutenir. Je suis à la recherche d'un purement côté client en fonction de la solution. C'est pour être utilisé pour un Cordova tablette et l'application de bureau.

Pour le téléchargement de fichier excel sans l'aide de n'importe quelle bibliothèque saisir

OriginalL'auteur Nithin Baby | 2016-11-08