31 #include <oox/token/tokens.hxx>
33 #include <document.hxx>
34 #include <stlpool.hxx>
43 using namespace ::
oox;
46 using ::std::numeric_limits;
54 maHdrString( rHdrString )
67 default: nElement = XML_oddFooter;
69 rWorksheet->startElement(nElement);
71 rWorksheet->endElement( nElement );
105 pAttrList->add( XML_paperWidth, OString(OString::number(
mrData.
mnPaperWidth ) +
"mm").getStr() );
106 pAttrList->add( XML_paperHeight, OString(OString::number(
mrData.
mnPaperHeight ) +
"mm").getStr() );
109 pAttrList->add( XML_scale, OString::number(
mrData.
mnScaling ).getStr() );
113 pAttrList->add( XML_orientation,
mrData.
mbPortrait ?
"portrait" :
"landscape" );
117 pAttrList->add( XML_usePrinterDefaults, ToPsz( !
mrData.
mbValid ) );
124 pAttrList->add( XML_firstPageNumber, OString::number(
mrData.
mnStartPage ).getStr() );
130 pAttrList->add( XML_copies, OString::number(
mrData.
mnCopies ).getStr() );
140 sal_uInt16 nFlags = 0;
169 mrPageBreaks( rPageBreaks ),
187 rStrm << static_cast< sal_uInt16 >(
mrPageBreaks.size() );
192 rStrm << sal_uInt16( 0 ) <<
mnMaxPos;
203 OString sNumPageBreaks = OString::number(
mrPageBreaks.size() );
204 pWorksheet->startElement( nElement,
205 XML_count, sNumPageBreaks,
206 XML_manualBreakCount, sNumPageBreaks );
209 pWorksheet->singleElement( XML_brk,
210 XML_id, OString::number(rPageBreak),
217 pWorksheet->endElement( nElement );
230 const SfxItemSet& rItemSet = pStyleSheet->GetItemSet();
309 static_cast< sal_Int32 >( rHdrItemSet.
Get(
ATTR_PAGE_SIZE ).GetSize().Height() );
337 static_cast< sal_Int32 >( rFtrItemSet.
Get(
ATTR_PAGE_SIZE ).GetSize().Height() );
345 set<SCROW> aRowBreaks;
348 SCROW const nMaxRow = numeric_limits<sal_uInt16>::max();
349 for (
const SCROW nRow : aRowBreaks)
361 ::std::advance(itr, 1026);
365 set<SCCOL> aColBreaks;
367 for (
const auto& rColBreak : aColBreaks)
376 explicit XclExpXmlStartHeaderFooterElementRecord(sal_Int32
const nElement,
bool const bDifferentOddEven =
false)
381 bool mbDifferentOddEven;
386 void XclExpXmlStartHeaderFooterElementRecord::SaveXml(
XclExpXmlStream& rStrm)
391 rStream->startElement( mnElement,
393 XML_differentFirst,
"false",
394 XML_differentOddEven, mbDifferentOddEven ?
"true" :
"false"
442 XclExpXmlStartHeaderFooterElementRecord(XML_headerFooter,
maData.
mbUseEvenHF).SaveXml(rStrm);
const sal_uInt16 EXC_SETUP_STARTPAGE
double mfRightMargin
Left margin in inches.
This class stores an unformatted or formatted string for Excel export.
sal_uInt16 GetHeight() const
virtual void Save(XclExpStream &rStrm) override
Writes the record, if the list is not empty.
sal_uInt16 mnVerPrintRes
Horizontal printing resolution.
rtl_TextEncoding GetTextEncoding() const
Returns the text encoding to import/export byte strings.
XclBiff
An enumeration for all Excel file format types (BIFF types).
constexpr TypedWhichId< SfxBoolItem > ATTR_PAGE_DYNAMIC(165)
sal_uInt16 mnCopies
Paper Height in mm.
constexpr TypedWhichId< SvxSizeItem > ATTR_PAGE_SIZE(161)
bool mbManualStart
true = print notes.
virtual void Save(XclExpStream &rStrm) override
Writes the BITMAP record.
This class is used to export Excel record streams.
constexpr TypedWhichId< SfxBoolItem > ATTR_PAGE_GRID(168)
XclExpValueRecord< double > XclExpDoubleRecord
A record containing a double value.
virtual void WriteBody(XclExpStream &rStrm) override
Writes the page break list.
bool mbVerCenter
true = centered horizontally; false = left aligned.
const sal_uInt16 EXC_ID_GRIDSET
constexpr TypedWhichId< SfxUInt16Item > ATTR_PAGE_SCALETOPAGES(175)
tools::Long GetRight() const
const EditTextObject * GetCenterArea() const
OoxmlVersion getVersion() const
virtual void SaveXml(XclExpXmlStream &rStrm) override
void SetRecSize(std::size_t nRecSize)
Sets a new record size prediction.
const sal_uInt16 EXC_PAPERSIZE_USER
sal_uInt16 mnMaxPos
Page settings data of current sheet.
const sal_uInt16 EXC_SETUP_DRAFT
OUString maFooterEven
Excel header string for even pages (empty = off).
const sal_uInt16 EXC_ID8_IMGDATA
sal_uInt16 mnPaperSize
Right margin to footer.
const sal_uInt16 EXC_SETUP_INROWS
ScDocument & GetDoc() const
Returns reference to the destination document (import) or source document (export).
bool mbPrintGrid
true = print column and row headings.
const sal_uInt16 EXC_ID_PRINTHEADERS
Left/right footer default margin in 1/100mm.
const sal_uInt16 EXC_ID_VCENTER
constexpr TypedWhichId< ScPageScaleToItem > ATTR_PAGE_SCALETO(185)
sal_uInt16 GetRecId() const
Returns the current record ID.
const sal_uInt16 EXC_ID_HEADER
bool mbHorCenter
true = fit to pages; false = scale in percent.
Stores an array of manual page breaks for columns or rows.
Access to global data from other classes.
double mfTopMargin
Right margin in inches.
bool mbFitToPages
true = mnStartPage valid; false = automatic.
ScStyleSheetPool & GetStyleSheetPool() const
Returns the style sheet pool of the Calc document.
virtual void SaveXml(XclExpXmlStream &rStrm) override
XclExpChartPageSettings(const XclExpRoot &rRoot)
Creates all records containing the current page settings.
constexpr TypedWhichId< SfxBoolItem > ATTR_PAGE_VERCENTER(163)
virtual void Save(XclExpStream &rStrm) override
Writes all page settings records to the stream.
const ScfUInt16Vec & mrPageBreaks
OUString maHeader
Background bitmap.
void GenerateString(const EditTextObject *pLeftObj, const EditTextObject *pCenterObj, const EditTextObject *pRightObj)
Generates the header/footer string from the passed edit engine text objects.
virtual void WriteBody(XclExpStream &rStrm) override
Writes the contents of the SETUP record.
const sal_uInt16 EXC_SETUP_PRINTNOTES
constexpr TypedWhichId< SfxBoolItem > ATTR_PAGE_HEADERS(169)
Represents a SETUP record that contains common page settings.
sax_fastparser::FSHelperPtr & GetCurrentStream()
const sal_uInt16 EXC_ID_SETUP
const sal_uInt16 EXC_SETUP_NOTES_END
constexpr TypedWhichId< ScPageHFItem > ATTR_PAGE_FOOTERLEFT(178)
constexpr TypedWhichId< SfxBoolItem > ATTR_PAGE_TOPDOWN(173)
bool mbValid
True = use maHeaderEven/maFooterEven.
sal_uInt16 mnPaperWidth
Same as papersize - but for ooxml (considering stricter dimensions)
const sal_uInt16 EXC_ID_TOPMARGIN
sal_uInt16 GetWidth() const
MS Excel 5.0, MS Excel 7.0 (95)
void Assign(const OUString &rString, XclStrFlags nFlags=XclStrFlags::NONE, sal_uInt16 nMaxLen=EXC_STR_MAXLEN)
Assigns an unformatted string, converts this object to a BIFF8 Unicode string.
XclExpPageSettings(const XclExpRoot &rRoot)
Creates all records containing the current page settings.
XclExpImgData * getGraphicExport()
static rtl::Reference< FastAttributeList > createAttrList()
Contains all page (print) settings for a single sheet.
sal_uInt16 mnStrictPaperSize
Index into paper size table.
OUString maFooter
Excel header string (empty = off).
constexpr TypedWhichId< SvxSetItem > ATTR_PAGE_FOOTERSET(182)
SC_DLLPUBLIC void GetAllColBreaks(std::set< SCCOL > &rBreaks, SCTAB nTab, bool bPage, bool bManual) const
sal_uInt16 mnStartPage
Number of copies.
SvxBrushItemPtr mxBrushItem
Vertical page breaks.
const sal_uInt16 EXC_ID_VERPAGEBREAKS
sal_uInt16 mnScaling
Start page number.
const sal_uInt16 EXC_ID_HCENTER
tools::Long GetLeft() const
const sal_uInt16 EXC_ID_HEADER_EVEN
virtual void SaveXml(XclExpXmlStream &rStrm) override
Ends the element nElement.
constexpr TypedWhichId< SfxBoolItem > ATTR_PAGE_HORCENTER(162)
const sal_uInt16 EXC_ID_PRINTSIZE
SC_DLLPUBLIC OUString GetPageStyle(SCTAB nTab) const
void SetScPaperSize(const Size &rSize, bool bPortrait, bool bStrict=false)
Sets the Excel paper size index and paper orientation from Calc paper size (twips).
bool mbPrintNotes
true = draft; false = default quality.
ScfUInt16Vec maVerPageBreaks
Horizontal page breaks.
constexpr TypedWhichId< ScPageHFItem > ATTR_PAGE_HEADERRIGHT(179)
sal_uInt16 mnFitToWidth
Scaling in percent.
virtual void SaveXml(XclExpXmlStream &rStrm) override
std::shared_ptr< FastSerializerHelper > FSHelperPtr
constexpr TypedWhichId< SvxLRSpaceItem > ATTR_LRSPACE(157)
sal_Int32 GetTotalHeight() const
Returns the total height of the last generated header/footer in twips.
constexpr TypedWhichId< ScPageHFItem > ATTR_PAGE_FOOTERRIGHT(180)
const XclExpRoot & GetRoot() const
Returns this root instance - for code readability in derived classes.
const XclPageData & mrData
SCTAB GetCurrScTab() const
Returns the current Calc sheet index.
XclExpValueRecord< sal_uInt16 > XclExpUInt16Record
A record containing an unsigned 16-bit value.
const sal_uInt16 EXC_SETUP_BLACKWHITE
OUString maHeaderEven
Excel footer string (empty = off).
constexpr TypedWhichId< SvxBrushItem > ATTR_BACKGROUND(148)
const sal_uInt16 EXC_ID_BOTTOMMARGIN
virtual void SaveXml(XclExpXmlStream &rStrm) override
Ends the single element nElement.
bool mbDraftQuality
true = black/white; false = colors.
const sal_uInt16 EXC_ID_FOOTER
bool mbPortrait
false = some of the values are not valid.
bool mbUseEvenHF
Vertical printing resolution.
ScfUInt16Vec maHorPageBreaks
sal_uInt16 mnPaperHeight
Paper Width in mm.
double mfBottomMargin
Top margin in inches.
const sal_uInt16 EXC_SETUP_PORTRAIT
double mfHeaderMargin
Bottom margin in inches.
Contains the "scale to width/height" attribute in page styles.
const SfxPoolItem & Get(sal_uInt16 nWhich, bool bSrchInParent=true) const
void AssignByte(std::u16string_view rString, rtl_TextEncoding eTextEnc, XclStrFlags nFlags=XclStrFlags::NONE, sal_uInt16 nMaxLen=EXC_STR_MAXLEN)
Assigns an unformatted string, converts this object to a BIFF2-BIFF7 byte string. ...
const EditTextObject * GetRightArea() const
const sal_uInt16 EXC_ID_HORPAGEBREAKS
const EditTextObject * GetLeftArea() const
double mfFooterMargin
Margin main page to header.
Provides export of bitmap data to an IMGDATA record.
bool mbBlackWhite
true = in rows; false = in columns.
XclExpSetup(const XclPageData &rPageData)
const sal_uInt16 EXC_ID_PRINTGRIDLINES
const OUString & GetHFString() const
Returns the last generated header/footer string.
Always use UCS-2 characters (default: try to compress). BIFF8 only.
sal_uInt16 mnHorPrintRes
Fit to number of pages in height.
const ScAddress & GetXclMaxPos() const
Returns the highest possible cell address in an Excel document (using current BIFF version)...
SC_DLLPUBLIC bool NeedPageResetAfterTab(SCTAB nTab) const
XclExpPageBreaks(sal_uInt16 nRecId, const ScfUInt16Vec &rPageBreaks, sal_uInt16 nMaxPos)
virtual void SaveXml(XclExpXmlStream &rStrm) override
bool HasItem(sal_uInt16 nWhich, const SfxPoolItem **ppItem=nullptr) const
constexpr TypedWhichId< SvxULSpaceItem > ATTR_ULSPACE(158)
constexpr TypedWhichId< SvxPageItem > ATTR_PAGE(159)
XclBiff GetBiff() const
Returns the current BIFF version of the importer/exporter.
const sal_uInt16 EXC_ID_FOOTER_EVEN
bool mbPrintHeadings
true = centered vertically; false = top aligned.
constexpr TypedWhichId< SvxSetItem > ATTR_PAGE_HEADERSET(181)
virtual void Save(XclExpStream &rStrm) override
Writes all page settings records to the stream.
const sal_uInt16 EXC_PRINTSIZE_FULL
sal_uInt16 mnFitToHeight
Fit to number of pages in width.
SC_DLLPUBLIC void GetAllRowBreaks(std::set< SCROW > &rBreaks, SCTAB nTab, bool bPage, bool bManual) const
constexpr TypedWhichId< SfxBoolItem > ATTR_PAGE_ON(164)
const XclExpRoot & GetRoot() const
Returns the filter root data.
constexpr TypedWhichId< SfxUInt16Item > ATTR_PAGE_SCALE(174)
const sal_uInt16 EXC_ID_RIGHTMARGIN
virtual void Save(XclExpStream &rStrm) override
Writes the record header and calls WriteBody().
Converts edit engine text objects to an Excel header/footer string.
virtual void SaveXml(XclExpXmlStream &rStrm) override
Starts the single element nElement.
constexpr TypedWhichId< SfxBoolItem > ATTR_PAGE_NOTES(167)
bool mbPrintInRows
true = portrait; false = landscape.
constexpr TypedWhichId< ScPageHFItem > ATTR_PAGE_HEADERLEFT(177)
const sal_uInt16 EXC_SETUP_INVALID
double mfLeftMargin
Excel footer string for even pages (empty = off).
const sal_uInt16 EXC_ID_LEFTMARGIN
constexpr TypedWhichId< SfxUInt16Item > ATTR_PAGE_FIRSTPAGENO(176)
virtual void SaveXml(XclExpXmlStream &rStrm)
constexpr TypedWhichId< SfxBoolItem > ATTR_PAGE_SHARED(166)
const Size & GetSize() const
Base class for single records with any content.
Record which contains a Boolean value.