22#include <document.hxx>
31 maColWidths(0, rRoot.GetDoc().GetSheetLimits().GetMaxColCount(), 0),
33 maRowHeights(0, rRoot.GetDoc().GetSheetLimits().GetMaxRowCount(), 0),
35 maHiddenRows(0, rRoot.GetDoc().GetSheetLimits().GetMaxRowCount(), false),
38 mnDefHeight(
ScGlobal::nStdRowHeight ),
40 mbHasStdWidthRec( false ),
41 mbHasDefHeight( false ),
68 nCol2 = ::std::min( nCol2, rDoc.
MaxCol() );
75 nCol1 = ::std::min( nCol1, nCol2 );
79 for (
SCCOL nCol = nCol1; nCol <= nCol2; ++nCol)
93 nCol2 = ::std::min( nCol2,
GetDoc().MaxCol() );
94 nCol1 = ::std::min( nCol1, nCol2 );
96 for (
SCCOL nCol = nCol1; nCol <= nCol2; ++nCol)
121 if (!
maRowFlags.search(nScRow, nFlagVal).second)
127 maRowFlags.insert_back(nScRow, nScRow+1, nFlagVal);
141 if (!
maRowFlags.search(nScRow, nFlagVal).second)
147 maRowFlags.insert_back(nScRow, nScRow+1, nFlagVal);
159 if (!
maRowFlags.search(nScRow, nFlagVal).second)
163 maRowFlags.insert_back(nScRow, nScRow+1, nFlagVal);
170 OSL_ENSURE( (nCol1 <= nCol2) &&
GetDoc().
ValidCol( nCol2 ),
"XclImpColRowSettings::SetDefaultXF - invalid column index" );
171 nCol2 = ::std::min( nCol2,
GetDoc().MaxCol() );
172 nCol1 = ::std::min( nCol1, nCol2 );
174 for(
SCCOL nCol = nCol1; nCol <= nCol2; ++nCol )
188 for (
SCCOL nCol = 0; nCol <= rDoc.
MaxCol(); ++nCol)
227 sal_uInt16 nHeight = 0;
238 for (
SCROW i = nPrevRow;
i <= nRow - 1; ++
i)
241 if (!
maRowHeights.search_tree(
i, nHeight,
nullptr, &nLast).second)
279 rDoc.
ShowCol( nCol, nScTab,
false );
290 nFirstFilterScRow = pFilter->
StartRow();
291 nLastFilterScRow = pFilter->
EndRow();
298 if (nLastXLRow < rDoc.
MaxRow())
300 bool bHidden =
false;
304 maHiddenRows.insert_back(nLastXLRow,
GetDoc().GetSheetLimits().GetMaxRowCount(), bHidden);
308 bool bPrevHidden =
false;
317 if (nFirstFilterScRow <= nPrevRow && nPrevRow <= nLastFilterScRow)
319 SCROW nLast = ::std::min(nRow-1, nLastFilterScRow);
326 bPrevHidden = bHidden;
338 std::pair<ColRowFlagsType::const_iterator,bool> r =
maColFlags.search(nCol, nFlagVal);
346 maColFlags.insert(r.first, nCol, nCol+1, nFlagVal);
352 if (!
maColFlags.search(nCol, nFlagVal).second)
356 return bool(nFlagVal & nMask);
bool ValidRow(SCROW nRow, SCROW nMaxRow)
bool ValidCol(SCCOL nCol, SCCOL nMaxCol)
SC_DLLPUBLIC SCCOL MaxCol() const
SC_DLLPUBLIC SCROW MaxRow() const
SC_DLLPUBLIC void ShowCol(SCCOL nCol, SCTAB nTab, bool bShow)
SC_DLLPUBLIC void ShowRows(SCROW nRow1, SCROW nRow2, SCTAB nTab, bool bShow)
SC_DLLPUBLIC void SetColWidthOnly(SCCOL nCol, SCTAB nTab, sal_uInt16 nNewWidth)
SC_DLLPUBLIC void SetRowHeightOnly(SCROW nStartRow, SCROW nEndRow, SCTAB nTab, sal_uInt16 nNewHeight)
SC_DLLPUBLIC void SetRowHidden(SCROW nStartRow, SCROW nEndRow, SCTAB nTab, bool bHidden)
SC_DLLPUBLIC void SetRowFlags(SCROW nRow, SCTAB nTab, CRFlags nNewFlags)
SC_DLLPUBLIC void SetManualHeight(SCROW nStartRow, SCROW nEndRow, SCTAB nTab, bool bManual)
SC_DLLPUBLIC void SetRowFiltered(SCROW nStartRow, SCROW nEndRow, SCTAB nTab, bool bFiltered)
SC_DLLPUBLIC ScColumnsRange GetColumnsRange(SCTAB nTab, SCCOL nColBegin, SCCOL nColEnd) const
static SC_DLLPUBLIC sal_uInt16 nStdRowHeight
XclImpAutoFilterData * GetByTab(SCTAB nTab)
void SetDefWidth(sal_uInt16 nDefWidth, bool bStdWidthRec=false)
void Convert(SCTAB nScTab)
Inserts all column and row settings of the specified sheet, except the hidden flags.
bool mbHasDefHeight
true = Width from STANDARDWIDTH (overrides DEFCOLWIDTH record).
bool mbHasStdWidthRec
Default row flags from DEFAULTROWHEIGHT record.
void SetHeight(SCROW nRow, sal_uInt16 nHeight)
void SetDefaultXF(SCCOL nScCol1, SCCOL nScCol2, sal_uInt16 nXFIndex)
XclImpColRowSettings(const XclImpRoot &rRoot)
void HideColRange(SCCOL nCol1, SCCOL nCol2)
sal_uInt16 mnDefRowFlags
Default height from DEFAULTROWHEIGHT record.
sal_uInt16 mnDefHeight
Default width from DEFCOLWIDTH or STANDARDWIDTH record.
ColRowFlagsType maRowFlags
void SetManualRowHeight(SCROW nScRow)
WidthHeightStoreType maRowHeights
WidthHeightStoreType maColWidths
ColRowFlagsType maColFlags
void SetDefHeight(sal_uInt16 nDefHeight, sal_uInt16 nFlags)
RowHiddenType maHiddenRows
void ConvertHiddenFlags(SCTAB nScTab)
Sets the HIDDEN flags at all hidden columns and rows in the specified sheet.
virtual ~XclImpColRowSettings() override
bool GetColFlag(SCCOL nCol, ExcColRowFlags nMask) const
void SetRowSettings(SCROW nRow, sal_uInt16 nHeight, sal_uInt16 nFlags)
void SetWidthRange(SCCOL nCol1, SCCOL nCol2, sal_uInt16 nWidth)
void ApplyColFlag(SCCOL nCol, ExcColRowFlags nNewVal)
bool mbDirty
true = mnDefHeight and mnDefRowFlags are valid.
Access to global data from other classes.
XclImpXFRangeBuffer & GetXFRangeBuffer() const
Returns the buffer of XF index ranges for a sheet.
XclImpAutoFilterBuffer & GetFilterManager() const
Returns the filter manager.
const XclImpRoot & GetRoot() const
Returns this root instance - for code readability in derived classes.
Contains the XF indexes for every used cell in a single sheet.
void SetColumnDefXF(SCCOL nScCol, sal_uInt16 nXFIndex)
Inserts a new XF index for all cells in a column.
XclBiff GetBiff() const
Returns the current BIFF version of the importer/exporter.
const ScAddress & GetXclMaxPos() const
Returns the highest possible cell address in an Excel document (using current BIFF version).
ScDocument & GetDoc() const
Returns reference to the destination document (import) or source document (export).
constexpr sal_Int32 STD_COL_WIDTH
static sal_uInt16 nDefWidth
@ EXC_BIFF8
MS Excel 5.0, MS Excel 7.0 (95)
const sal_uInt16 EXC_ROW_HIDDEN
const sal_uInt16 EXC_ROW_UNSYNCED
const sal_uInt16 EXC_DEFROW_UNSYNCED
const sal_uInt16 EXC_ROW_FLAGDEFHEIGHT
const sal_uInt16 EXC_DEFROW_DEFAULTFLAGS
const sal_uInt16 EXC_DEFROW_HIDDEN
const sal_uInt16 EXC_ROW_HEIGHTMASK