IO package: Difference between revisions

18 bytes removed ,  19 August 2014
Line 30: Line 30:
==== xlswrite / odswrite versus xlsopen / odsopen ..... xlsclose / odsclose ====
==== xlswrite / odswrite versus xlsopen / odsopen ..... xlsclose / odsclose ====


Matlab users are used to xlsread and xlswrite, functions that can only read data from, or write data to, one sheet in a spreadsheet file at a time. For each read, xlsread has to first read the entire spreadsheet file, for write operations xlswrite also has to finally write it out completely to disk.
Matlab users are used to xlsread and xlswrite, functions that can only read data from, or write data to, one sheet in a spreadsheet file at a time. For each operation, xlsread and xlswrite first have to read the entire spreadsheet file, for write operations xlswrite also has to finally write it out completely to disk.
For those of you who love this for OpenOffice/LibreOffice files, I've made odswrite and odsread who portray the same inefficiency.
There are faster ways, but then you'll have to dive into ActiveX/COM/VisualBasic programming.


If you want to move multiple pieces of data to/from a spreadsheet file, the io package offers a much more versatile scheme:
If you want to move multiple pieces of data to/from a spreadsheet file, the io package offers a much more versatile scheme:
* First open the spreadsheet file using xlsopen (for Excel or gnumeric files) of odsopen (.ods or .gnumeric).  
* First open the spreadsheet file using xlsopen (for Excel or gnumeric files) or odsopen (.ods or .gnumeric).  
'''NOTE''': the output of these functions is a file pointer handle that you should treat carefully!
'''NOTE''': the output of these functions is a file pointer handle that you should treat carefully!
* (for reading data) Read the data using raw_data = xls2oct (fileptr [,sheet#] [,cellrange] [,options])
* (for reading data) Read the data using raw_data = xls2oct (fileptr [,sheet#] [,cellrange] [,options])
Anonymous user