24 #include <document.hxx>
29 #include <unonames.hxx>
35 #include <com/sun/star/sheet/XSpreadsheet.hpp>
36 #include <com/sun/star/table/XColumnRowRange.hpp>
37 #include <com/sun/star/sheet/XPrintAreas.hpp>
39 #include <osl/diagnose.h>
41 #define SC_ISFILTERED "IsFiltered"
53 OUString sCellStyleName;
56 for (
auto &it : *rAttrList)
58 switch (it.getToken())
78 sCellStyleName = it.toString();
98 uno::Reference< xml::sax::XFastContextHandler > SAL_CALL
100 const uno::Reference< xml::sax::XFastAttributeList > & xAttrList )
141 OSL_FAIL(
"it seems here is a nonvalid file; possible missing of table:table-cell element");
150 if (nFirstRow > pDoc->MaxRow())
151 nFirstRow = pDoc->MaxRow();
152 if (nCurrentRow > pDoc->MaxRow())
153 nCurrentRow = pDoc->MaxRow();
154 uno::Reference <table::XCellRange> xCellRange(xSheet->getCellRangeByPosition(0, nFirstRow, 0, nCurrentRow));
155 if (!xCellRange.is())
158 uno::Reference<table::XColumnRowRange> xColumnRowRange (xCellRange, uno::UNO_QUERY);
159 if (!xColumnRowRange.is())
162 uno::Reference <beans::XPropertySet> xRowProperties(xColumnRowRange->getRows(), uno::UNO_QUERY);
163 if (!xRowProperties.is())
172 XmlStyleFamily::TABLE_ROW,
sStyleName,
true))));
177 if ( nSheet != pStyle->GetLastSheet() )
179 ScSheetSaveData* pSheetData = comphelper::getUnoTunnelImplementation<ScModelObj>(rXMLImport.
GetModel())->GetSheetSaveData();
181 pStyle->SetLastSheet(nSheet);
187 bool bFiltered (
false);
202 xRowProperties->setPropertyValue(
SC_ISFILTERED, uno::makeAny(bFiltered));
205 bool bOptionalHeight =
false;
206 any >>= bOptionalHeight;
210 std::vector<ScDocRowHeightUpdater::TabRanges>& rRecalcRanges = rXMLImport.
GetRecalcRowRanges();
211 while (static_cast<SCTAB>(rRecalcRanges.size()) <= nSheet)
213 rRecalcRanges.emplace_back(0, pDoc->MaxRow());
215 rRecalcRanges.at(nSheet).mnTab = nSheet;
216 rRecalcRanges.at(nSheet).maRanges.setTrue(nFirstRow, nCurrentRow);
222 const bool bTempHeader,
223 const bool bTempGroup ) :
227 bHeader(bTempHeader),
242 if ( rAttrList.is() )
245 if (aIter != rAttrList->end())
255 uno::Reference< xml::sax::XFastContextHandler > SAL_CALL
257 const uno::Reference< xml::sax::XFastAttributeList > & xAttrList )
294 if (xPrintAreas.is())
296 if (!xPrintAreas->getPrintTitleRows())
298 xPrintAreas->setPrintTitleRows(
true);
299 table::CellRangeAddress aRowHeaderRange;
301 aRowHeaderRange.EndRow = nHeaderEndRow;
302 xPrintAreas->setTitleRows(aRowHeaderRange);
306 table::CellRangeAddress aRowHeaderRange(xPrintAreas->getTitleRows());
307 aRowHeaderRange.EndRow = nHeaderEndRow;
308 xPrintAreas->setTitleRows(aRowHeaderRange);
virtual ~ScXMLTableRowContext() override
void SetRowStyle(const OUString &rCellStyleName)
std::vector< ScDocRowHeightUpdater::TabRanges > & GetRecalcRowRanges()
XML_DEFAULT_CELL_STYLE_NAME
SCTAB GetCurrentSheet() const
ScDocument * GetDocument()
bool IsXMLToken(std::u16string_view rString, enum XMLTokenEnum eToken)
FastAttributeList & castToFastAttributeList(const css::uno::Reference< css::xml::sax::XFastAttributeList > &xAttrList)
SCROW GetMaxRowCount() const
virtual void FillPropertySet(const css::uno::Reference< css::beans::XPropertySet > &rPropSet) override
ScXMLTableRowsContext(ScXMLImport &rImport, const rtl::Reference< sax_fastparser::FastAttributeList > &rAttrList, const bool bHeader, const bool bGroup)
virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList > &xAttrList) override
virtual ~ScXMLTableRowsContext() override
This class exists only to provide GetScImport() to its derived classes.
virtual void SAL_CALL endFastElement(sal_Int32 nElement) override
#define SC_UNONAME_OHEIGHT
ScSheetLimits & GetSheetLimits() const
Use this class to manage solar mutex locking instead of calling LockSolarMutex() and UnlockSolarMutex...
ScXMLImport & GetScImport()
virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList > &xAttrList) override
SCROW GetCurrentRow() const
const ScAddress & GetCurrentCellPos() const
virtual void SAL_CALL endFastElement(sal_Int32 nElement) override
void setRowsVisible(SCTAB nTab, SCROW nRowStart, SCROW nRowEnd, bool bVisible)
const OUString & GetXMLToken(enum XMLTokenEnum eToken)
ScXMLTableRowContext(ScXMLImport &rImport, const rtl::Reference< sax_fastparser::FastAttributeList > &rAttrList)
#define XML_ELEMENT(prefix, name)
SC_DLLPUBLIC ScOutlineTable * GetOutlineTable(SCTAB nTab, bool bCreate=false)
const css::uno::Reference< css::frame::XModel > & GetModel() const
const css::uno::Reference< css::sheet::XSpreadsheet > & GetCurrentXSheet() const
const SvXMLStyleContext * FindStyleChildContext(XmlStyleFamily nFamily, const OUString &rName, bool bCreateIndex=false) const
void AddRowStyle(const OUString &rName, const ScAddress &rCellPos)
SvXMLStylesContext * GetAutoStyles()
bool Insert(SCCOLROW nStartPos, SCCOLROW nEndPos, bool &rSizeChanged, bool bHidden=false)
ScDocumentImport & GetDoc()