From: <prn...@us...> - 2010-08-27 20:24:25
|
Revision: 7579 http://octave.svn.sourceforge.net/octave/?rev=7579&view=rev Author: prnienhuis Date: 2010-08-27 20:24:19 +0000 (Fri, 27 Aug 2010) Log Message: ----------- Improved help text Modified Paths: -------------- trunk/octave-forge/main/io/inst/spsh_chkrange.m Modified: trunk/octave-forge/main/io/inst/spsh_chkrange.m =================================================================== --- trunk/octave-forge/main/io/inst/spsh_chkrange.m 2010-08-27 20:23:44 UTC (rev 7578) +++ trunk/octave-forge/main/io/inst/spsh_chkrange.m 2010-08-27 20:24:19 UTC (rev 7579) @@ -16,14 +16,14 @@ ## -*- texinfo -*- ## @deftypefn {Function File} [ @var{topleftaddr}, @var{nrows}, @var{ncols}, @var{toprow}, @var{leftcol} ] = spsh_chkrange ( @var{range}, @var{rowsize}, @var{colsize}, @var{intf-type}, @var{filename}) -## Get and check various cell and range address parameters for spreadsheet input. +## (Internal function) Get and check various cell and range address parameters for spreadsheet input. ## ## spsh_chkrange should not be invoked directly but rather through oct2xls or oct2ods. ## ## Example: ## ## @example -## [tl, nrw, ncl, trw, lcl] = spsh_chkrange (crange, nr, nc, xtype, filename); +## [tl, nrw, ncl, trw, lcl] = spsh_chkrange (crange, nr, nc, xtype, fileptr); ## @end example ## ## @end deftypefn @@ -31,10 +31,24 @@ ## Author: Philip Nienhuis, <prn...@us...> ## Created: 2010-08-02 ## Updates: -## +## 2010-08-25 Option for supplying file pointer rather than interface_type & filename +## (but this can be wasteful if the file ptr is copied) -function [ topleft, nrows, ncols, trow, lcol ] = spsh_chkrange (crange, nr, nc, xtype, filename) +function [ topleft, nrows, ncols, trow, lcol ] = spsh_chkrange (crange, nr, nc, intf, filename=[]) + if (nargin == 4) + # File pointer input assumed + if (isstruct (xtype)) + xtype = intf.xtype; + filename = intf.filename; + else + error ("Too few or improper arguments supplied."); + endif + else + # Interface type & filename supplied + xtype = intf; + endif + # Define max row & column capacity from interface type & file suffix switch xtype case {'COM', 'POI'} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <prn...@us...> - 2011-03-29 20:58:05
|
Revision: 8190 http://octave.svn.sourceforge.net/octave/?rev=8190&view=rev Author: prnienhuis Date: 2011-03-29 20:57:59 +0000 (Tue, 29 Mar 2011) Log Message: ----------- Bug fix: wrong reference to xls struct Modified Paths: -------------- trunk/octave-forge/main/io/inst/spsh_chkrange.m Modified: trunk/octave-forge/main/io/inst/spsh_chkrange.m =================================================================== --- trunk/octave-forge/main/io/inst/spsh_chkrange.m 2011-03-29 20:57:13 UTC (rev 8189) +++ trunk/octave-forge/main/io/inst/spsh_chkrange.m 2011-03-29 20:57:59 UTC (rev 8190) @@ -33,12 +33,13 @@ ## Updates: ## 2010-08-25 Option for supplying file pointer rather than interface_type & filename ## (but this can be wasteful if the file ptr is copied) +## 2011-03-29 Bug fix - unrecognized pointer struct & wrong type error msg function [ topleft, nrows, ncols, trow, lcol ] = spsh_chkrange (crange, nr, nc, intf, filename=[]) if (nargin == 4) # File pointer input assumed - if (isstruct (xtype)) + if (isstruct (intf)) xtype = intf.xtype; filename = intf.filename; else @@ -59,14 +60,14 @@ # OOXML (COM needs Excel 2007+ for this) ROW_CAP = 1048576; COL_CAP = 16384; endif - case 'JXL' - # JExcelAPI can only process BIFF5 & BIFF8 + case {'JXL', 'OXS'} + # JExcelAPI & OpenXLS can only process BIFF5 & BIFF8 ROW_CAP = 65536; COL_CAP = 256; case {'OTK', 'JOD'} # ODS ROW_CAP = 65536; COL_CAP = 1024; otherwise - error (sprintf ("Unknown interface type - %s\n", spptr.xtype)); + error (sprintf ("Unknown interface type - %s\n", xtype)); endswitch if (isempty (deblank (crange))) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <prn...@us...> - 2011-04-21 22:01:56
|
Revision: 8227 http://octave.svn.sourceforge.net/octave/?rev=8227&view=rev Author: prnienhuis Date: 2011-04-21 22:01:50 +0000 (Thu, 21 Apr 2011) Log Message: ----------- Improper OOXML detection fixed; tests added Modified Paths: -------------- trunk/octave-forge/main/io/inst/spsh_chkrange.m Modified: trunk/octave-forge/main/io/inst/spsh_chkrange.m =================================================================== --- trunk/octave-forge/main/io/inst/spsh_chkrange.m 2011-04-21 22:00:57 UTC (rev 8226) +++ trunk/octave-forge/main/io/inst/spsh_chkrange.m 2011-04-21 22:01:50 UTC (rev 8227) @@ -34,6 +34,8 @@ ## 2010-08-25 Option for supplying file pointer rather than interface_type & filename ## (but this can be wasteful if the file ptr is copied) ## 2011-03-29 Bug fix - unrecognized pointer struct & wrong type error msg +## 2011-04-21 Bug fix - wouldn't properly detect OOXML from extension +## '' Added tests function [ topleft, nrows, ncols, trow, lcol ] = spsh_chkrange (crange, nr, nc, intf, filename=[]) @@ -53,7 +55,7 @@ # Define max row & column capacity from interface type & file suffix switch xtype case {'COM', 'POI'} - if (strmatch (tolower (filename(end-3:end)), '.xls')) + if (strcmp ('xls', tolower (filename(end-2:end)))) # BIFF5 & BIFF8 ROW_CAP = 65536; COL_CAP = 256; else @@ -95,3 +97,52 @@ ncols = min (ncols, nc); endfunction + +# Test COM using ptr struct +%!test +%! intf = struct ("xtype", 'COM', "app", [], "filename", 'test.xls', "workbook", [], "changed", 0, "limits", []); +%! tstrange = 'D2:IY67356'; +%! [a1, a2, a3, a4, a5] = spsh_chkrange (tstrange, 65536, 257, intf); +%! assert ([a1, a2, a3, a4, a5], ['D2', 65535, 253, 2, 4]); + +# Test COM using ptr struct +%!test +%! intf = struct ("xtype", 'COM', "app", [], "filename", 'test.xls', "workbook", [], "changed", 0, "limits", []); +%! tstrange = 'D2:IY67356'; +%! [a1, a2, a3, a4, a5] = spsh_chkrange (tstrange, 65536, 257, 'COM', 'filename.xls'); +%! assert ([a1, a2, a3, a4, a5], ['D2', 65535, 253, 2, 4]); + +# Test POI using ptr struct +%!test +%! intf = struct ("xtype", 'POI', "app", [], "filename", 'test.xls', "workbook", [], "changed", 0, "limits", []); +%! tstrange = 'D2:IY67356'; +%! [a1, a2, a3, a4, a5] = spsh_chkrange (tstrange, 65536, 257, intf); +%! assert ([a1, a2, a3, a4, a5], ['D2', 65535, 253, 2, 4]); + +# Test POI OOXML using ptr struct +%!test +%! intf = struct ("xtype", "POI", "app", [], "filename", 'test.xlsx', "workbook", [], "changed", 0, "limits", []); +%! tstrange = 'D3:xfe1058888'; +%! [a1, a2, a3, a4, a5] = spsh_chkrange (tstrange, 1200000, 20000, intf); +%! assert ([a1, a2, a3, a4, a5], ['D3', 1048574, 16381, 3, 4]); + +# Test JXL using ptr struct +%!test +%! intf = struct ("xtype", "JXL", "app", [], "filename", 'test.xls', "workbook", [], "changed", 0, "limits", []); +%! tstrange = 'D2:IY67356'; +%! [a1, a2, a3, a4, a5] = spsh_chkrange (tstrange, 65536, 257, intf); +%! assert ([a1, a2, a3, a4, a5], ['D2', 65535, 253, 2, 4]); + +# Test OTK using ptr struct +%!test +%! intf = struct ("xtype", 'OTK', "app", [], "filename", 'test.ods', "workbook", [], "changed", 0, "limits", []); +%! tstrange = 'D2:AML67356'; +%! [a1, a2, a3, a4, a5] = spsh_chkrange (tstrange, 65536, 1200, intf); +%! assert ([a1, a2, a3, a4, a5], ['D2', 65535, 1021, 2, 4]); + +# Test JOD using ptr struct +%!test +%! intf = struct ("xtype", 'JOD', "app", [], "filename", 'test.ods', "workbook", [], "changed", 0, "limits", []); +%! tstrange = 'D2:AML67356'; +%! [a1, a2, a3, a4, a5] = spsh_chkrange (tstrange, 65536, 1200, intf); +%! assert ([a1, a2, a3, a4, a5], ['D2', 65535, 1021, 2, 4]); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <prn...@us...> - 2011-09-18 16:22:32
|
Revision: 8552 http://octave.svn.sourceforge.net/octave/?rev=8552&view=rev Author: prnienhuis Date: 2011-09-18 16:22:25 +0000 (Sun, 18 Sep 2011) Log Message: ----------- Adapted to 1048576 row capacity supported by LibreOffice 3.4.+ Java-UNO Modified Paths: -------------- trunk/octave-forge/main/io/inst/spsh_chkrange.m Modified: trunk/octave-forge/main/io/inst/spsh_chkrange.m =================================================================== --- trunk/octave-forge/main/io/inst/spsh_chkrange.m 2011-09-18 16:12:45 UTC (rev 8551) +++ trunk/octave-forge/main/io/inst/spsh_chkrange.m 2011-09-18 16:22:25 UTC (rev 8552) @@ -35,6 +35,7 @@ ## (but this can be wasteful if the file ptr is copied) ## 2011-03-29 Bug fix - unrecognized pointer struct & wrong type error msg ## 2011-05-15 Experimental UNO support added (OpenOffice.org & clones) +## 2011-09-18 Updated UNO data row capacity for LibreOffice 3.4+ (now 1,048,576 rows) function [ topleft, nrows, ncols, trow, lcol ] = spsh_chkrange (crange, nr, nc, intf, filename=[]) @@ -71,7 +72,7 @@ # ODS; LibreOffice has a higher row capacity # FIXME - use UNO calls to check physical row capacity # FIXME - LibreOffice has higher row capacity but it's Java classes haven't been updated - ROW_CAP = 65536; COL_CAP = 1024; + ROW_CAP = 1048576; COL_CAP = 1024; otherwise error (sprintf ("Unknown interface type - %s\n", xtype)); endswitch This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <prn...@us...> - 2012-02-27 19:30:10
|
Revision: 9712 http://octave.svn.sourceforge.net/octave/?rev=9712&view=rev Author: prnienhuis Date: 2012-02-27 19:30:04 +0000 (Mon, 27 Feb 2012) Log Message: ----------- Layout; copyright string updated Modified Paths: -------------- trunk/octave-forge/main/io/inst/spsh_chkrange.m Modified: trunk/octave-forge/main/io/inst/spsh_chkrange.m =================================================================== --- trunk/octave-forge/main/io/inst/spsh_chkrange.m 2012-02-27 19:28:40 UTC (rev 9711) +++ trunk/octave-forge/main/io/inst/spsh_chkrange.m 2012-02-27 19:30:04 UTC (rev 9712) @@ -1,4 +1,4 @@ -## Copyright (C) 2010,2011 Philip Nienhuis <prn...@us...> +## Copyright (C) 2010,2011,2012 Philip Nienhuis <prn...@us...> ## ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by @@ -71,7 +71,7 @@ case { 'UNO' } # ODS; LibreOffice has a higher row capacity # FIXME - use UNO calls to check physical row capacity - # FIXME - LibreOffice has higher row capacity but it's Java classes haven't been updated + # FIXME - LibreOffice has higher row capacity but its Java classes haven't been updated ROW_CAP = 1048576; COL_CAP = 1024; otherwise error (sprintf ("Unknown interface type - %s\n", xtype)); @@ -82,7 +82,7 @@ lcol = 1; nrows = nr; ncols = nc; - topleft= 'A1'; + topleft = 'A1'; elseif (isempty (strfind (deblank (crange), ':'))) # Only top left cell specified [topleft, dummy1, dummy2, trow, lcol] = parse_sp_range (crange); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |