var STD = require("lib/std"); var FILE = require("lib/file"); // msoffice.js var FileTypes = {}; // https://support.microsoft.com/en-au/office/file-formats-that-are-supported-in-excel-0943ff2c-6014-4e8d-aaea-b83d51d46247 FileTypes.Excel = [ {"extension": [".xlsx"], "type": "Excel Workbook"}, {"extension": [".xlsm"], "type": "Excel Macro-Enabled Workbook (code)"}, {"extension": [".xlsb"], "type": "Excel Binary Workbook"}, {"extension": [".xltx"], "type": "Template"}, {"extension": [".xltm"], "type": "Template (code)"}, {"extension": [".xls"], "type": "Excel 97- Excel 2003 Workbook"}, {"extension": [".xlt"], "type": "Excel 97- Excel 2003 Template"}, {"extension": [".xls"], "type": "Microsoft Excel 5.0/95 Workbook"}, {"extension": [".xml"], "type": "XML Spreadsheet 2003"}, {"extension": [".xml"], "type": "XML Data"}, {"extension": [".xlam"], "type": "Excel Add-In"}, {"extension": [".xla"], "type": "Excel 97-2003 Add-In"}, {"extension": [".xlw"], "type": "Excel 4.0 Workbook"}, {"extension": [".xlr"], "type": "Works 6.0-9.0 spreadsheet"}, {"extension": [".prn"], "type": "Formatted Text (Space-delimited)"}, {"extension": [".txt"], "type": "Text (Tab-delimited)"}, {"extension": [".txt"], "type": "Text (Macintosh)"}, {"extension": [".txt"], "type": "Text (MS-DOS)"}, {"extension": [".txt"], "type": "Unicode Text"}, {"extension": [".csv"], "type": "CSV (comma delimited)"}, {"extension": [".csv"], "type": "CSV (Macintosh)"}, {"extension": [".csv"], "type": "CSV (MS-DOS)"}, {"extension": [".dif"], "type": "DIF"}, {"extension": [".slk"], "type": "SYLK"}, {"extension": [".dbf"], "type": "DBF 3, DBF 4"}, {"extension": [".ods"], "type": "OpenDocument Spreadsheet"}, {"extension": [".pdf"], "type": "PDF"}, {"extension": [".xps"], "type": "XPS Document"}, {"extension": [".wmf", ".emf"], "type": "Picture"}, {"extension": [".bmp"], "type": "Bitmap"}, {"extension": [".xls"], "type": "Microsoft Excel file formats"}, {"extension": [".slk"], "type": "SYLK"}, {"extension": [".dif"], "type": "DIF"}, {"extension": [".txt"], "type": "Text (tab-delimited)"}, {"extension": [".csv"], "type": "CSV (Comma-delimited)"}, {"extension": [".rtf"], "type": "Formatted text (Space-delimited)"}, {"extension": [".gif", ".jpg", ".doc", ".xls", ".bmp"], "type": "Embedded object"}, {"extension": [".gif", ".jpg", ".doc", ".xls", ".bmp"], "type": "Linked object"}, {"extension": [".emf"], "type": "Office drawing object"}, {"extension": [".txt"], "type": "Text"}, {"extension": [".mht", ".mhtml"], "type": "Single File Web Page"}, {"extension": [".htm", ".html"], "type": "Web Page"} ]; // https://support.microsoft.com/en-au/office/file-formats-that-are-supported-in-powerpoint-252c6fa0-a4bc-41be-ac82-b77c9773f9dc FileTypes.PowerPoint = [ {"extension": [".pptx"], "type": "PowerPoint Presentation"}, {"extension": [".pptm"], "type": "PowerPoint Macro-Enabled Presentation"}, {"extension": [".ppt"], "type": "PowerPoint 97-2003 Presentation"}, {"extension": [".pdf"], "type": "PDF Document Format"}, {"extension": [".xps"], "type": "XPS Document Format"}, {"extension": [".potx"], "type": "PowerPoint Design Templates"}, {"extension": [".potm"], "type": "PowerPoint Macro-Enabled Design Template"}, {"extension": [".pot"], "type": "PowerPoint 97-2003 Design Template"}, {"extension": [".thmx"], "type": "Office Theme"}, {"extension": [".ppsx"], "type": "PowerPoint Show"}, {"extension": [".ppsm"], "type": "PowerPoint Macro-Enabled Show"}, {"extension": [".pps"], "type": "PowerPoint 97-2003 Show"}, {"extension": [".ppam"], "type": "PowerPoint Add-In"}, {"extension": [".ppa"], "type": "PowerPoint 97-2003 Add-In"}, {"extension": [".xml"], "type": "PowerPoint XML Presentation"}, {"extension": [".mp4"], "type": "MPEG-4 Video"}, {"extension": [".wmv"], "type": "Windows Media Video"}, {"extension": [".gif"], "type": "GIF (Graphics Interchange Format)"}, {"extension": [".jpg"], "type": "JPEG (Joint Photographic Experts Group) FileFormat"}, {"extension": [".png"], "type": "PNG (Portable Network Graphics) Format"}, {"extension": [".tif"], "type": "TIFF (Tag Image File Format)"}, {"extension": [".bmp"], "type": "Device Independent Bitmap"}, {"extension": [".wmf"], "type": "Windows Metafile"}, {"extension": [".emf"], "type": "Enhanced Windows Metafile"}, {"extension": [".rtf"], "type": "Outline/RTF"}, {"extension": [".pptx"], "type": "PowerPoint Picture Presentation"}, {"extension": [".pptx"], "type": "Strict Open XML Presentation"}, {"extension": [".odp"], "type": "OpenDocument Presentation"}, {"extension": [".mht", ".mhtml"], "type": "Single File Web Page"}, {"extension": [".htm", ".html"], "type": "Web Page"} ]; // https://learn.microsoft.com/en-us/deployoffice/compat/office-file-format-reference#file-formats-that-are-supported-in-word FileTypes.Word = [ {"extension": [".doc"], "type": "Word 97-2003 Document"}, {"extension": [".docm"], "type": "Word Macro-Enabled Document"}, {"extension": [".docx"], "type": "Word Document"}, {"extension": [".docx"], "type": "Strict Open XML Document"}, {"extension": [".dot"], "type": "Word 97-2003 Template"}, {"extension": [".dotm"], "type": "Word Macro-Enabled Template"}, {"extension": [".dotx"], "type": "Word Template"}, {"extension": [".htm", ".html"], "type": "Web Page"}, {"extension": [".htm", ".html"], "type": "Web Page, Filtered"}, {"extension": [".mht", ".mhtml"], "type": "Single File Web Page"}, {"extension": [".odt"], "type": "OpenDocument Text"}, {"extension": [".pdf"], "type": "PDF"}, {"extension": [".rtf"], "type": "Rich Text Format"}, {"extension": [".txt"], "type": "Plain Text"}, {"extension": [".wps"], "type": "Works 6-9 Document"}, {"extension": [".xml"], "type": "Word 2003 XML Document"}, {"extension": [".xml"], "type": "Word XML Document"}, {"extension": [".xps"], "type": "XPS Document"} ]; // Example: new Office.Excel() function Excel() { this.Application = CreateObject("Excel.Application"); this.Version = this.Application.Version; this.Application.Visible = true; console.info("Microsoft Excel Version:", this.Version); this.CurrentWorkbook = null; this.CurrentWorksheet = null; this.open = function(filename) { if (typeof filename !== "undefined") { Application.Workbooks.Open(filename); this.CurrentWorkbook = Application.ActiveWorkbook; } else { this.CurrentWorkbook = this.Application.Workbooks.Add(); } this.selectWorksheet(1); }; this.close = function() { try { this.CurrentWorksheet = null; this.CurrentWorkbook.Close(); this.CurrentWorkbook = null; this.Application.Quit(); this.Application = null; } catch (e) { this.CurrentWorksheet = null; this.CurrentWorkbook = null; this.Application = null; } }; this.saveAs = function(filename) { try { this.CurrentWorkbook.saveAs(filename); return FILE.fileExists(filename); } catch (e) { console.error("Could not save a file:", e.message); return false; } }; this.selectWorksheet = function(idx) { if (idx == 0) { this.CurrentWorksheet = this.Application.ActiveSheet; } else { this.CurrentWorksheet = this.CurrentWorkbook.Worksheets(idx); } }; this.getValueByPosition = function(row, col) { return this.CurrentWorksheet.Cells(row, col).Value; }; this.setValueByPosition = function(row, col, value) { return this.CurrentWorksheet.Cells(row, col).Value = value; }; }; Excel.SupportedFileTypes = FileTypes.Excel; // Example: new Office.PowerPoint() function PowerPoint() { this.Application = CreateObject("PowerPoint.Application"); } PowerPoint.SupportedFileTypes = FileTypes.PowerPoint; // Example: new Office.Word() function Word() { this.Application = CreateObject("Word.Application"); } Word.SupportedFileTypes = FileTypes.Word; exports.Excel = Excel; exports.PowerPoint = PowerPoint; exports.Word = Word; exports.VERSIONINFO = "Microsoft Office interface (msoffice.js) version 0.1.2"; exports.AUTHOR = "abuse@catswords.net"; exports.global = global; exports.require = global.require;