diff --git a/browser_example-simple.html b/browser_example-simple.html new file mode 100644 index 0000000..00b5ae1 --- /dev/null +++ b/browser_example-simple.html @@ -0,0 +1,708 @@ + + + + + + + SheetJS JS-XLSX In-Browser HTML Table Export Demo + + + + + + + + + + + + + + + + + + + + + diff --git a/example-4.js b/example-4.js new file mode 100644 index 0000000..acc85c5 --- /dev/null +++ b/example-4.js @@ -0,0 +1,642 @@ +var XLSX = require('xlsx'); +var OUTFILE = '/tmp/example-style.xlsx'; + +function JSDateToExcelDate(inDate) { + return 25569.0 + ((inDate.getTime() - (inDate.getTimezoneOffset() * 60 * 1000)) / (1000 * 60 * 60 * 24)); +} + +var defaultCellStyle = { font: { name: "Verdana", sz: 11, color: "FF00FF88"}, fill: {fgColor: {rgb: "FFFFAA00"}}}; + +// test to see if everything on the left equals its counterpart on the right +// but the right hand object may have other attributes which we might not care about +function basicallyEquals(left, right) { + if (Array.isArray(left) && Array.isArray(right)) { + for (var i = 0; i < left.length; i++) { + if (!basicallyEquals(left[i], right[i])) { + return false; + } + } + return true; + } + else if (typeof left == 'object' && typeof right == 'object') { + for (var key in left) { + if (key != 'bgColor') { + if (!basicallyEquals(left[key], right[key])) { + if (JSON.stringify(left[key]) == "{}" && right[key] == undefined) return true; + if (JSON.stringify(right[key]) == "{}" && left[key] == undefined) return true; + return false; + } + } + } + return true; + } + else { + if (left != right) { + return false; + } + return true; + } +} + + +var workbook, wbout, wbin; + +workbook = { + "SheetNames": [ + "Main" + ], + "Sheets": { + "Main": { + "!merges": [ + { + "s": { + "c": 0, + "r": 0 + }, + "e": { + "c": 2, + "r": 0 + } + } + ], + "A1": { + "v": "This is a submerged cell", + "s": { + "border": { + "left": { + "style": "thick", + "color": { + "auto": 1 + } + }, + "top": { + "style": "thick", + "color": { + "auto": 1 + } + }, + "bottom": { + "style": "thick", + "color": { + "auto": 1 + } + } + } + }, + "t": "s" + }, + "B1": { + "v": "Pirate ship", + "s": { + "border": { + "top": { + "style": "thick", + "color": { + "auto": 1 + } + }, + "bottom": { + "style": "thick", + "color": { + "auto": 1 + } + } + } + }, + "t": "s" + }, + "C1": { + "v": "Sunken treasure", + "s": { + "border": { + "right": { + "style": "thick", + "color": { + "auto": 1 + } + }, + "top": { + "style": "thick", + "color": { + "auto": 1 + } + }, + "bottom": { + "style": "thick", + "color": { + "auto": 1 + } + } + } + }, + "t": "s" + }, + "A2": { + "v": "Blank", + "t": "s" + }, + "B2": { + "v": "Red", + "s": { + "fill": { + "fgColor": { + "rgb": "FFFF0000" + } + } + }, + "t": "s" + }, + "C2": { + "v": "Green", + "s": { + "fill": { + "fgColor": { + "rgb": "FF00FF00" + } + } + }, + "t": "s" + }, + "D2": { + "v": "Blue", + "s": { + "fill": { + "fgColor": { + "rgb": "FF0000FF" + } + } + }, + "t": "s" + }, + "E2": { + "v": "Theme 5", + "s": { + "fill": { + "fgColor": { + "theme": 5 + } + } + }, + "t": "s" + }, + "F2": { + "v": "Theme 5 Tint -0.5", + "s": { + "fill": { + "fgColor": { + "theme": 5, + "tint": -0.5 + } + } + }, + "t": "s" + }, + "A3": { + "v": "Default", + "t": "s" + }, + "B3": { + "v": "Arial", + "s": { + "font": { + "name": "Arial", + "sz": 24, + "color": { + "theme": "5" + } + } + }, + "t": "s" + }, + "C3": { + "v": "Times New Roman", + "s": { + "font": { + "name": "Times New Roman", + bold: true, + underline: true, + italic: true, + strike: true, + outline: true, + shadow: true, + vertAlign: "superscript", + "sz": 16, + "color": { + "rgb": "FF2222FF" + } + } + }, + "t": "s" + }, + "D3": { + "v": "Courier New", + "s": { + "font": { + "name": "Courier New", + "sz": 14 + } + }, + "t": "s" + }, + "A4": { + "v": 0.618033989, + "t": "n" + }, + "B4": { + "v": 0.618033989, + "t": "n" + }, + "C4": { + "v": 0.618033989, + "t": "n" + }, + "D4": { + "v": 0.618033989, + "t": "n", + "s": { + "numFmt": "0.00%" + } + }, + "E4": { + "v": 0.618033989, + "t": "n", + "s": { + "numFmt": "0.00%", + "fill": { + "fgColor": { + "rgb": "FFFFCC00" + } + } + } + }, + "A5": { + "v": 0.618033989, + "t": "n", + "s": { + "numFmt": "0%" + } + }, + "B5": { + "v": 0.618033989, + "t": "n", + "s": { + "numFmt": "0.0%" + } + }, + "C5": { + "v": 0.618033989, + "t": "n", + "s": { + "numFmt": "0.00%" + } + }, + "D5": { + "v": 0.618033989, + "t": "n", + "s": { + "numFmt": "0.000%" + } + }, + "E5": { + "v": 0.618033989, + "t": "n", + "s": { + "numFmt": "0.0000%" + } + }, + "F5": { + "v": 0, + "t": "n", + "s": { + "numFmt": "0.00%;\\(0.00%\\);\\-;@", + "fill": { + "fgColor": { + "rgb": "FFFFCC00" + } + } + } + }, + "A6": { + "v": "Sat Mar 21 2015 23:47:34 GMT-0400 (EDT)", + "t": "s" + }, + "B6": { + "v": 42084.99137416667, + "t": "n" + }, + "C6": { + "v": 42084.99137416667, + "s": { + "numFmt": "d-mmm-yy" + }, + "t": "n" + }, + "A7": { + "v": "left", + "s": { + "alignment": { + "horizontal": "left" + } + }, + "t": "s" + }, + "B7": { + "v": "center", + "s": { + "alignment": { + "horizontal": "center" + } + }, + "t": "s" + }, + "C7": { + "v": "right", + "s": { + "alignment": { + "horizontal": "right" + } + }, + "t": "s" + }, + "A8": { + "v": "vertical", + "s": { + "alignment": { + "vertical": "top" + } + }, + "t": "s" + }, + "B8": { + "v": "vertical", + "s": { + "alignment": { + "vertical": "center" + } + }, + "t": "s" + }, + "C8": { + "v": "vertical", + "s": { + "alignment": { + "vertical": "bottom" + } + }, + "t": "s" + }, + "A9": { + "v": "indent", + "s": { + "alignment": { + "indent": "1" + } + }, + "t": "s" + }, + "B9": { + "v": "indent", + "s": { + "alignment": { + "indent": "2" + } + }, + "t": "s" + }, + "C9": { + "v": "indent", + "s": { + "alignment": { + "indent": "3" + } + }, + "t": "s" + }, + "A10": { + "v": "In publishing and graphic design, lorem ipsum is a filler text commonly used to demonstrate the graphic elements of a document or visual presentation. ", + "s": { + "alignment": { + "wrapText": 1, + "horizontal": "right", + "vertical": "center", + "indent": 1 + } + }, + "t": "s" + }, + "A11": { + "v": 41684.35264774306, + "s": { + "numFmt": "m/d/yy" + }, + "t": "n" + }, + "B11": { + "v": 41684.35264774306, + "s": { + "numFmt": "d-mmm-yy" + }, + "t": "n" + }, + "C11": { + "v": 41684.35264774306, + "s": { + "numFmt": "h:mm:ss AM/PM" + }, + "t": "n" + }, + "D11": { + "v": 42084.99137416667, + "s": { + "numFmt": "m/d/yy" + }, + "t": "n" + }, + "E11": { + "v": 42065.02247239584, + "s": { + "numFmt": "m/d/yy" + }, + "t": "n" + }, + "F11": { + "v": 42084.99137416667, + "s": { + "numFmt": "m/d/yy h:mm:ss AM/PM" + }, + "t": "n" + }, + "A12": { + "v": "Apple", + "s": { + "border": { + "top": { + "style": "thin" + }, + "left": { + "style": "thin" + }, + "right": { + "style": "thin" + }, + "bottom": { + "style": "thin" + } + } + }, + "t": "s" + }, + "C12": { + "v": "Apple", + "s": { + "border": { + "diagonalUp": 1, + "diagonalDown": 1, + "top": { + "style": "dashed", + "color": { + "auto": 1 + } + }, + "right": { + "style": "medium", + "color": { + "theme": "5" + } + }, + "bottom": { + "style": "hair", + "color": { + "theme": 5, + "tint": "-0.3" + } + }, + "left": { + "style": "thin", + "color": { + "rgb": "FFFFAA00" + } + }, + "diagonal": { + "style": "dotted", + "color": { + "auto": 1 + } + } + } + }, + "t": "s" + }, + "E12": { + "v": "Pear", + "s": { + "border": { + "diagonalUp": 1, + "diagonalDown": 1, + "top": { + "style": "dashed", + "color": { + "auto": 1 + } + }, + "right": { + "style": "dotted", + "color": { + "theme": "5" + } + }, + "bottom": { + "style": "mediumDashed", + "color": { + "theme": 5, + "tint": "-0.3" + } + }, + "left": { + "style": "double", + "color": { + "rgb": "FFFFAA00" + } + }, + "diagonal": { + "style": "hair", + "color": { + "auto": 1 + } + } + } + }, + "t": "s" + }, + "A13": { + "v": "Up 90", + "s": { + "alignment": { + "textRotation": 90 + } + }, + "t": "s" + }, + "B13": { + "v": "Up 45", + "s": { + "alignment": { + "textRotation": 45 + } + }, + "t": "s" + }, + "C13": { + "v": "Horizontal", + "s": { + "alignment": { + "textRotation": 0 + } + }, + "t": "s" + }, + "D13": { + "v": "Down 45", + "s": { + "alignment": { + "textRotation": 135 + } + }, + "t": "s" + }, + "E13": { + "v": "Down 90", + "s": { + "alignment": { + "textRotation": 180 + } + }, + "t": "s" + }, + "F13": { + "v": "Vertical", + "s": { + "alignment": { + "textRotation": 255 + } + }, + "t": "s" + }, + "A14": { + "v": "Font color test", + "s": { + "font": { + "color": { + "rgb": "FFC6EFCE" + } + } + }, + "t": "s" + }, + "!ref": "A1:F14" + } + } +} +XLSX.writeFile(workbook, OUTFILE, { defaultCellStyle: defaultCellStyle }); +console.log("open " + OUTFILE) +