The following might be more interesting if you're interested in how things work inside the io package.
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.
There are faster ways, but then you'll have to dive into Active X/COM/Visual Basic programming.
However, the UNO interface (for Libre Office & Open Office.org) is more pertinent: 64-bit Octave can only use a 64-bit Libre Office with UNO, same for 32 bit.
javaclasspath STATIC JAVA PATH - empty - DYNAMIC JAVA PATH /home/markus/poi_library/poi-3.8-20120326/home/markus/poi_library/poi-ooxml-3.8-20120326/home/markus/poi_library/poi-ooxml-schemas-3.8-20120326/home/markus/poi_library/xmlbeans-2.3.0/home/markus/poi_library/dom4j-1.6.1(On Windows, the io package tries to automatically find all required Java class libs and Libre Office.
If you want to move multiple pieces of data to/from a spreadsheet file, the io package offers a much more versatile scheme: Mixing read and write operations in any order is permitted (the only exception: not with the JXL -JExcel API- interface).
The same goes for odsopen-ods2oct-oct2ods-odsclose sequences. Obviously this is much more flexible (and FASTER) than xlsread and xlswrite.
For some rarely used file formats you'll need Libre Office Octave built with Java enabled a Java JRE or -JDK.
But OK, once there you can enjoy formats then like Unified Office Format, Data Interchange Format, SYLK, Open Document Flat XML, the old Open format and some others you may have heard of ;-) If you don't want that the io-autodetect take control, you can easily force the usage of an interface.
In fact, Octave's io package xlsread is a mere wrapper for an xlsopen-xls2oct-parsecell-xlsclose sequence. This is the most important information you have to keep in mind when you have to work with "Excel" files.