Mercurial > forge
changeset 11718:6a31234d5be7 octave-forge
Fix wrong fallback to JXL for some OOXML files
author | prnienhuis |
---|---|
date | Tue, 21 May 2013 19:57:31 +0000 |
parents | fb2d66f48f86 |
children | 0fa62b47e5cb |
files | main/io/inst/xlsopen.m |
diffstat | 1 files changed, 22 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/main/io/inst/xlsopen.m Tue May 21 19:56:48 2013 +0000 +++ b/main/io/inst/xlsopen.m Tue May 21 19:57:31 2013 +0000 @@ -125,6 +125,7 @@ ## particular interface ## 2012-04-17 Fix checks on xls or xls? suffix (due to Vermylen) ## 2012-04-21 Revert xls/xlsx type check (was good as it stood) +## 2013-05-16 Fix wrong fallback to JXL of OOXML function [ xls ] = xlsopen (filename, xwrite=0, reqinterface=[]) @@ -252,20 +253,34 @@ [ xls, xlssupport, lastintf ] = __COM_spsh_open__ (xls, xwrite, filename, xlssupport); endif - if (xlsinterfaces.POI && (chk1 || chk2) && ! xlssupport) - [ xls, xlssupport, lastintf ] = __POI_spsh_open__ (xls, xwrite, filename, xlssupport, chk1, chk2, xlsinterfaces); + if (! xlssupport) + if (xlsinterfaces.POI && (chk1 || chk2)) + [ xls, xlssupport, lastintf ] = __POI_spsh_open__ (xls, xwrite, filename, xlssupport, chk1, chk2, xlsinterfaces); + elseif ~(chk1 || chk2) + error ("xlsopen.m: unsupported file format for Apache POI") + endif endif - if (xlsinterfaces.JXL && chk1 && ! xlssupport) - [ xls, xlssupport, lastintf ] = __JXL_spsh_open__ (xls, xwrite, filename, xlssupport, chk1); + if (! xlssupport) + if (xlsinterfaces.JXL && chk1) + [ xls, xlssupport, lastintf ] = __JXL_spsh_open__ (xls, xwrite, filename, xlssupport, chk1); + elseif (~chk1) + error ("xlsopen.m: unsupported file format for JExcelAPI") + endif endif - if (xlsinterfaces.OXS && chk1 && ! xlssupport) + if (! xlssupport) + if (xlsinterfaces.OXS && chk1) [ xls, xlssupport, lastintf ] = __OXS_spsh_open__ (xls, xwrite, filename, xlssupport, chk1); + elseif (~chk1) + error ("xlsopen.m: unsupported file format for OpenXLS") + endif endif - if (xlsinterfaces.UNO && ! xlssupport) - [ xls, xlssupport, lastintf ] = __UNO_spsh_open__ (xls, xwrite, filename, xlssupport); + if (! xlssupport) + if (xlsinterfaces.UNO) + [ xls, xlssupport, lastintf ] = __UNO_spsh_open__ (xls, xwrite, filename, xlssupport); + endif endif ## if