diff options
author | Kohei Yoshida <kyoshida@novell.com> | 2011-05-18 23:09:41 +0000 |
---|---|---|
committer | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2011-07-07 19:28:43 +0200 |
commit | fca460c0f931873c7bf6558a36d027374cb9bf3b (patch) | |
tree | 1e3c4256dad08fba85a3f2c7fe1022f40e8ae747 | |
parent | 1195ede73b8b6c1f6e3b0f5575450d937a41eaf6 (diff) |
Make sure to only export up to 1026 manual page breaks to XLS.
If you export even one excess page break than 1026, Excel refuses
to load the whole document.
Signed-off-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
-rw-r--r-- | sc/source/filter/excel/xepage.cxx | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/sc/source/filter/excel/xepage.cxx b/sc/source/filter/excel/xepage.cxx index 47396d620e41..3831bc7822ac 100644 --- a/sc/source/filter/excel/xepage.cxx +++ b/sc/source/filter/excel/xepage.cxx @@ -330,6 +330,14 @@ XclExpPageSettings::XclExpPageSettings( const XclExpRoot& rRoot ) : maData.maHorPageBreaks.push_back(nRow); } + if (maData.maHorPageBreaks.size() > 1026) + { + // Excel allows only up to 1026 page breaks. Trim any excess page breaks. + ScfUInt16Vec::iterator itr = maData.maHorPageBreaks.begin(); + ::std::advance(itr, 1026); + maData.maHorPageBreaks.erase(itr, maData.maHorPageBreaks.end()); + } + set<SCCOL> aColBreaks; rDoc.GetAllColBreaks(aColBreaks, nScTab, false, true); for (set<SCCOL>::const_iterator itr = aColBreaks.begin(), itrEnd = aColBreaks.end(); itr != itrEnd; ++itr) |