Excel uses several optimisations to reduce the size of it's files. One is to store 64bit floats in 32bits if possible.* Spreadsheet::WriteExcel trades this space for speed (and simplicity) and writes all numbers as 64 bit floats.

Excel also stores repeated strings in a hash table. This can give a big space saving for certain types of data. Spreadsheet::WriteExcel will do this in a later version but probably only for long strings.

There are a few other optimisation as well. When you save the file, Excel will perform the optimisations and the file size will reduce.

Note, you can write an array of data in one go by passing it as an arrayref:

# print information to Excel spreadsheet $worksheet->write($row, 0, \@XLSarray); $row++;

--
John.

* For the anoraks. Actually, where possible, it stores ints and floats in 30 bits and uses the other two bits to indicate the type of stored variable.


In reply to Re: Spreadsheet::WriteExcel::Big is Bigger by jmcnamara
in thread Spreadsheet::WriteExcel::Big is Bigger by shockme

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.