var XLSX = require('./'); var sheetName = 'test & debug'; var ATTRIBUTE_VALUE_STYLE={ font: { name: "Arial", sz: 10 } }; var Workbook = function(){ this.SheetNames = []; this.Sheets = {}; }; var range = {s: {c:10000000, r:10000000}, e:{c:0, r:0}}; function updateRange(row, col) { if (range.s.r > row) { range.s.r = row;} if (range.s.c > col) { range.s.c = col; } if (range.e.r < row) { range.e.r = row; } if (range.e.c < col) { range.e.c = col; } } function addCell(wb, ws, value, type, row, col, styles) { updateRange(row, col); var cell = {t: type, v: value, s:styles}; // i use d to recognize that the format is a date, and if it is, i use z attribute to format it if (cell.t === 'd') { cell.t = 'n'; cell.z = XLSX.SSF._table[14]; } var cell_ref = XLSX.utils.encode_cell({c: col, r:row}); ws[cell_ref] = cell; } 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 datenum(v, date1904) { if(date1904) v+=1462; var epoch = Date.parse(v); return (epoch - new Date(Date.UTC(1899, 11, 30))) / (24 * 60 * 60 * 1000); } var wb = new Workbook(); var ws = {}; /* Here i add a cell with format number with value 10*/ addCell(wb, ws, 10, 'n', 0, 0, ATTRIBUTE_VALUE_STYLE); /* Here i add a cell with format number that is current date*/ addCell(wb, ws, datenum(new Date()), 'd', 0, 1, ATTRIBUTE_VALUE_STYLE); /* Here i add a cell with format number with value 10, again another number*/ addCell(wb, ws, 10, 'd', 0, 2, ATTRIBUTE_VALUE_STYLE); /* Here i add a cell with format number with value 10, again another number*/ addCell(wb, ws, "Hello null\u0000world", 's', 0, 3); ws['!ref'] = XLSX.utils.encode_range(range); wb.SheetNames.push(sheetName); wb.Sheets[sheetName] = ws; ws['!rowBreaks'] = [12,24]; ws['!colBreaks'] = [3,6]; ws['!pageSetup'] = {scale: '140'}; /* bookType can be 'xszlsx' or 'xlsm' or 'xlsb' */ var defaultCellStyle = { font: { name: "Verdana", sz: 11, color: "FF00FF88"}, fill: {fgColor: {rgb: "FFFFAA00"}}}; var wopts = { bookType:'xlsx', bookSST:false, type:'binary', defaultCellStyle: defaultCellStyle, showGridLines: false}; //console.log(JSON.stringify(wb, null,4)) var OUTFILE = '/tmp/wb.xlsx'; XLSX.writeFile(wb, OUTFILE, wopts); console.log("Results written to " + OUTFILE)