web-dev-qa-db-fra.com

Comment ajouter une bordure de cellule au fichier généré SheetJS .xlsx?

J'ai un fichier généré par SheetJS .xlsx, mais je n'ai pas pu mettre border dans cells.

J'ai ceci:

enter image description here

Et j'ai besoin de ça:

enter image description here

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

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

6
Vikasdeep Singh
var wscols = [{wpx: 100}];
ws['!cols'] = wscols ;
0
Varun Rayen