{"id":2954,"date":"2026-09-01T08:57:13","date_gmt":"2026-09-01T08:57:13","guid":{"rendered":"https:\/\/www.omnis.net\/store\/?post_type=product&#038;p=2954"},"modified":"2026-09-02T18:59:48","modified_gmt":"2026-09-02T18:59:48","slug":"excel-file-connector","status":"publish","type":"product","link":"https:\/\/www.omnis.net\/store\/product\/excel-file-connector\/","title":{"rendered":"Excel File Connector"},"content":{"rendered":"","protected":false},"excerpt":{"rendered":"<p>MCWLibXL is an Omnis Studio external object that wraps the <a href=\"https:\/\/www.libxl.com\/\" target=\"_blank\" rel=\"noopener\">LibXL<\/a> library, providing a straightforward interface for reading and writing Excel files (.xls and .xlsx) directly from Omnis applications.<\/p>\n<p>!Requirement for a one time purchase perpetual licence (LibXL!) <a href=\"https:\/\/www.libxl.com\/home.html\" target=\"_blank\" rel=\"noopener\">https:\/\/www.libxl.com\/home.html<\/a><\/p>\n<p><b>MCWLibXL<\/b><\/p>\n<p><b>MCWLibXL<\/b> is an Omnis Studio external object that wraps the <a href=\"https:\/\/www.libxl.com\/\" target=\"_blank\" rel=\"noopener\">LibXL<\/a> library, providing a straightforward interface for reading and writing Excel files (.xls and .xlsx) directly from Omnis applications.<\/p>\n<p><strong>Original Project<br \/>\n<\/strong><a href=\"https:\/\/github.com\/javlacerda\/mcwlibxl\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/javlacerda\/mcwlibxl<\/a><strong><br \/>\n<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p><b>Features<\/b><\/p>\n<ul>\n<li>Create and save Excel workbooks in XLS and XLSX formats<\/li>\n<li>Read existing Excel files<\/li>\n<li>Read and write strings, numbers, booleans, dates, times, and date\/times<\/li>\n<li>Write formulas to cells<\/li>\n<li>Manage multiple sheets (add, select by name or index, list all)<\/li>\n<li>Insert rows and columns<\/li>\n<li>Full cell formatting support: fonts, colours, alignment, borders, fill patterns<\/li>\n<li>Control gridlines display and text rotation<\/li>\n<li>Navigate data ranges (first\/last row and column)<\/li>\n<\/ul>\n<p><img decoding=\"async\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAdYAAAAECAYAAAAzmx7KAAABY2lDQ1BrQ0dDb2xvclNwYWNlRGlzcGxheVAzAAAokX2QsUvDUBDGv1aloHUQHRwcMolDlJIKuji0FURxCFXB6pS+pqmQxkeSIgU3\/4GC\/4EKzm4Whzo6OAiik+jm5KTgouV5L4mkInqP435877vjOCA5bnBu9wOoO75bXMorm6UtJfWMBL0gDObxnK6vSv6uP+P9PvTeTstZv\/\/\/jcGK6TGqn5QZxl0fSKjE+p7PJe8Tj7m0FHFLshXyieRyyOeBZ71YIL4mVljNqBC\/EKvlHt3q4brdYNEOcvu06WysyTmUE1jEDjxw2DDQhAId2T\/8s4G\/gF1yN+FSn4UafOrJkSInmMTLcMAwA5VYQ4ZSk3eO7ncX3U+NtYMnYKEjhLiItZUOcDZHJ2vH2tQ8MDIEXLW54RqB1EeZrFaB11NguASM3lDPtlfNauH26Tww8CjE2ySQOgS6LSE+joToHlPzA3DpfAEDp2ITpJYOWwAAAARjSUNQDA0AAW4D4+8AAAA4ZVhJZk1NACoAAAAIAAGHaQAEAAAAAQAAABoAAAAAAAKgAgAEAAAAAQAAAdagAwAEAAAAAQAAAAQAAAAALVHNfwAAAE1JREFUWAnt0MEJACAMBEFjpSktnSr2kIeQuQIWbtYyAgQIECBAoE0gXqmqTltRiAABAgQIDBXIzNhDv7tNgAABAgQIECBAgAABAr8LXCYzBAQWa+3\/AAAAAElFTkSuQmCC\" alt=\"pastedGraphic.png\" \/><\/p>\n<p><b>Methods<\/b><\/p>\n<p><b>Workbook<\/b><\/p>\n<table cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td valign=\"middle\"><b>Method<\/b><b><\/b><\/td>\n<td valign=\"middle\"><b>Signature<\/b><b><\/b><\/td>\n<td valign=\"middle\"><b>Description<\/b><b><\/b><\/td>\n<\/tr>\n<tr>\n<td valign=\"middle\">$createbook<\/td>\n<td valign=\"middle\">$createbook()<\/td>\n<td valign=\"middle\">Creates a new Excel book in XLS format<\/td>\n<\/tr>\n<tr>\n<td valign=\"middle\">$createxmlbook<\/td>\n<td valign=\"middle\">$createxmlbook()<\/td>\n<td valign=\"middle\">Creates a new Excel book in XLSX format<\/td>\n<\/tr>\n<tr>\n<td valign=\"middle\">$loadbook<\/td>\n<td valign=\"middle\">$loadbook(name)<\/td>\n<td valign=\"middle\">Reads an Excel book from a file<\/td>\n<\/tr>\n<tr>\n<td valign=\"middle\">$savebook<\/td>\n<td valign=\"middle\">$savebook(name)<\/td>\n<td valign=\"middle\">Saves the Excel book to a file<\/td>\n<\/tr>\n<tr>\n<td valign=\"middle\">$releasebook<\/td>\n<td valign=\"middle\">$releasebook()<\/td>\n<td valign=\"middle\">Destroys the Excel book and frees memory<\/td>\n<\/tr>\n<tr>\n<td valign=\"middle\">$geterrormessage<\/td>\n<td valign=\"middle\">$geterrormessage()<\/td>\n<td valign=\"middle\">Returns the last error message<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><b>Sheets<\/b><\/p>\n<table cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td valign=\"middle\"><b>Method<\/b><b><\/b><\/td>\n<td valign=\"middle\"><b>Signature<\/b><b><\/b><\/td>\n<td valign=\"middle\"><b>Description<\/b><b><\/b><\/td>\n<\/tr>\n<tr>\n<td valign=\"middle\">$addsheet<\/td>\n<td valign=\"middle\">$addsheet(name)<\/td>\n<td valign=\"middle\">Creates a new sheet in the Excel book<\/td>\n<\/tr>\n<tr>\n<td valign=\"middle\">$selectsheet<\/td>\n<td valign=\"middle\">$selectsheet(name)<\/td>\n<td valign=\"middle\">Selects a sheet by name<\/td>\n<\/tr>\n<tr>\n<td valign=\"middle\">$selectsheetbyindex<\/td>\n<td valign=\"middle\">$selectsheetbyindex(index)<\/td>\n<td valign=\"middle\">Selects a sheet by its index<\/td>\n<\/tr>\n<tr>\n<td valign=\"middle\">$getsheetnames<\/td>\n<td valign=\"middle\">$getsheetnames(list)<\/td>\n<td valign=\"middle\">Returns a list with all sheet names<\/td>\n<\/tr>\n<tr>\n<td valign=\"middle\">$getactivesheet<\/td>\n<td valign=\"middle\">$getactivesheet(name)<\/td>\n<td valign=\"middle\">Returns the name of the current sheet<\/td>\n<\/tr>\n<tr>\n<td valign=\"middle\">$getactivesheetindex<\/td>\n<td valign=\"middle\">$getactivesheetindex(index)<\/td>\n<td valign=\"middle\">Returns the index of the current sheet<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><b>Reading Cells<\/b><\/p>\n<table cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td valign=\"middle\"><b>Method<\/b><b><\/b><\/td>\n<td valign=\"middle\"><b>Signature<\/b><b><\/b><\/td>\n<td valign=\"middle\"><b>Description<\/b><b><\/b><\/td>\n<\/tr>\n<tr>\n<td valign=\"middle\">$readstr<\/td>\n<td valign=\"middle\">$readstr(row, col, text)<\/td>\n<td valign=\"middle\">Reads a string from a cell<\/td>\n<\/tr>\n<tr>\n<td valign=\"middle\">$readnum<\/td>\n<td valign=\"middle\">$readnum(row, col, num)<\/td>\n<td valign=\"middle\">Reads a numeric value from a cell<\/td>\n<\/tr>\n<tr>\n<td valign=\"middle\">$readbool<\/td>\n<td valign=\"middle\">$readbool(row, col, bool)<\/td>\n<td valign=\"middle\">Reads a boolean value from a cell<\/td>\n<\/tr>\n<tr>\n<td valign=\"middle\">$readdate<\/td>\n<td valign=\"middle\">$readdate(row, col, day, \u00a0month,year)<\/td>\n<td valign=\"middle\">Reads a date from a cell<\/td>\n<\/tr>\n<tr>\n<td valign=\"middle\">$readtime<\/td>\n<td valign=\"middle\">$readtime(row, col, hours, minutes, seconds)<\/td>\n<td valign=\"middle\">Reads a time from a cell<\/td>\n<\/tr>\n<tr>\n<td valign=\"middle\">$readdatetime<\/td>\n<td valign=\"middle\">$readdatetime(row, col, year, month, day, hours, minutes, seconds)<\/td>\n<td valign=\"middle\">Reads a date\/time from a cell<\/td>\n<\/tr>\n<tr>\n<td valign=\"middle\">$getcelltype<\/td>\n<td valign=\"middle\">$getcelltype(row,col,celltype)<\/td>\n<td valign=\"middle\">Returns the data type of a cell (see Cell Type Constants)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><b>Writing Cells<\/b><\/p>\n<table cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td valign=\"middle\"><b>Method<\/b><b><\/b><\/td>\n<td valign=\"middle\"><b>Signature<\/b><b><\/b><\/td>\n<td valign=\"middle\"><b>Description<\/b><b><\/b><\/td>\n<\/tr>\n<tr>\n<td valign=\"middle\">$writestr<\/td>\n<td valign=\"middle\">$writestr(row,col,text)<\/td>\n<td valign=\"middle\">Writes a string to a cell<\/td>\n<\/tr>\n<tr>\n<td valign=\"middle\">$writenum<\/td>\n<td valign=\"middle\">$writenum(row, col, num)<\/td>\n<td valign=\"middle\">Writes a numeric value to a cell<\/td>\n<\/tr>\n<tr>\n<td valign=\"middle\">$writebool<\/td>\n<td valign=\"middle\">$writebool(row, col, bool)<\/td>\n<td valign=\"middle\">Writes a boolean value to a cell<\/td>\n<\/tr>\n<tr>\n<td valign=\"middle\">$writeformula<\/td>\n<td valign=\"middle\">$writeformula(row, col, formula)<\/td>\n<td valign=\"middle\">Writes a formula to a cell<\/td>\n<\/tr>\n<tr>\n<td valign=\"middle\">$writedate<\/td>\n<td valign=\"middle\">$writedate(row, col, day, month, year)<\/td>\n<td valign=\"middle\">Writes a date to a cell<\/td>\n<\/tr>\n<tr>\n<td valign=\"middle\">$writetime<\/td>\n<td valign=\"middle\">$writetime(row, col, hours, minutes, seconds)<\/td>\n<td valign=\"middle\">Writes a time to a cell<\/td>\n<\/tr>\n<tr>\n<td valign=\"middle\">$writedatetime<\/td>\n<td valign=\"middle\">$writedatetime(row, col, year, month, day, hours, minutes, seconds)<\/td>\n<td valign=\"middle\">Writes a date\/time to a cell<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><b>Navigation<\/b><\/p>\n<table cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td valign=\"middle\"><b>Method<\/b><b><\/b><\/td>\n<td valign=\"middle\"><b>Signature<\/b><b><\/b><\/td>\n<td valign=\"middle\"><b>Description<\/b><b><\/b><\/td>\n<\/tr>\n<tr>\n<td valign=\"middle\">$getfirstrow<\/td>\n<td valign=\"middle\">$getfirstrow(row)<\/td>\n<td valign=\"middle\">Returns the first row containing data<\/td>\n<\/tr>\n<tr>\n<td valign=\"middle\">$getlastrow<\/td>\n<td valign=\"middle\">$getlastrow(row)<\/td>\n<td valign=\"middle\">Returns the last row containing data<\/td>\n<\/tr>\n<tr>\n<td valign=\"middle\">$getfirstcol<\/td>\n<td valign=\"middle\">$getfirstcol(col)<\/td>\n<td valign=\"middle\">Returns the first column containing data<\/td>\n<\/tr>\n<tr>\n<td valign=\"middle\">$getlastcol<\/td>\n<td valign=\"middle\">$getlastcol(col)<\/td>\n<td valign=\"middle\">Returns the last column containing data<\/td>\n<\/tr>\n<tr>\n<td valign=\"middle\">$insertrow<\/td>\n<td valign=\"middle\">$insertrow(start,end)<\/td>\n<td valign=\"middle\">Inserts one or more rows between start and end<\/td>\n<\/tr>\n<tr>\n<td valign=\"middle\">$insertcol<\/td>\n<td valign=\"middle\">$insertcol(start,end)<\/td>\n<td valign=\"middle\">Inserts one or more columns between start and end<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><b>Formatting<\/b><\/p>\n<p>Formats and fonts are created by name, activated, configured, and then applied to subsequent write operations.<\/p>\n<table cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td valign=\"middle\"><b>Method<\/b><b><\/b><\/td>\n<td valign=\"middle\"><b>Signature<\/b><b><\/b><\/td>\n<td valign=\"middle\"><b>Description<\/b><b><\/b><\/td>\n<\/tr>\n<tr>\n<td valign=\"middle\">$addformat<\/td>\n<td valign=\"middle\">$addformat (name)<\/td>\n<td valign=\"middle\">Creates a format with the specified name<\/td>\n<\/tr>\n<tr>\n<td valign=\"middle\">$setformat<\/td>\n<td valign=\"middle\">$setformat (name)<\/td>\n<td valign=\"middle\">Selects and activates a format by name<\/td>\n<\/tr>\n<tr>\n<td valign=\"middle\">$unsetformat<\/td>\n<td valign=\"middle\">$unsetformat ()<\/td>\n<td valign=\"middle\">Clears the current format<\/td>\n<\/tr>\n<tr>\n<td valign=\"middle\">$setalignh<\/td>\n<td valign=\"middle\">$setalignh (type)<\/td>\n<td valign=\"middle\">Sets horizontal alignment (see Alignment Constants)<\/td>\n<\/tr>\n<tr>\n<td valign=\"middle\">$setalignv<\/td>\n<td valign=\"middle\">$setalignv (type)<\/td>\n<td valign=\"middle\">Sets vertical alignment (see Alignment Constants)<\/td>\n<\/tr>\n<tr>\n<td valign=\"middle\">$setborder<\/td>\n<td valign=\"middle\">$setborder (type)<\/td>\n<td valign=\"middle\">Sets the border style for all sides<\/td>\n<\/tr>\n<tr>\n<td valign=\"middle\">$setbordercolor<\/td>\n<td valign=\"middle\">$setbordercolor (color)<\/td>\n<td valign=\"middle\">Sets the border color<\/td>\n<\/tr>\n<tr>\n<td valign=\"middle\">$setbordersides<\/td>\n<td valign=\"middle\">$setbordersides (top, bottom, left, right)<\/td>\n<td valign=\"middle\">Sets border style individually per side<\/td>\n<\/tr>\n<tr>\n<td valign=\"middle\">$setpatternforegroundcolor<\/td>\n<td valign=\"middle\">$setpatternforegroundcolor (color)<\/td>\n<td valign=\"middle\">Sets the foreground pattern color<\/td>\n<\/tr>\n<tr>\n<td valign=\"middle\">$setpatternbackgroundcolor<\/td>\n<td valign=\"middle\">$setpatternbackgroundcolor (color)<\/td>\n<td valign=\"middle\">Sets the background pattern color<\/td>\n<\/tr>\n<tr>\n<td valign=\"middle\">$setfillpattern<\/td>\n<td valign=\"middle\">$setfillpattern (pattern)<\/td>\n<td valign=\"middle\">Sets the fill pattern (see Fill Pattern Constants)<\/td>\n<\/tr>\n<tr>\n<td valign=\"middle\">$setrotation<\/td>\n<td valign=\"middle\">$setrotation (value)<\/td>\n<td valign=\"middle\">Sets text rotation: 0\u201390 clockwise, 91\u2013180 counter-clockwise, 255 vertical<\/td>\n<\/tr>\n<tr>\n<td valign=\"middle\">$setdisplaygridlines<\/td>\n<td valign=\"middle\">$setdisplaygridlines (activate)<\/td>\n<td valign=\"middle\">Enables\/disables gridlines display<\/td>\n<\/tr>\n<tr>\n<td valign=\"middle\">$addfont<\/td>\n<td valign=\"middle\">$addfont (name)<\/td>\n<td valign=\"middle\">Creates a font with the specified name<\/td>\n<\/tr>\n<tr>\n<td valign=\"middle\">$setfont<\/td>\n<td valign=\"middle\">$setfont (name)<\/td>\n<td valign=\"middle\">Selects and activates a font by name<\/td>\n<\/tr>\n<tr>\n<td valign=\"middle\">$unsetfont<\/td>\n<td valign=\"middle\">$unsetfont ()<\/td>\n<td valign=\"middle\">Clears the current font<\/td>\n<\/tr>\n<tr>\n<td valign=\"middle\">$setfontname<\/td>\n<td valign=\"middle\">$setfontname (name)<\/td>\n<td valign=\"middle\">Sets the font face name<\/td>\n<\/tr>\n<tr>\n<td valign=\"middle\">$setfontsize<\/td>\n<td valign=\"middle\">$setfontsize (size)<\/td>\n<td valign=\"middle\">Sets the font size<\/td>\n<\/tr>\n<tr>\n<td valign=\"middle\">$setfontcolor<\/td>\n<td valign=\"middle\">$setfontcolor (color)<\/td>\n<td valign=\"middle\">Sets the font color (see Color Constants)<\/td>\n<\/tr>\n<tr>\n<td valign=\"middle\">$setfontitalic<\/td>\n<td valign=\"middle\">$setfontitalic (activate)<\/td>\n<td valign=\"middle\">Enables\/disables italic<\/td>\n<\/tr>\n<tr>\n<td valign=\"middle\">$setfontbold<\/td>\n<td valign=\"middle\">$setfontbold (activate)<\/td>\n<td valign=\"middle\">Enables\/disables bold<\/td>\n<\/tr>\n<tr>\n<td valign=\"middle\">$setfontunderline<\/td>\n<td valign=\"middle\">$setfontunderline (activate)<\/td>\n<td valign=\"middle\">Enables\/disables underline<\/td>\n<\/tr>\n<tr>\n<td valign=\"middle\">$setformatfont<\/td>\n<td valign=\"middle\">$setformatfont (fontname)<\/td>\n<td valign=\"middle\">Associates a font with the current format<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p style=\"font-weight: 400;\">Also implemented are various constants for easier user such as for cell types, alignment, border styles, fill patterns and colours.<\/p>\n","protected":false},"featured_media":2969,"template":"","meta":[],"product_brand":[],"product_cat":[134],"product_tag":[],"class_list":["post-2954","product","type-product","status-publish","has-post-thumbnail","product_cat-marketplace","first","instock","downloadable","virtual","taxable","purchasable","product-type-simple"],"_links":{"self":[{"href":"https:\/\/www.omnis.net\/store\/wp-json\/wp\/v2\/product\/2954","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.omnis.net\/store\/wp-json\/wp\/v2\/product"}],"about":[{"href":"https:\/\/www.omnis.net\/store\/wp-json\/wp\/v2\/types\/product"}],"version-history":[{"count":5,"href":"https:\/\/www.omnis.net\/store\/wp-json\/wp\/v2\/product\/2954\/revisions"}],"predecessor-version":[{"id":2973,"href":"https:\/\/www.omnis.net\/store\/wp-json\/wp\/v2\/product\/2954\/revisions\/2973"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.omnis.net\/store\/wp-json\/wp\/v2\/media\/2969"}],"wp:attachment":[{"href":"https:\/\/www.omnis.net\/store\/wp-json\/wp\/v2\/media?parent=2954"}],"wp:term":[{"taxonomy":"product_brand","embeddable":true,"href":"https:\/\/www.omnis.net\/store\/wp-json\/wp\/v2\/product_brand?post=2954"},{"taxonomy":"product_cat","embeddable":true,"href":"https:\/\/www.omnis.net\/store\/wp-json\/wp\/v2\/product_cat?post=2954"},{"taxonomy":"product_tag","embeddable":true,"href":"https:\/\/www.omnis.net\/store\/wp-json\/wp\/v2\/product_tag?post=2954"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}