22 #include <config_options.h>
27 #include <rtl/ref.hxx>
33 #include <com/sun/star/table/XTableChartsSupplier.hpp>
34 #include <com/sun/star/table/XTablePivotChartsSupplier.hpp>
35 #include <com/sun/star/chart/XChartDataArray.hpp>
36 #include <com/sun/star/text/XTextFieldsSupplier.hpp>
37 #include <com/sun/star/drawing/XDrawPageSupplier.hpp>
38 #include <com/sun/star/sheet/XSheetCellRange.hpp>
39 #include <com/sun/star/sheet/XFormulaQuery.hpp>
40 #include <com/sun/star/sheet/XCellRangeAddressable.hpp>
41 #include <com/sun/star/sheet/XSheetOperation.hpp>
42 #include <com/sun/star/sheet/XSheetCellRangeContainer.hpp>
43 #include <com/sun/star/sheet/XCellFormatRangesSupplier.hpp>
44 #include <com/sun/star/sheet/XUniqueCellFormatRangesSupplier.hpp>
45 #include <com/sun/star/sheet/XCellRangesQuery.hpp>
46 #include <com/sun/star/sheet/XSheetFilterableEx.hpp>
47 #include <com/sun/star/sheet/XSpreadsheet.hpp>
48 #include <com/sun/star/sheet/XSheetPageBreak.hpp>
49 #include <com/sun/star/sheet/XCellRangeMovement.hpp>
50 #include <com/sun/star/text/XText.hpp>
51 #include <com/sun/star/sheet/XPrintAreas.hpp>
52 #include <com/sun/star/sheet/XSheetLinkable.hpp>
53 #include <com/sun/star/sheet/XSubTotalCalculatable.hpp>
54 #include <com/sun/star/sheet/XArrayFormulaRange.hpp>
55 #include <com/sun/star/sheet/XCellRangeData.hpp>
56 #include <com/sun/star/sheet/XCellRangeFormula.hpp>
57 #include <com/sun/star/sheet/XCellSeries.hpp>
58 #include <com/sun/star/sheet/XMultipleOperation.hpp>
59 #include <com/sun/star/sheet/XFormulaTokens.hpp>
60 #include <com/sun/star/sheet/XArrayFormulaTokens.hpp>
61 #include <com/sun/star/sheet/XCellAddressable.hpp>
62 #include <com/sun/star/util/XReplaceable.hpp>
63 #include <com/sun/star/util/XIndent.hpp>
64 #include <com/sun/star/lang/XServiceInfo.hpp>
65 #include <com/sun/star/container/XNameContainer.hpp>
66 #include <com/sun/star/util/XMergeable.hpp>
67 #include <com/sun/star/table/XAutoFormattable.hpp>
68 #include <com/sun/star/util/XSortable.hpp>
69 #include <com/sun/star/util/XImportable.hpp>
70 #include <com/sun/star/table/XColumnRowRange.hpp>
71 #include <com/sun/star/table/XCell2.hpp>
72 #include <com/sun/star/sheet/XDataPilotTablesSupplier.hpp>
73 #include <com/sun/star/sheet/XSheetAnnotationAnchor.hpp>
74 #include <com/sun/star/sheet/XScenariosSupplier.hpp>
75 #include <com/sun/star/sheet/XSheetAnnotationsSupplier.hpp>
76 #include <com/sun/star/sheet/XSheetAuditing.hpp>
77 #include <com/sun/star/sheet/XSheetOutline.hpp>
78 #include <com/sun/star/util/XProtectable.hpp>
79 #include <com/sun/star/sheet/XScenario.hpp>
80 #include <com/sun/star/sheet/XScenarioEnhanced.hpp>
81 #include <com/sun/star/util/XModifyBroadcaster.hpp>
82 #include <com/sun/star/beans/XPropertyState.hpp>
83 #include <com/sun/star/beans/XMultiPropertySet.hpp>
84 #include <com/sun/star/lang/XUnoTunnel.hpp>
85 #include <com/sun/star/document/XActionLockable.hpp>
86 #include <com/sun/star/beans/XTolerantMultiPropertySet.hpp>
87 #include <com/sun/star/sheet/XExternalSheetName.hpp>
88 #include <com/sun/star/document/XEventsSupplier.hpp>
119 namespace editeng {
class SvxBorderLine; }
144 static void FillBorderLine( css::table::BorderLine& rStruct, const ::editeng::SvxBorderLine* pLine );
145 static void FillBorderLine( css::table::BorderLine2& rStruct, const ::editeng::SvxBorderLine* pLine );
155 class ScVbaCellRangeAccess;
159 public cppu::WeakImplHelper<
160 css::beans::XPropertySet,
161 css::beans::XMultiPropertySet,
162 css::beans::XPropertyState,
163 css::sheet::XSheetOperation,
164 css::chart::XChartDataArray,
166 css::sheet::XCellRangesQuery,
167 css::sheet::XFormulaQuery,
168 css::util::XReplaceable,
169 css::util::XModifyBroadcaster,
170 css::lang::XServiceInfo,
171 css::lang::XUnoTunnel,
172 css::beans::XTolerantMultiPropertySet>,
199 void PaintGridRanges_Impl();
200 ScRangeListRef GetLimitedChartRanges_Impl( sal_Int32 nDataColumns, sal_Int32 nDataRows )
const;
201 void ForceChartListener_Impl();
202 std::unique_ptr<ScMemChart> CreateMemChart_Impl()
const;
206 SfxItemSet* GetCurrentDataSet(
bool bNoDflt =
false);
207 void ForgetMarkData();
208 void ForgetCurrentAttrs();
210 css::uno::Reference<css::sheet::XSheetCellRanges>
211 QueryDifferences_Impl(
const css::table::CellAddress& aCompare,
213 css::uno::Reference<css::uno::XInterface>
214 Find_Impl(
const css::uno::Reference<css::util::XSearchDescriptor>& xDesc,
222 css::beans::PropertyState GetOnePropertyState(
230 const css::uno::Any& aValue );
238 virtual void RefChanged();
244 void AddRange(
const ScRange& rRange,
const bool bMergeRanges);
249 void SetNewRange(
const ScRange& rNew);
252 void SetCursorOnly(
bool bSet);
256 virtual double SAL_CALL computeFunction( css::sheet::GeneralFunction nFunction )
override;
257 virtual void SAL_CALL clearContents( sal_Int32 nContentFlags )
override;
260 virtual css::uno::Reference< css::beans::XPropertySetInfo >
261 SAL_CALL getPropertySetInfo()
override;
263 const css::uno::Any& aValue )
override;
265 const OUString& PropertyName )
override;
266 virtual void SAL_CALL addPropertyChangeListener(
const OUString& aPropertyName,
267 const css::uno::Reference< css::beans::XPropertyChangeListener >& xListener )
override;
268 virtual void SAL_CALL removePropertyChangeListener(
const OUString& aPropertyName,
269 const css::uno::Reference< css::beans::XPropertyChangeListener >& aListener )
override;
270 virtual void SAL_CALL addVetoableChangeListener(
const OUString& PropertyName,
271 const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener )
override;
272 virtual void SAL_CALL removeVetoableChangeListener(
const OUString& PropertyName,
273 const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener )
override;
276 virtual void SAL_CALL setPropertyValues(
const css::uno::Sequence< OUString >& aPropertyNames,
277 const css::uno::Sequence< css::uno::Any >& aValues )
override;
278 virtual css::uno::Sequence< css::uno::Any > SAL_CALL
279 getPropertyValues(
const css::uno::Sequence< OUString >& aPropertyNames )
override;
280 virtual void SAL_CALL addPropertiesChangeListener(
const css::uno::Sequence< OUString >& aPropertyNames,
281 const css::uno::Reference< css::beans::XPropertiesChangeListener >& xListener )
override;
282 virtual void SAL_CALL removePropertiesChangeListener(
const css::uno::Reference< css::beans::XPropertiesChangeListener >& xListener )
override;
283 virtual void SAL_CALL firePropertiesChangeEvent(
const css::uno::Sequence< OUString >& aPropertyNames,
284 const css::uno::Reference< css::beans::XPropertiesChangeListener >& xListener )
override;
287 virtual css::uno::Sequence< css::beans::SetPropertyTolerantFailed > SAL_CALL
288 setPropertyValuesTolerant(
const css::uno::Sequence< OUString >& aPropertyNames,
289 const css::uno::Sequence< css::uno::Any >& aValues )
override;
290 virtual css::uno::Sequence< css::beans::GetPropertyTolerantResult > SAL_CALL
291 getPropertyValuesTolerant(
const css::uno::Sequence< OUString >& aPropertyNames )
override;
292 virtual css::uno::Sequence< css::beans::GetDirectPropertyTolerantResult > SAL_CALL
293 getDirectPropertyValuesTolerant(
const css::uno::Sequence< OUString >& aPropertyNames )
override;
296 virtual css::beans::PropertyState SAL_CALL getPropertyState(
297 const OUString& PropertyName )
override;
298 virtual css::uno::Sequence< css::beans::PropertyState > SAL_CALL
299 getPropertyStates(
const css::uno::Sequence<
300 OUString >& aPropertyName )
override;
301 virtual void SAL_CALL setPropertyToDefault(
const OUString& PropertyName )
override;
302 virtual css::uno::Any SAL_CALL getPropertyDefault(
303 const OUString& aPropertyName )
override;
306 virtual void SAL_CALL decrementIndent()
override;
307 virtual void SAL_CALL incrementIndent()
override;
310 virtual void SAL_CALL addChartDataChangeEventListener(
311 const css::uno::Reference< css::chart::XChartDataChangeEventListener >& aListener )
override;
312 virtual void SAL_CALL removeChartDataChangeEventListener(
const css::uno::Reference<
313 css::chart::XChartDataChangeEventListener >& aListener )
override;
314 virtual double SAL_CALL getNotANumber()
override;
315 virtual sal_Bool SAL_CALL isNotANumber(
double nNumber )
override;
318 virtual css::uno::Sequence< css::uno::Sequence< double > > SAL_CALL
320 virtual void SAL_CALL setData(
const css::uno::Sequence< css::uno::Sequence< double > >& aData )
override;
321 virtual css::uno::Sequence< OUString > SAL_CALL getRowDescriptions()
override;
322 virtual void SAL_CALL setRowDescriptions(
const css::uno::Sequence< OUString >& aRowDescriptions )
override;
323 virtual css::uno::Sequence< OUString > SAL_CALL getColumnDescriptions()
override;
324 virtual void SAL_CALL setColumnDescriptions(
const css::uno::Sequence< OUString >& aColumnDescriptions )
override;
327 virtual css::uno::Reference< css::sheet::XSheetCellRanges > SAL_CALL
328 queryVisibleCells()
override;
329 virtual css::uno::Reference< css::sheet::XSheetCellRanges > SAL_CALL
330 queryEmptyCells()
override;
331 virtual css::uno::Reference< css::sheet::XSheetCellRanges > SAL_CALL
332 queryContentCells( sal_Int16 nContentFlags )
override;
333 virtual css::uno::Reference< css::sheet::XSheetCellRanges > SAL_CALL
334 queryFormulaCells( sal_Int32 nResultFlags )
override;
335 virtual css::uno::Reference< css::sheet::XSheetCellRanges > SAL_CALL
336 queryColumnDifferences(
337 const css::table::CellAddress& aCompare )
override;
338 virtual css::uno::Reference< css::sheet::XSheetCellRanges > SAL_CALL
340 const css::table::CellAddress& aCompare )
override;
341 virtual css::uno::Reference< css::sheet::XSheetCellRanges > SAL_CALL
343 const css::table::CellRangeAddress& aRange )
override;
346 virtual css::uno::Reference< css::sheet::XSheetCellRanges > SAL_CALL
347 queryDependents(
sal_Bool bRecursive )
override;
348 virtual css::uno::Reference< css::sheet::XSheetCellRanges > SAL_CALL
349 queryPrecedents(
sal_Bool bRecursive )
override;
352 virtual css::uno::Reference< css::util::XSearchDescriptor > SAL_CALL
353 createSearchDescriptor()
override;
354 virtual css::uno::Reference< css::container::XIndexAccess > SAL_CALL
355 findAll(
const css::uno::Reference< css::util::XSearchDescriptor >& xDesc )
override;
356 virtual css::uno::Reference< css::uno::XInterface > SAL_CALL
357 findFirst(
const css::uno::Reference< css::util::XSearchDescriptor >& xDesc )
override;
358 virtual css::uno::Reference< css::uno::XInterface > SAL_CALL
359 findNext(
const css::uno::Reference< css::uno::XInterface >& xStartAt,
360 const css::uno::Reference< css::util::XSearchDescriptor >& xDesc )
override;
363 virtual css::uno::Reference< css::util::XReplaceDescriptor > SAL_CALL
364 createReplaceDescriptor()
override;
365 virtual sal_Int32 SAL_CALL replaceAll(
const css::uno::Reference< css::util::XSearchDescriptor >& xDesc )
override;
368 virtual void SAL_CALL addModifyListener(
const css::uno::Reference< css::util::XModifyListener >& aListener )
override;
369 virtual void SAL_CALL removeModifyListener(
const css::uno::Reference< css::util::XModifyListener >& aListener )
override;
380 class UNLESS_MERGELIBS(SC_DLLPUBLIC) ScCellRangesObj final :
public ScCellRangesBase,
381 public css::sheet::XSheetCellRangeContainer,
382 public css::container::XNameContainer,
383 public css::container::XEnumerationAccess
390 const OUString&
GetName()
const {
return aName; }
391 const ScRange& GetRange()
const {
return aRange; }
394 std::vector<ScNamedEntry> m_aNamedEntries;
401 virtual ~ScCellRangesObj() override;
403 virtual
css::
uno::Any SAL_CALL queryInterface( const
css::
uno::
Type & rType ) override;
405 virtual
void SAL_CALL acquire() noexcept override;
406 virtual
void SAL_CALL release() noexcept override;
408 virtual
void RefChanged() override;
411 virtual
css::
uno::Reference<
css::container::XEnumerationAccess > SAL_CALL
413 virtual OUString SAL_CALL getRangeAddressesAsString() override;
414 virtual
css::
uno::Sequence<
css::table::CellRangeAddress > SAL_CALL
415 getRangeAddresses() override;
418 virtual
void SAL_CALL addRangeAddress( const
css::table::CellRangeAddress& rRange,
420 virtual
void SAL_CALL removeRangeAddress( const
css::table::CellRangeAddress& rRange ) override;
421 virtual
void SAL_CALL addRangeAddresses( const
css::
uno::Sequence<
422 css::table::CellRangeAddress >& rRanges,
424 virtual
void SAL_CALL removeRangeAddresses( const
css::
uno::Sequence<
425 css::table::CellRangeAddress >& rRanges ) override;
428 virtual
void SAL_CALL insertByName( const OUString& aName,
429 const
css::
uno::Any& aElement ) override;
430 virtual
void SAL_CALL removeByName( const OUString& Name ) override;
433 virtual
void SAL_CALL replaceByName( const OUString& aName,
434 const
css::
uno::Any& aElement ) override;
437 virtual
css::
uno::Any SAL_CALL getByName( const OUString& aName ) override;
438 virtual
css::
uno::Sequence< OUString > SAL_CALL getElementNames() override;
439 virtual
sal_Bool SAL_CALL hasByName( const OUString& aName ) override;
442 virtual sal_Int32 SAL_CALL getCount() override;
443 virtual
css::
uno::Any SAL_CALL getByIndex( sal_Int32
Index ) override;
446 virtual
css::
uno::
Type SAL_CALL getElementType() override;
447 virtual
sal_Bool SAL_CALL hasElements() override;
450 virtual
css::
uno::Reference<
css::container::XEnumeration > SAL_CALL
451 createEnumeration() override;
454 virtual OUString SAL_CALL getImplementationName() override;
455 virtual
sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override;
456 virtual
css::
uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
460 virtual
css::
uno::Sequence<
sal_Int8 > SAL_CALL getImplementationId() override;
464 public
css::sheet::XCellRangeAddressable,
465 public
css::sheet::XSheetCellRange,
466 public
css::sheet::XArrayFormulaRange,
467 public
css::sheet::XArrayFormulaTokens,
468 public
css::sheet::XCellRangeData,
469 public
css::sheet::XCellRangeFormula,
470 public
css::sheet::XMultipleOperation,
471 public
css::util::XMergeable,
472 public
css::sheet::XCellSeries,
473 public
css::table::XAutoFormattable,
474 public
css::util::XSortable,
475 public
css::sheet::XSheetFilterableEx,
476 public
css::sheet::XSubTotalCalculatable,
477 public
css::util::XImportable,
478 public
css::sheet::XCellFormatRangesSupplier,
479 public
css::sheet::XUniqueCellFormatRangesSupplier,
480 public
css::table::XColumnRowRange
490 css::uno::Any& )
override;
492 const css::uno::Any& aValue )
override;
496 css::uno::Reference< css::table::XCell >
497 GetCellByPosition_Impl( sal_Int32 nColumn, sal_Int32 nRow );
500 void SetArrayFormula_Impl(
const OUString& rFormula,
508 static css::uno::Reference<css::table::XCellRange>
512 const css::uno::Type & rType )
override;
513 virtual void SAL_CALL acquire() noexcept override;
514 virtual
void SAL_CALL release() noexcept override;
516 virtual
void RefChanged() override;
519 virtual
css::table::CellRangeAddress SAL_CALL getRangeAddress() override;
522 virtual
css::
uno::Reference<
css::sheet::XSpreadsheet > SAL_CALL
523 getSpreadsheet() override;
526 virtual OUString SAL_CALL getArrayFormula() override;
527 virtual
void SAL_CALL setArrayFormula( const OUString& aFormula ) override;
530 virtual
css::
uno::Sequence<
css::sheet::FormulaToken > SAL_CALL getArrayTokens() override;
531 virtual
void SAL_CALL setArrayTokens( const
css::
uno::Sequence<
532 css::sheet::FormulaToken >& aTokens ) override;
535 virtual
css::
uno::Sequence<
css::
uno::Sequence<
css::
uno::Any > > SAL_CALL getDataArray() override;
536 virtual
void SAL_CALL setDataArray( const
css::
uno::Sequence<
css::
uno::Sequence<
css::
uno::Any > >& aArray ) override;
540 OUString > > SAL_CALL getFormulaArray() override;
541 virtual
void SAL_CALL setFormulaArray( const
css::
uno::Sequence<
css::
uno::Sequence< OUString > >& aArray ) override;
544 virtual
void SAL_CALL setTableOperation(
545 const
css::table::CellRangeAddress& aFormulaRange,
546 css::sheet::TableOperationMode nMode,
547 const
css::table::CellAddress& aColumnCell,
548 const
css::table::CellAddress& aRowCell ) override;
551 virtual
void SAL_CALL merge(
sal_Bool bMerge ) override;
552 virtual
sal_Bool SAL_CALL getIsMerged() override;
555 virtual
void SAL_CALL fillSeries(
css::sheet::FillDirection nFillDirection,
556 css::sheet::FillMode nFillMode,
557 css::sheet::FillDateMode nFillDateMode,
558 double fStep,
double fEndValue ) override;
559 virtual
void SAL_CALL fillAuto(
css::sheet::FillDirection nFillDirection,
560 sal_Int32 nSourceCount ) override;
563 virtual
void SAL_CALL autoFormat( const OUString& aName ) override;
566 virtual
css::
uno::Sequence<
css::beans::PropertyValue > SAL_CALL
567 createSortDescriptor() override;
568 virtual
void SAL_CALL sort( const
css::
uno::Sequence<
569 css::beans::PropertyValue >& xDescriptor ) override;
572 virtual
css::
uno::Reference<
css::sheet::XSheetFilterDescriptor > SAL_CALL
573 createFilterDescriptorByObject( const
css::
uno::Reference<
574 css::sheet::XSheetFilterable >& xObject ) override;
577 virtual
css::
uno::Reference<
css::sheet::XSheetFilterDescriptor > SAL_CALL
578 createFilterDescriptor(
sal_Bool bEmpty ) override;
579 virtual
void SAL_CALL
filter( const
css::
uno::Reference<
580 css::sheet::XSheetFilterDescriptor >& xDescriptor ) override;
583 virtual
css::
uno::Reference<
css::sheet::XSubTotalDescriptor > SAL_CALL
584 createSubTotalDescriptor(
sal_Bool bEmpty ) override;
585 virtual
void SAL_CALL applySubTotals(const
css::
uno::Reference<
css::sheet::XSubTotalDescriptor >& xDescriptor,
587 virtual
void SAL_CALL removeSubTotals() override;
590 virtual
css::
uno::Sequence<
css::beans::PropertyValue > SAL_CALL
591 createImportDescriptor(
sal_Bool bEmpty ) override;
592 virtual
void SAL_CALL doImport( const
css::
uno::Sequence<
css::beans::PropertyValue >& aDescriptor ) override;
595 virtual
css::
uno::Reference<
css::container::XIndexAccess > SAL_CALL
596 getCellFormatRanges() override;
599 virtual
css::
uno::Reference<
css::container::XIndexAccess > SAL_CALL
600 getUniqueCellFormatRanges() override;
603 virtual
css::
uno::Reference<
css::table::XTableColumns > SAL_CALL
604 getColumns() override;
605 virtual
css::
uno::Reference<
css::table::XTableRows > SAL_CALL
609 virtual
css::
uno::Reference<
css::table::XCell > SAL_CALL
610 getCellByPosition( sal_Int32 nColumn, sal_Int32 nRow ) override;
611 virtual
css::
uno::Reference<
css::table::XCellRange > SAL_CALL
612 getCellRangeByPosition( sal_Int32 nLeft, sal_Int32 nTop,
613 sal_Int32 nRight, sal_Int32 nBottom ) override;
614 virtual
css::
uno::Reference<
css::table::XCellRange > SAL_CALL
615 getCellRangeByName( const OUString& aRange ) override;
617 css::
uno::Reference<
css::table::XCellRange >
618 getCellRangeByName( const OUString& aRange, const
ScAddress::Details& rDetails );
621 virtual
css::
uno::Reference<
css::beans::XPropertySetInfo >
622 SAL_CALL getPropertySetInfo() override;
625 virtual OUString SAL_CALL getImplementationName() override;
626 virtual
sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override;
627 virtual
css::
uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
631 virtual
css::
uno::Sequence<
sal_Int8 > SAL_CALL getImplementationId() override;
637 public
css::text::XText,
638 public
css::container::XEnumerationAccess,
639 public
css::table::XCell2,
640 public
css::sheet::XFormulaTokens,
641 public
css::sheet::XCellAddressable,
642 public
css::sheet::XSheetAnnotationAnchor,
643 public
css::text::XTextFieldsSupplier,
644 public
css::document::XActionLockable
653 OUString GetInputString_Impl(
bool bEnglish)
const;
654 OUString GetOutputString_Impl()
const;
655 void SetString_Impl(
const OUString& rString,
bool bInterpret,
bool bEnglish);
656 double GetValue_Impl()
const;
657 void SetValue_Impl(
double fValue);
658 css::table::CellContentType GetContentType_Impl();
659 sal_Int32 GetResultType_Impl()
const;
663 css::uno::Any& )
override;
665 const css::uno::Any& aValue )
override;
674 virtual css::uno::Any SAL_CALL
queryInterface(
const css::uno::Type & rType )
override;
675 virtual void SAL_CALL acquire() noexcept override;
676 virtual
void SAL_CALL release() noexcept override;
678 virtual
void RefChanged() override;
684 const
ScAddress& GetPosition()
const {
return aCellPos; }
686 void InputEnglishString(
const OUString& rText );
689 virtual void SAL_CALL insertTextContent(
const css::uno::Reference< css::text::XTextRange >& xRange,
690 const css::uno::Reference< css::text::XTextContent >& xContent,
692 virtual void SAL_CALL removeTextContent(
const css::uno::Reference< css::text::XTextContent >& xContent )
override;
695 virtual css::uno::Reference< css::text::XTextCursor > SAL_CALL
696 createTextCursor()
override;
697 virtual css::uno::Reference< css::text::XTextCursor > SAL_CALL
698 createTextCursorByRange(
const css::uno::Reference< css::text::XTextRange >& aTextPosition )
override;
699 virtual void SAL_CALL insertString(
const css::uno::Reference< css::text::XTextRange >& xRange,
700 const OUString& aString,
sal_Bool bAbsorb )
override;
701 virtual void SAL_CALL insertControlCharacter(
const css::uno::Reference< css::text::XTextRange >& xRange,
702 sal_Int16 nControlCharacter,
sal_Bool bAbsorb )
override;
705 virtual css::uno::Reference< css::text::XText > SAL_CALL
707 virtual css::uno::Reference< css::text::XTextRange > SAL_CALL
709 virtual css::uno::Reference< css::text::XTextRange > SAL_CALL
711 virtual OUString SAL_CALL
getString()
override;
712 virtual void SAL_CALL setString(
const OUString& aString )
override;
715 virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL
716 createEnumeration()
override;
719 virtual css::uno::Type SAL_CALL getElementType()
override;
720 virtual sal_Bool SAL_CALL hasElements()
override;
723 virtual OUString SAL_CALL getFormula()
override;
724 virtual void SAL_CALL setFormula(
const OUString& aFormula )
override;
725 virtual void SAL_CALL setFormulaResult(
double nValue )
override;
726 virtual void SAL_CALL setFormulaString(
const OUString& aFormula )
override;
727 virtual double SAL_CALL
getValue()
override;
728 virtual void SAL_CALL
setValue(
double nValue )
override;
729 virtual css::table::CellContentType SAL_CALL
getType()
override;
730 virtual sal_Int32 SAL_CALL getError()
override;
733 virtual css::uno::Sequence< css::sheet::FormulaToken > SAL_CALL getTokens()
override;
734 virtual void SAL_CALL setTokens(
const css::uno::Sequence< css::sheet::FormulaToken >& aTokens )
override;
737 virtual css::table::CellAddress SAL_CALL getCellAddress()
override;
740 virtual css::uno::Reference< css::sheet::XSheetAnnotation > SAL_CALL
741 getAnnotation()
override;
744 virtual css::uno::Reference< css::container::XEnumerationAccess > SAL_CALL
745 getTextFields()
override;
746 virtual css::uno::Reference< css::container::XNameAccess > SAL_CALL
747 getTextFieldMasters()
override;
750 virtual css::uno::Reference< css::beans::XPropertySetInfo >
759 virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes()
override;
760 virtual css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId()
override;
763 virtual sal_Bool SAL_CALL isActionLocked()
override;
764 virtual void SAL_CALL addActionLock()
override;
765 virtual void SAL_CALL removeActionLock()
override;
766 virtual void SAL_CALL setActionLocks( sal_Int16 nLock )
override;
767 virtual sal_Int16 SAL_CALL resetActionLocks()
override;
771 public css::sheet::XSpreadsheet,
772 public css::container::XNamed,
773 public css::sheet::XSheetPageBreak,
774 public css::sheet::XCellRangeMovement,
775 public css::table::XTableChartsSupplier,
776 public css::table::XTablePivotChartsSupplier,
777 public css::sheet::XDataPilotTablesSupplier,
778 public css::sheet::XScenariosSupplier,
779 public css::sheet::XSheetAnnotationsSupplier,
780 public css::drawing::XDrawPageSupplier,
781 public css::sheet::XPrintAreas,
782 public css::sheet::XSheetLinkable,
783 public css::sheet::XSheetAuditing,
784 public css::sheet::XSheetOutline,
785 public css::util::XProtectable,
786 public css::sheet::XScenario,
787 public css::sheet::XScenarioEnhanced,
788 public css::sheet::XExternalSheetName,
789 public css::document::XEventsSupplier
796 SCTAB GetTab_Impl()
const;
797 void PrintAreaUndo_Impl( std::unique_ptr<ScPrintRangeSaver> pOldRanges );
801 css::uno::Any& )
override;
803 const css::uno::Any& aValue )
override;
811 virtual css::uno::Any SAL_CALL
queryInterface(
const css::uno::Type & rType )
override;
812 virtual void SAL_CALL acquire() noexcept override;
813 virtual
void SAL_CALL release() noexcept override;
816 virtual
css::
uno::Reference<
css::sheet::XSheetCellCursor >
817 SAL_CALL createCursor() override;
818 virtual
css::
uno::Reference<
css::sheet::XSheetCellCursor > SAL_CALL
819 createCursorByRange( const
css::
uno::Reference<
820 css::sheet::XSheetCellRange >& aRange ) override;
823 virtual
css::
uno::Reference<
css::sheet::XSpreadsheet > SAL_CALL
824 getSpreadsheet() override;
827 virtual
css::
uno::Reference<
css::table::XCell > SAL_CALL
829 virtual
css::
uno::Reference<
css::table::XCellRange > SAL_CALL
831 sal_Int32 nRight, sal_Int32 nBottom ) override;
833 virtual
css::
uno::Reference<
css::table::XCellRange > SAL_CALL
834 getCellRangeByName( const OUString& aRange ) override;
837 virtual OUString SAL_CALL getName() override;
838 virtual
void SAL_CALL setName( const OUString& aName ) override;
841 virtual
css::
uno::Sequence<
css::sheet::TablePageBreakData > SAL_CALL
842 getColumnPageBreaks() override;
843 virtual
css::
uno::Sequence<
css::sheet::TablePageBreakData > SAL_CALL
844 getRowPageBreaks() override;
845 virtual
void SAL_CALL removeAllManualPageBreaks() override;
848 virtual
void SAL_CALL insertCells( const
css::table::CellRangeAddress& aRange,
849 css::sheet::CellInsertMode nMode ) override;
850 virtual
void SAL_CALL removeRange( const
css::table::CellRangeAddress& aRange,
851 css::sheet::CellDeleteMode nMode ) override;
852 virtual
void SAL_CALL moveRange( const
css::table::CellAddress& aDestination,
853 const
css::table::CellRangeAddress& aSource ) override;
854 virtual
void SAL_CALL copyRange( const
css::table::CellAddress& aDestination,
855 const
css::table::CellRangeAddress& aSource ) override;
858 virtual
css::
uno::Reference<
css::table::XTableCharts > SAL_CALL
859 getCharts() override;
862 virtual
css::
uno::Reference<
css::table::XTablePivotCharts> SAL_CALL
863 getPivotCharts() override;
866 virtual
css::
uno::Reference<
css::sheet::XDataPilotTables > SAL_CALL
867 getDataPilotTables() override;
870 virtual
css::
uno::Reference<
css::sheet::XScenarios > SAL_CALL
871 getScenarios() override;
874 virtual
css::
uno::Reference<
css::sheet::XSheetAnnotations > SAL_CALL
875 getAnnotations() override;
879 getDrawPage() override;
882 virtual
css::
uno::Sequence<
css::table::CellRangeAddress > SAL_CALL
883 getPrintAreas() override;
884 virtual
void SAL_CALL setPrintAreas( const
css::
uno::Sequence<
885 css::table::CellRangeAddress >& aPrintAreas ) override;
886 virtual
sal_Bool SAL_CALL getPrintTitleColumns() override;
887 virtual
void SAL_CALL setPrintTitleColumns(
sal_Bool bPrintTitleColumns ) override;
888 virtual
css::table::CellRangeAddress SAL_CALL getTitleColumns() override;
889 virtual
void SAL_CALL setTitleColumns(
890 const
css::table::CellRangeAddress& aTitleColumns ) override;
891 virtual
sal_Bool SAL_CALL getPrintTitleRows() override;
892 virtual
void SAL_CALL setPrintTitleRows(
sal_Bool bPrintTitleRows ) override;
893 virtual
css::table::CellRangeAddress SAL_CALL getTitleRows() override;
894 virtual
void SAL_CALL setTitleRows(
895 const
css::table::CellRangeAddress& aTitleRows ) override;
898 virtual
css::sheet::SheetLinkMode SAL_CALL getLinkMode() override;
899 virtual
void SAL_CALL setLinkMode(
css::sheet::SheetLinkMode nLinkMode ) override;
900 virtual OUString SAL_CALL getLinkUrl() override;
901 virtual
void SAL_CALL setLinkUrl( const OUString& aLinkUrl ) override;
902 virtual OUString SAL_CALL getLinkSheetName() override;
903 virtual
void SAL_CALL setLinkSheetName( const OUString& aLinkSheetName ) override;
904 virtual
void SAL_CALL link( const OUString& aUrl,
905 const OUString& aSheetName,
906 const OUString& aFilterName,
907 const OUString& aFilterOptions,
908 css::sheet::SheetLinkMode nMode ) override;
911 virtual
sal_Bool SAL_CALL hideDependents( const
css::table::CellAddress& aPosition ) override;
912 virtual
sal_Bool SAL_CALL hidePrecedents( const
css::table::CellAddress& aPosition ) override;
913 virtual
sal_Bool SAL_CALL showDependents( const
css::table::CellAddress& aPosition ) override;
914 virtual
sal_Bool SAL_CALL showPrecedents( const
css::table::CellAddress& aPosition ) override;
915 virtual
sal_Bool SAL_CALL showErrors( const
css::table::CellAddress& aPosition ) override;
916 virtual
sal_Bool SAL_CALL showInvalid() override;
917 virtual
void SAL_CALL clearArrows() override;
920 virtual
void SAL_CALL group( const
css::table::CellRangeAddress& aRange,
921 css::table::TableOrientation nOrientation ) override;
922 virtual
void SAL_CALL ungroup( const
css::table::CellRangeAddress& aRange,
923 css::table::TableOrientation nOrientation ) override;
924 virtual
void SAL_CALL autoOutline( const
css::table::CellRangeAddress& aRange ) override;
925 virtual
void SAL_CALL clearOutline() override;
926 virtual
void SAL_CALL hideDetail( const
css::table::CellRangeAddress& aRange ) override;
927 virtual
void SAL_CALL showDetail( const
css::table::CellRangeAddress& aRange ) override;
928 virtual
void SAL_CALL showLevel( sal_Int16 nLevel,
929 css::table::TableOrientation nOrientation ) override;
932 virtual
void SAL_CALL protect( const OUString& aPassword ) override;
933 virtual
void SAL_CALL unprotect( const OUString& aPassword ) override;
934 virtual
sal_Bool SAL_CALL isProtected() override;
937 virtual
sal_Bool SAL_CALL getIsScenario() override;
938 virtual OUString SAL_CALL getScenarioComment() override;
939 virtual
void SAL_CALL setScenarioComment( const OUString& aScenarioComment ) override;
940 virtual
void SAL_CALL addRanges( const
css::
uno::Sequence<
941 css::table::CellRangeAddress >& aRanges ) override;
942 virtual
void SAL_CALL apply() override;
944 virtual
css::
uno::Sequence<
css::table::CellRangeAddress > SAL_CALL
945 getRanges( ) override;
948 virtual
void SAL_CALL setExternalName( const OUString& aUrl, const OUString& aSheetName ) override;
951 virtual
css::
uno::Reference<
css::container::XNameReplace > SAL_CALL getEvents() override;
954 virtual
css::
uno::Reference<
css::beans::XPropertySetInfo >
955 SAL_CALL getPropertySetInfo() override;
967 virtual
css::
uno::Sequence<
sal_Int8 > SAL_CALL getImplementationId() override;
971 public
css::container::XNamed
978 css::uno::Any& )
override;
980 const css::uno::Any& aValue )
override;
987 const css::uno::Type & rType )
override;
988 virtual void SAL_CALL acquire() noexcept override;
989 virtual
void SAL_CALL release() noexcept override;
992 virtual OUString SAL_CALL getName() override;
993 virtual
void SAL_CALL setName( const OUString& aName ) override;
996 virtual
css::
uno::Reference<
css::beans::XPropertySetInfo >
997 SAL_CALL getPropertySetInfo() override;
1006 virtual
css::
uno::Sequence<
sal_Int8 > SAL_CALL getImplementationId() override;
1016 css::uno::Any& )
override;
1018 const css::uno::Any& aValue )
override;
1025 virtual css::uno::Reference< css::beans::XPropertySetInfo >
1026 SAL_CALL getPropertySetInfo()
override;
1035 css::container::XEnumerationAccess,
1036 css::lang::XServiceInfo >,
1050 virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL
1051 createEnumeration()
override;
1054 virtual css::uno::Type SAL_CALL getElementType()
override;
1055 virtual sal_Bool SAL_CALL hasElements()
override;
1064 css::container::XEnumeration,
1065 css::lang::XServiceInfo >,
1076 void Advance_Impl();
1077 void CheckPos_Impl();
1086 virtual sal_Bool SAL_CALL hasMoreElements()
override;
1087 virtual css::uno::Any SAL_CALL nextElement()
override;
1096 css::container::XIndexAccess,
1097 css::container::XEnumerationAccess,
1098 css::lang::XServiceInfo >,
1115 virtual sal_Int32 SAL_CALL getCount()
override;
1116 virtual css::uno::Any SAL_CALL getByIndex( sal_Int32
Index )
override;
1119 virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL
1120 createEnumeration()
override;
1123 virtual css::uno::Type SAL_CALL getElementType()
override;
1124 virtual sal_Bool SAL_CALL hasElements()
override;
1133 css::container::XEnumeration,
1134 css::lang::XServiceInfo >,
1140 std::unique_ptr<ScAttrRectIterator>
pIter;
1146 void Advance_Impl();
1156 virtual sal_Bool SAL_CALL hasMoreElements()
override;
1157 virtual css::uno::Any SAL_CALL nextElement()
override;
1166 css::container::XIndexAccess,
1167 css::container::XEnumerationAccess,
1168 css::lang::XServiceInfo >,
1182 virtual sal_Int32 SAL_CALL getCount()
override;
1183 virtual css::uno::Any SAL_CALL getByIndex( sal_Int32
Index )
override;
1186 virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL
1187 createEnumeration()
override;
1190 virtual css::uno::Type SAL_CALL getElementType()
override;
1191 virtual sal_Bool SAL_CALL hasElements()
override;
1200 css::container::XEnumeration,
1201 css::lang::XServiceInfo >,
1216 virtual sal_Bool SAL_CALL hasMoreElements()
override;
1217 virtual css::uno::Any SAL_CALL nextElement()
override;
RegError REGISTRY_CALLTYPE setValue(RegKeyHandle hKey, rtl_uString *keyName, RegValueType valueType, RegValue pData, sal_uInt32 valueSize)
const SfxItemPropertySet * pRangePropSet
todo: It should be possible to have MarkArrays for each table, in order to enable "search all" across...
virtual const SfxItemPropertyMap & GetItemPropertyMap()
ScDocShell * GetDocShell() const
bool getType(BSTR name, Type &type)
uno::Any getPropertyValue(const uno::Sequence< beans::PropertyValue > &aProp, const OUString &aName)
const SfxItemPropertySet * pSheetPropSet
css::uno::Sequence< OUString > getSupportedServiceNames()
OUString getImplementationName()
static void FillBoxItems(SvxBoxItem &rOuter, SvxBoxInfoItem &rInner, const css::table::TableBorder &rBorder)
virtual OUString SAL_CALL getImplementationName() override
XServiceInfo.
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
#define UNO3_GETIMPLEMENTATION_DECL(classname)
const ScRangeList & GetRangeList() const
static void AssignTableBorder2ToAny(css::uno::Any &rAny, const SvxBoxItem &rOuter, const SvxBoxInfoItem &rInner, bool bInvalidateHorVerDist=false)
static void AssignTableBorderToAny(css::uno::Any &rAny, const SvxBoxItem &rOuter, const SvxBoxInfoItem &rInner, bool bInvalidateHorVerDist=false)
std::optional< SfxItemSet > moCurrentDataSet
std::unique_ptr< ScMarkData > pMarkData
virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() override
virtual void SetOnePropertyValue(const SfxItemPropertyMapEntry *pEntry, const css::uno::Any &aValue)
std::vector< css::uno::Reference< css::util::XModifyListener > > XModifyListenerArr_Impl
XModifyListenerArr_Impl aValueListeners
bool CPPUHELPER_DLLPUBLIC supportsService(css::lang::XServiceInfo *implementation, rtl::OUString const &name)
virtual css::uno::Reference< css::table::XCell > SAL_CALL getCellByPosition(sal_Int32 nColumn, sal_Int32 nRow, sal_Int32 nSheet) override
XCellRangesAccess.
std::unique_ptr< ScLinkListener > pValueListener
ScLinkListener(const Link< const SfxHint &, void > &rL)
std::optional< SfxItemSet > moNoDfltCurrentDataSet
virtual OUString GetName() const override
const SfxItemPropertySet * pPropSet
virtual ~ScLinkListener() override
move ScLinkListener into another file !!!
static void ApplyBorder(ScDocShell *pDocShell, const ScRangeList &rRanges, const SvxBoxItem &rOuter, const SvxBoxInfoItem &rInner)
move lcl_ApplyBorder to docfunc !
void Notify(ScModelObj &rModelObj, const ScRangeList &rChangeRanges, const OUString &rType=OUString("cell-change"), const css::uno::Sequence< css::beans::PropertyValue > &rProperties=css::uno::Sequence< css::beans::PropertyValue >())
virtual OUString SAL_CALL getImplementationName() override
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
virtual void GetOnePropertyValue(const SfxItemPropertyMapEntry *pEntry, css::uno::Any &)
css::beans::Optional< css::uno::Any > getValue(std::u16string_view id)
bool setPropertyValue(uno::Sequence< beans::PropertyValue > &aProp, const OUString &aName, const uno::Any &aValue)
const ScRange & GetRange() const
virtual void Notify(const SfxHint &rHint) override
static void FillBorderLine(css::table::BorderLine &rStruct, const ::editeng::SvxBorderLine *pLine)
virtual void Notify(SfxBroadcaster &rBC, const SfxHint &rHint)
std::unique_ptr< ScPatternAttr > pCurrentDeep
bool IsCursorOnly() const
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
std::unique_ptr< ScMarkData > pMark
std::unique_ptr< ScPatternAttr > pCurrentFlat
really derive cell from range?
rtl::Reference< SvxUnoText > mxUnoText
static const ::editeng::SvxBorderLine * GetBorderLine(::editeng::SvxBorderLine &rLine, const css::table::BorderLine &rStruct)
const SfxItemPropertySet * pCellPropSet
const SfxItemPropertySet * pColPropSet
virtual css::uno::Reference< css::table::XCellRange > SAL_CALL getCellRangeByPosition(sal_Int32 nLeft, sal_Int32 nTop, sal_Int32 nRight, sal_Int32 nBottom, sal_Int32 nSheet) override
#define DECL_DLLPRIVATE_LINK(Member, ArgType, RetType)
OUString getString(const Any &_rAny)
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
Link< const SfxHint &, void > aLink
sal_Int16 nActionLockCount
const SfxItemPropertySet * pRowPropSet
css::uno::Any SAL_CALL queryInterface(const css::uno::Type &rType, Interface1 *p1)