J'ai un fichier généré par SheetJS .xlsx, mais je n'ai pas pu mettre border
dans cells
.
J'ai ceci:
Et j'ai besoin de ça:
Existe-t-il un moyen de le faire avec SheetJS
? Ce sera cool s'il existe un moyen d'appliquer un autre style de cellule, comme la couleur d'arrière-plan.
[~ # ~] modifier [~ # ~] :
Je fais les feuilles avec cette fonction:
function makeSheet(wb, day){ //sheet for a specific day
var ws = XLSX.utils.table_to_sheet(document.getElementById("table"+day));
wb.SheetNames.Push(day);
wb.Sheets[day] = ws;
//columns width working ok
wb["Sheets"][day]["!cols"] = [{ wpx : 70 },{ wpx : 121 }];
//wb["Sheets"][day]["A1"]["s"] = {"border":"1px"}; //I've tried this but doesn't work
return wb;
}
EDIT 2
J'ai créé cet exemple d'extrait, si vous pouvez mettre des bordures et/ou un autre style de cellule ici, ce sera une victoire:
$(document).ready(myMain);
function myMain(){
$(document).on("click","#btnexcel", function(){makeExcel()});
}
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;
}
function makeExcel(){
var wb = XLSX.utils.table_to_book(document.getElementById("myTable"),{sheet:"Sheet 1"}) //my html table
var wbout = XLSX.write(wb, {bookType:'xlsx', bookSST:true, type: 'binary'});
saveAs(new Blob([s2ab(wbout)],{type:"application/octet-stream"}), 'MyExcel.xlsx');
}
<!-- JQuery -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<!-- Bootstrap CSS-->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<!-- Bootstrap JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<script lang="javascript" src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.12.13/xlsx.full.min.js"></script>
<script src="https://fastcdn.org/FileSaver.js/1.1.20151003/FileSaver.min.js"></script>
<button id="btnexcel">Download Excel</button>
<table id="myTable" border="1">
<thead><tr><th>hello</th><th>dear community</th></tr></thead>
<tbody>
<tr><td>I need borders</td><td>around here</td></tr>
<tr><td>I'll be glad</td><td>if you help me</td></tr>
</tbody>
</table>
Vous utilisez la version communautaire de la bibliothèque SheetJS
et avec cette version vous ne pouvez pas faire du style. MAIS dans Version Pro la fonction de style est disponible.
Découvrez ce commentaire officiel:
Ceci est la version communautaire. Nous proposons également une version pro avec des améliorations de performances, des fonctionnalités supplémentaires comme le style et un support dédié.
Pour plus d'informations sur la version Pro, visitez leur site officiel: http://sheetjs.com/pro
var wscols = [{wpx: 100}];
ws['!cols'] = wscols ;