web-dev-qa-db-ja.com

SheetJS .xlsxで生成されたファイルにセルの枠線を追加するにはどうすればよいですか?

SheetJS .xlsxで生成されたファイルを持っていますが、bordercellsに入れることができません。

私はこれを持っています:

enter image description here

そして私はこれが必要です:

enter image description here

SheetJSでそれを行う方法はありますか?背景色のような別のセルスタイルを適用する方法がある場合は、それはクールです。

[〜#〜]編集[〜#〜]

私はこの機能でシートを作っています:

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

この例のスニペットを作成しました。ここにボーダーや別のセルスタイルを配置できる場合は、これが勝利です。

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

SheetJSライブラリのコミュニティバージョンを使用していますが、このバージョンではスタイル設定できません。しかし Proバージョン のスタイリング機能が利用可能です。

この公式コメントを確認してください:

これはコミュニティバージョンです。また、パフォーマンスの強化、スタイリングなどの追加機能、および専用サポートを備えたプロバージョンも提供しています。

Proバージョンの詳細については、公式サイトにアクセスしてください。 http://sheetjs.com/pro

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