[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Octave-bug-tracker] [bug #53459] [octave forge] (io) 2.4.10 function xl

From: Philip Nienhuis
Subject: [Octave-bug-tracker] [bug #53459] [octave forge] (io) 2.4.10 function xlsread, results in unexpected error reading Excel (xlsx) file
Date: Thu, 12 Apr 2018 17:33:56 -0400 (EDT)
User-agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0 SeaMonkey/2.48

Follow-up Comment #23, bug #53459 (project octave):

The read errors with "testcase3.xlsx" were caused by a very different and
concealed bug, namely assuming that the "dimension" node (that holds a sheet's
occupied data range) is in the first 512 bytes of a worksheet's XML. 'Normal'
XML complie to that assumption.
I quickly found that in (private) function getusedrange.m the read "dimension"
node was empty.  Then it occurred to me that I saw earlier on that your xlsx
files have exceptionally long header nodes. So amending that piece of code to
read further than 512 bytes solved the new issue.

FYI, after the fix, xlsfinfo.m showed to have no problems reading unicode,
neither in sheet names nor in Named Ranges; some excerpts are below in the
verbatim block. xlsread has no problems either.

Only thing left is to find out what happens to xl/calcChain.xml when writing
into complicated sheets. Tomorrow I may have some time left for that.
Again, only Excel complains, LibreOffice happily swallows files with new data
added to existing complex sheets.

I must say (repeating myself) that maintaining this OOXML stuff takes an undue
amount of time; however a personal pitfall is that I like these sort of
puzzles. But there is an end to my patience. After all, the OCT interface
doesn't quite perform bad at all I think.
Once I can push the new changesets and fixes I'll try to make a new io package
release; hopefully this weekend. If you would like to test a new io
"pre"release before it is officially out, just mention and I'll email it

>> xlsfinfo ("testcase3.xlsx", "oct")
Checking requested interface(s):
OCT*; (* = default interface)
  1: 54Z54NM85689                     (Used range ~ A1:CC44)
  2: Fóòg+¥Vé%«CÄúñUgç!Ru    (Used range ~
  3: W6758J57                         (Used range ~ A1:AI42)
  4: 4657H6B54                        (Used range ~ A1:J62)
  5: 45Z6UB75857B4                    (Used range ~ A1:F32)
  6: 345ZG4Z65V674                    (Used range ~ A3:G21)
  7: address@hidden  (Used range ~
  8: ~øyDî¢W½IîÊÖB¤ùWØRû² (Used range ~
  9: 3F563V6785J56                    (Used range ~ A1:AK1123)

           Range name                            Sheet      Range
           ----------                            -----      -----
'~øyDî¢W½IîÊÖB¤ùWØRû²'  B31:C1116
'address@hidden'  B31:C1116
_xlnm._FilterDatabase                  '3F563V6785J56'  B36:C1121
                   BL                   '54Z54NM85689'        B15
                  BPC                             #REF
                  BPC                             #REF
                  BPC                             #REF
                  BPC                             #REF
                  BPC                             #REF
                  BPC                             #REF
                   Ca                   '54Z54NM85689'         G7
                  Cds                        [1]Sheet1        A20
                  CGD                   '54Z54NM85689'         B5
                  CGS    [1]TECHNOLOGY PARAMETER ENTRY        B10
                  CGS    [1]TECHNOLOGY PARAMETER ENTRY        B10
                  CGS    [1]TECHNOLOGY PARAMETER ENTRY        B10
                  CGS    [1]TECHNOLOGY PARAMETER ENTRY        B10
                  CGS    [1]TECHNOLOGY PARAMETER ENTRY        B10
                  CGS                   '54Z54NM85689'         B4
                 CMET                   '54Z54NM85689'         B8
                 COFF    [1]TECHNOLOGY PARAMETER ENTRY         B9
                 COFF    [1]TECHNOLOGY PARAMETER ENTRY         B9
                 COFF    [1]TECHNOLOGY PARAMETER ENTRY         B9
                 COFF    [1]TECHNOLOGY PARAMETER ENTRY         B9


Reply to this item at:


  Message sent via/by Savannah

reply via email to

[Prev in Thread] Current Thread [Next in Thread]