24#include <com/sun/star/i18n/XBreakIterator.hpp>
25#include <com/sun/star/i18n/ScriptType.hpp>
26#include <com/sun/star/uri/XUriReference.hpp>
27#include <com/sun/star/uri/XUriReferenceFactory.hpp>
28#include <com/sun/star/uri/UriReferenceFactory.hpp>
32#include <vcl/font.hxx>
46#include <editeng/editids.hrc>
47#include <osl/file.hxx>
49#include <document.hxx>
63using ::com::sun::star::uno::Reference;
64using ::com::sun::star::i18n::XBreakIterator;
70 mxProgress( new
ScfProgressBar( rRoot.GetDocShell(), STR_SAVE_DOC ) ),
71 mpSubProgress( nullptr ),
72 mpSubRowCreate( nullptr ),
73 mpSubRowFinal( nullptr ),
91 sal_Int32 nSegRowCreate =
mxProgress->AddSegment( 2000 );
95 for(
SCTAB nScTab = 0; nScTab < nScTabCount; ++nScTab )
100 SCROW nLastUsedScRow;
101 rDoc.
GetTableArea( nScTab, nLastUsedScCol, nLastUsedScRow );
102 std::size_t nSegSize =
static_cast< std::size_t
>( nLastUsedScRow + 1 );
121 "XclExpProgressBar::ActivateCreateRowsSegment - invalid sheet" );
123 OSL_ENSURE( nSeg !=
SCF_INV_SEGMENT,
"XclExpProgressBar::ActivateCreateRowsSegment - invalid segment" );
158 rXclPos.
mnCol =
static_cast< sal_uInt16
>( nScCol );
159 rXclPos.
mnRow =
static_cast< sal_uInt32
>( nScRow );
178 bool bValid = bValidCol && bValidRow && bValidTab;
184 if( !bValid && bWarn )
197 lclFillAddress( rXclPos, rScPos.
Col(), rScPos.
Row() );
238 const ScRange& rScRange,
bool bWarn )
254 lclFillAddress( rXclRange.
maLast, nScCol2, nScRow2 );
263 for (
size_t nRange = rScRanges.
size(); nRange > 0; )
265 ScRange & rScRange = rScRanges[ --nRange ];
288OUString lclGetUrlRepresentation(
const SvxURLField& rUrlField )
292 return aRepr.isEmpty() ? rUrlField.
GetURL() : aRepr;
300 mbMultipleUrls( false )
319 if(
const OUString* pRepr =
mxLinkRec->GetRepr() )
327 return aUrlRepr.isEmpty() ? lclGetUrlRepresentation(rUrlField) : aUrlRepr;
369 namespace ApiScriptType = ::com::sun::star::i18n::ScriptType;
378 sal_Int32 nPortionPos = 0;
379 sal_Int32 nTextLen = rText.getLength();
380 while( nPortionPos < nTextLen )
383 sal_Int16 nScript = xBreakIt->getScriptType( rText, nPortionPos );
384 sal_Int32 nPortionEnd = xBreakIt->endOfScript( rText, nPortionPos, nScript );
387 if( nScript == ApiScriptType::WEAK )
388 nScript = nLastScript;
396 sal_Int32 nXclPortionStart = xString->Len();
399 if( nXclPortionStart < xString->Len() )
404 xString->AppendFormat( nXclPortionStart, nFontIdx );
408 nLastScript = nScript;
409 nPortionPos = nPortionEnd;
443 namespace ApiScriptType = ::com::sun::star::i18n::ScriptType;
449 for( sal_Int32 nPara = 0; nPara < nParaCount; ++nPara )
452 OUString aParaText( rEE.
GetText( nPara ) );
454 std::vector<sal_Int32> aPosList;
458 for(
const auto& rPos : aPosList )
461 OUString aXclPortionText = aParaText.copy( aSel.nStartPos, aSel.nEndPos - aSel.nStartPos );
463 aItemSet.ClearItem();
468 short nEsc = aEditSet.Get( EE_CHAR_ESCAPEMENT ).GetEsc();
471 bool bIsHyperlink =
false;
472 if( aSel.nStartPos + 1 == aSel.nEndPos )
475 if(
const SvxFieldItem* pItem = aEditSet.GetItemIfSet( EE_FEATURE_FIELD,
false ) )
481 aXclPortionText = pLinkHelper ?
483 lclGetUrlRepresentation( *pUrlField );
488 OSL_FAIL(
"lclCreateFormattedString - unknown text field" );
489 aXclPortionText.clear();
495 sal_Int32 nXclPortionStart = xString->Len();
498 if( (nXclPortionStart < xString->Len()) || (aParaText.isEmpty()) )
502 sal_Int16 nScript = xBreakIt->getScriptType( aXclPortionText, 0 );
503 if( nScript == ApiScriptType::WEAK )
504 nScript = nLastScript;
509 nLastScript = nScript;
512 aFont.SetEscapement( nEsc );
514 if (bIsHyperlink && aItemSet.Get(
ATTR_FONT_COLOR).GetValue() == COL_AUTO)
520 xString->AppendFormat( nXclPortionStart, nFontIdx );
523 aSel.nStartPos = aSel.nEndPos;
527 if( nPara + 1 < nParaCount )
541 xString->Assign( rString, nFlags, nMaxLen );
543 xString->AssignByte( rString, rRoot.
GetTextEncoding(), nFlags, nMaxLen );
558 rXclString.
Append( rString );
566 rXclString.
Append( rtl::OUStringChar(cChar) );
575 return lclCreateFormattedString(rRoot, rString, pCellAttr, nFlags, nMaxLen);
590 auto pEEItemSet = std::make_unique<SfxItemSet>( rEE.
GetEmptyItemSet() );
596 xString = lclCreateFormattedString( rRoot, rEE, &rLinkHelper, nFlags, nMaxLen );
612 rEE.
SetText( pParaObj->GetTextObject() );
613 xString = lclCreateFormattedString( rRoot, rEE,
nullptr, nFlags,
EXC_STR_MAXLEN );
616 if( !xString->IsEmpty() )
624 OSL_FAIL(
"XclExpStringHelper::CreateString - textbox without para object" );
639 xString = lclCreateFormattedString( rRoot, rEE,
nullptr, nFlags,
EXC_STR_MAXLEN );
642 if( !xString->IsEmpty() )
652 namespace ApiScriptType = ::com::sun::star::i18n::ScriptType;
654 sal_Int32 nStrPos = 0;
655 sal_Int32 nStrLen = rString.getLength();
656 sal_Int16 nScript = ApiScriptType::WEAK;
657 while( (nStrPos < nStrLen) && (nScript == ApiScriptType::WEAK) )
659 nScript = xBreakIt->getScriptType( rString, nStrPos );
660 nStrPos = xBreakIt->endOfScript( rString, nStrPos, nScript );
662 return (nScript == ApiScriptType::WEAK) ? rRoot.
GetDefApiScript() : nScript;
669 mrEE( rRoot.GetHFEditEngine() ),
688 if( !pTextObj )
return;
691 sal_Int32 nHeight = 0;
702 aFontData = pFirstFont->GetFontData();
708 const FontList* pFontList =
nullptr;
712 pDocShell->GetItem( SID_ATTR_CHAR_FONTLIST ) ) )
713 pFontList = pInfoItem->GetFontList();
717 for( sal_Int32 nPara = 0; nPara < nParaCount; ++nPara )
720 OUStringBuffer aParaText;
721 sal_Int32 nParaHeight = 0;
722 std::vector<sal_Int32> aPosList;
725 for(
const auto& rPos : aPosList )
748 if( bNewFont || (bNewStyle && pFontList) )
750 aParaText.append(
"&\"" + aNewData.
maName);
758 if( !aNewData.
maStyle.isEmpty() )
759 aParaText.append(
"," + aNewData.
maStyle);
761 aParaText.append(
"\"");
771 aParaText.append(
"&" + OUString::number(aNewData.
mnHeight));
773 nParaHeight = ::std::max< sal_Int32 >( nParaHeight, aNewData.
mnHeight * 20 );
803 aParaText.append(
"&S");
820 aFontData = aNewData;
830 if(
dynamic_cast<const SvxPageField*
>( pFieldData) != nullptr )
831 aParaText.append(
"&P");
832 else if(
dynamic_cast<const SvxPagesField*
>( pFieldData) != nullptr )
833 aParaText.append(
"&N");
834 else if(
dynamic_cast<const SvxDateField*
>( pFieldData) != nullptr )
835 aParaText.append(
"&D");
836 else if(
dynamic_cast<const SvxTimeField*
>( pFieldData) !=
nullptr ||
dynamic_cast<const SvxExtTimeField*
>( pFieldData) !=
nullptr )
837 aParaText.append(
"&T");
838 else if(
dynamic_cast<const SvxTableField*
>( pFieldData) != nullptr )
839 aParaText.append(
"&A");
840 else if(
dynamic_cast<const SvxFileField*
>( pFieldData) != nullptr )
841 aParaText.append(
"&F");
844 switch( pFileField->GetFormat() )
846 case SvxFileFormat::NameAndExt:
847 case SvxFileFormat::NameOnly:
848 aParaText.append(
"&F");
850 case SvxFileFormat::PathOnly:
851 aParaText.append(
"&Z");
853 case SvxFileFormat::PathFull:
854 aParaText.append(
"&Z&F");
857 OSL_FAIL(
"XclExpHFConverter::AppendPortion - unknown file field" );
865 aPortionText = aPortionText.replaceAll(
"&",
"&&" );
867 if( bFontHtChanged && aParaText.getLength() && !aPortionText.isEmpty() )
869 sal_Unicode cLast = aParaText[ aParaText.getLength() - 1 ];
871 if( (
'0' <= cLast) && (cLast <=
'9') && (
'0' <= cFirst) && (cFirst <=
'9') )
872 aParaText.append(
" ");
874 aParaText.append(aPortionText);
882 aParaText.setLength(0);
883 if( nParaHeight == 0 )
884 nParaHeight = aFontData.
mnHeight * 20;
885 nHeight += nParaHeight;
890 if( !aText.isEmpty() )
892 maHFString +=
"&" + OUStringChar(cPortionCode) + aText;
903OUString lclEncodeDosPath(
904 XclBiff eBiff, std::u16string_view path,
bool bIsRel,
const OUString* pTableName)
916 path = path.substr(2);
921 path = path.substr(3);
930 auto nPos = std::u16string_view::npos;
931 while((nPos = path.find(
'\\')) != std::u16string_view::npos)
940 path = path.substr(nPos + 1);
945 aBuf.append(OUString::Concat(
"[") + path +
"]");
957 DBG_ASSERT( pTableName,
"lclEncodeDosUrl - sheet name required for BIFF8" );
967 aBuf.append(*pTableName);
971 if (
aBuf.getLength() > 255)
974 return aBuf.makeStringAndClear();
977bool isUrlRelative(
const OUString& aUrl)
979 css::uno::Reference<css::uri::XUriReferenceFactory> xUriFactory(
980 css::uri::UriReferenceFactory::create(
982 css::uno::Reference<css::uri::XUriReference> xUri(xUriFactory->parse(aUrl));
984 return !xUri->isAbsolute();
1000 RTL_TEXTENCODING_UTF8, FSysStyle::Detect
1003 if (isUrlRelative(aUrlPath))
1006 osl::FileBase::getSystemPathFromFileURL(aUrlPath, aDosPath);
1007 aDosPath = aDosPath.replaceAll(
u"/",
u"\\");
1014 return lclEncodeDosPath(rRoot.
GetBiff(), aDosPath, bIsRel, pTableName);
1025 : mrMatrix( rMatrix )
1038 OSL_ENSURE( nCols && nRows,
"XclExpCachedMatrix::GetDimensions - empty matrix" );
1039 OSL_ENSURE( nCols <= 256,
"XclExpCachedMatrix::GetDimensions - too many columns" );
1051 return 3 + 9 * (nCols * nRows);
1062 rStrm << static_cast< sal_uInt8 >( nCols ) <<
static_cast< sal_uInt16
>( nRows );
1065 rStrm << static_cast< sal_uInt8 >( nCols - 1 ) <<
static_cast< sal_uInt16
>( nRows - 1 );
1067 for(
SCSIZE nRow = 0; nRow < nRows; ++nRow )
1069 for(
SCSIZE nCol = 0; nCol < nCols; ++nCol )
1076 rStrm.SetSliceSize( 9 );
1078 rStrm.WriteZeroBytes( 8 );
1083 rStrm.SetSliceSize( 6 );
1089 rStrm.SetSliceSize( 9 );
1091 rStrm.WriteZeroBytes( 7 );
1093 else if( (nScError = nMatVal.
GetError()) != FormulaError::NONE )
1096 rStrm.SetSliceSize( 9 );
1098 rStrm.WriteZeroBytes( 7 );
1102 rStrm.SetSliceSize( 9 );
size_t SCSIZE
size_t typedef to be able to find places where code was changed from USHORT to size_t and is used to ...
OUString AsRGBHexString() const
bool IsRGBEqual(const Color &rColor) const
void GetPortions(sal_Int32 nPara, std::vector< sal_Int32 > &rList)
OUString GetText(LineEnd eEnd=LINEEND_LF) const
void SetText(const OUString &rStr)
bool SetUpdateLayout(bool bUpdate, bool bRestoring=false)
sal_Int32 GetParagraphCount() const
SfxItemSet GetAttribs(sal_Int32 nPara, sal_Int32 nStart, sal_Int32 nEnd, GetAttribsFlags nFlags=GetAttribsFlags::ALL) const
const SfxItemSet & GetEmptyItemSet() const
FontMetric Get(const OUString &rName, const OUString &rStyleName) const
const OUString & GetStyleName(FontWeight eWeight, FontItalic eItalic) const
static OUString GetRelURL(std::u16string_view rTheBaseURIRef, OUString const &rTheAbsURIRef, EncodeMechanism eEncodeMechanism=EncodeMechanism::WasEncoded, DecodeMechanism eDecodeMechanism=DecodeMechanism::ToIUri, rtl_TextEncoding eCharset=RTL_TEXTENCODING_UTF8, FSysStyle eStyle=FSysStyle::Detect)
OUString getFSysPath(FSysStyle eStyle, sal_Unicode *pDelimiter=nullptr) const
SC_DLLPUBLIC ScPatternAttr * GetDefPattern() const
SC_DLLPUBLIC ScDocumentPool * GetPool()
SC_DLLPUBLIC bool GetTableArea(SCTAB nTab, SCCOL &rEndCol, SCROW &rEndRow, bool bCalcHiddens=false) const
SC_DLLPUBLIC const css::uno::Reference< css::i18n::XBreakIterator > & GetBreakIterator()
void SetDefaults(const SfxItemSet &rDefaults, bool bRememberCopy=true)
Creates a copy of SfxItemSet if bRememberCopy set.
void SetTextCurrentDefaults(const EditTextObject &rTextObject)
SetText and apply defaults already set.
static SC_DLLPUBLIC OUString addToken(std::u16string_view rTokenList, std::u16string_view rToken, sal_Unicode cSep, sal_Int32 nSepCount=1, bool bForceSep=false)
Adds the string rToken to rTokenList, using a list separator character.
Matrix data type that can store values of mixed types.
ScMatrixValue Get(SCSIZE nC, SCSIZE nR) const
@ATTENTION: If bString the ScMatrixValue->pS may still be NULL to indicate an empty string!
static bool IsNonValueType(ScMatValType nType)
String, empty or empty path, but not value nor boolean.
void GetDimensions(SCSIZE &rC, SCSIZE &rR) const
static void fillColor(model::ComplexColor &rComplexColor, const SfxItemSet &rItemSet, ScAutoFontColorMode eAutoMode, const SfxItemSet *pCondSet=nullptr, const Color *pBackConfigColor=nullptr, const Color *pTextConfigColor=nullptr)
static void FillToEditItemSet(SfxItemSet &rEditSet, const SfxItemSet &rSrcSet, const SfxItemSet *pCondSet=nullptr)
Converts all Calc items contained in rSrcSet to edit engine items and puts them into rEditSet.
SfxItemSet & GetItemSet()
static void fillFontOnly(vcl::Font &rFont, const SfxItemSet &rItemSet, const OutputDevice *pOutDev=nullptr, const Fraction *pScale=nullptr, const SfxItemSet *pCondSet=nullptr, SvtScriptType nScript=SvtScriptType::NONE)
Static helper function to fill a font object from the passed item set.
static void GetFromEditItemSet(SfxItemSet &rDestSet, const SfxItemSet &rEditSet)
Converts all edit engine items contained in rEditSet to Calc items and puts them into rDestSet.
Progress bar for complex progress representation.
sal_Int32 AddSegment(std::size_t nSize)
Adds a new segment to the progress bar.
void ActivateSegment(sal_Int32 nSegment)
Starts the progress bar or activates another segment.
bool IsFull() const
Returns true, if the current progress segment is already full.
void Progress(std::size_t nDelta=1)
Increase current segment by the passed value.
void Activate()
Starts the progress bar (with first segment).
virtual OutlinerParaObject * GetOutlinerParaObject() const override
const T * GetItemIfSet(TypedWhichId< T > nWhich, bool bSrchInParent=true) const
sal_uInt16 ClearItem(sal_uInt16 nWhich=0)
const SfxPoolItem & Get(sal_uInt16 nWhich, bool bSrchInParent=true) const
const SvxFieldData * GetField() const
const OUString & GetRepresentation() const
const OUString & GetURL() const
Base class for import/export address converters.
bool mbTabTrunc
Flag for "rows truncated" warning box.
ScAddress maMaxPos
Tracer for invalid addresses.
bool mbColTrunc
Maximum row index.
bool mbRowTrunc
Flag for "columns truncated" warning box.
void ValidateRangeList(ScRangeList &rScRanges, bool bWarn)
Checks and eventually crops the cell ranges to valid dimensions.
XclExpAddressConverter(const XclExpRoot &rRoot)
bool ConvertAddress(XclAddress &rXclPos, const ScAddress &rScPos, bool bWarn)
Converts the passed Calc cell address to an Excel cell address.
XclAddress CreateValidAddress(const ScAddress &rScPos, bool bWarn)
Returns a valid cell address by moving it into allowed dimensions.
bool CheckRange(const ScRange &rScRange, bool bWarn)
Checks if the passed cell range is valid (checks start and end position).
bool ConvertRange(XclRange &rXclRange, const ScRange &rScRange, bool bWarn)
Converts the passed Calc cell range to an Excel cell range.
void ConvertRangeList(XclRangeList &rXclRanges, const ScRangeList &rScRanges, bool bWarn)
Converts the passed Calc cell range list to an Excel cell range list.
bool CheckAddress(const ScAddress &rScPos, bool bWarn)
Checks if the passed Calc cell address is valid.
bool ValidateRange(ScRange &rScRange, bool bWarn)
Checks and eventually crops the cell range to valid dimensions.
XclExpCachedMatrix(const ScMatrix &rMatrix)
Constructs and fills a new matrix.
void GetDimensions(SCSIZE &nCols, SCSIZE &nRows) const
const ScMatrix & mrMatrix
std::size_t GetSize() const
Returns the byte count of all contained data.
void Save(XclExpStream &rStrm) const
Writes the complete matrix to stream.
Stores the data of all fonts used in the document.
sal_uInt16 Insert(const XclFontData &rFontData, XclExpColorType eColorType, bool bAppFont=false)
Inserts a new font with the passed font data into the buffer if not present.
Stores all data of an Excel font and provides export of FONT records.
XclExpHFConverter(const XclExpHFConverter &)=delete
delete copy constructor
void AppendPortion(const EditTextObject *pTextObj, sal_Unicode cPortionCode)
Converts the text object contents and stores it in the passed string.
sal_Int32 mnTotalHeight
The last generated header/footer string.
OUString maHFString
The header/footer edit engine.
void GenerateString(const EditTextObject *pLeftObj, const EditTextObject *pCenterObj, const EditTextObject *pRightObj)
Generates the header/footer string from the passed edit engine text objects.
Helper to create HLINK records during creation of formatted cell strings.
rtl::Reference< XclExpHyperlink > XclExpHyperlinkRef
bool HasLinkRecord() const
Returns true, if a single HLINK record has been created.
XclExpHyperlinkRef GetLinkRecord() const
Returns the created single HLINk record, or an empty reference.
XclExpHyperlinkRef mxLinkRec
XclExpHyperlinkHelper(const XclExpRoot &rRoot, const ScAddress &rScPos)
bool mbMultipleUrls
List with all processed URLs.
OUString maUrlList
Cell position to set at the HLINK record.
virtual ~XclExpHyperlinkHelper() override
OUString ProcessUrlField(const SvxURLField &rUrlField)
Processes the passed URL field (tries to create a HLINK record).
ScAddress maScPos
Created HLINK record.
Provides export of hyperlink data.
void ActivateFinalRowsSegment()
Activates the progress segment to finalize ROW records.
ScfInt32Vec maSubSegRowCreate
Sub progress bar for creating table rows.
sal_Int32 mnSegRowFinal
Sub progress bar for finalizing ROW records.
void Progress()
Increases the currently activated (sub) progress bar by 1 step.
ScfProgressBar * mpSubRowFinal
Segment ID's for all sheets in sub progress bar.
virtual ~XclExpProgressBar() override
void ActivateCreateRowsSegment()
Activates the progress segment to create ROW records.
void Initialize()
Initializes all segments and sub progress bars.
std::size_t mnRowCount
Progress segment for finalizing ROW records.
XclExpProgressBar(const XclExpRoot &rRoot)
ScfProgressBar * mpSubProgress
Progress bar implementation.
ScfProgressBarPtr mxProgress
ScfProgressBar * mpSubRowCreate
Current sub progress bar.
void IncRowRecordCount()
Increases the number of existing ROW records by 1.
Access to global data from other classes.
XclExpFontBuffer & GetFontBuffer() const
Returns the font buffer.
bool IsRelUrl() const
Returns true, if URLs should be stored relative to the document location.
XclExpTabInfo & GetTabInfo() const
Returns the buffer for Calc->Excel sheet index conversion.
const XclExpRoot & GetRoot() const
Returns this root instance - for code readability in derived classes.
This class is used to export Excel record streams.
static void AppendChar(XclExpString &rXclString, const XclExpRoot &rRoot, sal_Unicode cChar)
Appends a character to an Excel string object.
static sal_Int16 GetLeadingScriptType(const XclExpRoot &rRoot, const OUString &rString)
Returns the script type first text portion different to WEAK, or the system default script type,...
static XclExpStringRef CreateString(const XclExpRoot &rRoot, const OUString &rString, XclStrFlags nFlags=XclStrFlags::NONE, sal_uInt16 nMaxLen=EXC_STR_MAXLEN)
Creates a new unformatted string from the passed string.
static void AppendString(XclExpString &rXclString, const XclExpRoot &rRoot, std::u16string_view rString)
Appends an unformatted string to an Excel string object.
static XclExpStringRef CreateCellString(const XclExpRoot &rRoot, const OUString &rString, const ScPatternAttr *pCellAttr, XclStrFlags nFlags=XclStrFlags::NONE, sal_uInt16 nMaxLen=EXC_STR_MAXLEN)
Creates a new formatted string from a Calc string cell.
This class stores an unformatted or formatted string for Excel export.
void AppendByte(std::u16string_view rString, rtl_TextEncoding eTextEnc)
Appends a string.
void Append(std::u16string_view rString)
Appends a string.
Stores the correct Excel sheet index for each Calc sheet.
SCTAB GetScTabCount() const
Returns the number of Calc sheets.
bool IsExportTab(SCTAB nScTab) const
Returns true, if the specified Calc sheet will be exported.
static OUString EncodeDde(std::u16string_view rApplic, std::u16string_view rTopic)
Encodes and returns the passed DDE link to an Excel like DDE link.
static OUString EncodeUrl(const XclExpRoot &rRoot, std::u16string_view rAbsUrl, const OUString *pTableName=nullptr)
Encodes and returns the URL passed in rAbsUrl to an Excel like URL.
A 2D cell range address list with Excel column and row indexes.
void push_back(const XclRange &rRange)
SfxObjectShell * GetDocShell() const
Returns the object shell of the Calc document.
const OUString & GetBasePath() const
Returns the base path of the imported/exported file.
rtl_TextEncoding GetTextEncoding() const
Returns the text encoding to import/export byte strings.
ScEditEngineDefaulter & GetEditEngine() const
Returns the edit engine for import/export of rich strings etc.
sal_Int16 GetDefApiScript() const
Returns the default script type, e.g.
SCTAB GetCurrScTab() const
Returns the current Calc sheet index.
EditEngine & GetDrawEditEngine() const
Returns the edit engine for import/export of drawing text boxes.
XclBiff GetBiff() const
Returns the current BIFF version of the importer/exporter.
ScDocument & GetDoc() const
Returns reference to the destination document (import) or source document (export).
void TraceInvalidAddress(const ScAddress &rPos, const ScAddress &rMaxPos)
void setFinalColor(Color const &rColor)
Color const & getFinalColor() const
const OUString & getString() const
FontStrikeout GetStrikeout() const
const OUString & GetFamilyName() const
FontLineStyle GetUnderline() const
#define DBG_ASSERT(sCon, aError)
constexpr TypedWhichId< SvxFieldItem > EE_FEATURE_FIELD(EE_FEATURE_NOTCONV+1)
constexpr TypedWhichId< SvxFontHeightItem > EE_CHAR_FONTHEIGHT(EE_CHAR_START+2)
constexpr TypedWhichId< SvxEscapementItem > EE_CHAR_ESCAPEMENT(EE_CHAR_START+10)
const sal_Int32 SCF_INV_SEGMENT
vcl::Font GetFontFromItemSet(const XclExpRoot &rRoot, const SfxItemSet &rItemSet, sal_Int16 nScript)
Returns a VCL font object filled from the passed item set.
Reference< XComponentContext > getProcessComponentContext()
constexpr bool starts_with(std::basic_string_view< charT, traits > sv, std::basic_string_view< charT, traits > x) noexcept
vcl::Font GetFont(vcl::Font const &rFont, DrawModeFlags nDrawMode, StyleSettings const &rStyleSettings)
@ Raw
COL_AUTO is returned.
constexpr TypedWhichId< SvxColorItem > ATTR_FONT_COLOR(109)
Try NOT to use this struct.
FormulaError GetError() const
Only valid if ScMatrix methods indicate that this is no string!
const svl::SharedString & GetString() const
Only valid if ScMatrix methods indicate so!
bool GetBoolean() const
Only valid if ScMatrix methods indicate that this is a boolean.
A 2D cell address struct with Excel column and row indexes.
This struct helps reading and writing Excel fonts.
OUString maStyle
Font name.
sal_uInt16 mnHeight
String with styles (bold, italic).
sal_uInt16 mnWeight
Font height in twips (1/20 of a point).
bool mbItalic
Underline style.
sal_uInt8 mnUnderline
Windows character set.
void SetScEscapement(short nScEscapem)
Sets the Calc escapement style.
bool mbStrikeout
true = Italic.
sal_uInt16 mnEscapem
Boldness: 400=normal, 700=bold.
model::ComplexColor maComplexColor
true = Shadowed.
A 2D cell range address struct with Excel column and row indexes.
std::shared_ptr< XclExpString > XclExpStringRef
const sal_Unicode EXC_URL_DRIVEROOT
DOS drive letter or UNC server name.
const sal_Unicode EXC_URLSTART_SELFENCODED
Reference to own workbook.
const sal_uInt8 EXC_CACHEDVAL_ERROR
const sal_Unicode EXC_URLSTART_ENCODED
const sal_uInt8 EXC_CACHEDVAL_STRING
const sal_Unicode EXC_URLSTART_SELF
Encoded URL.
const sal_Unicode EXC_URL_DOSDRIVE
Reference to own workbook (BIFF5/BIFF7).
XclBiff
An enumeration for all Excel file format types (BIFF types).
@ EXC_BIFF8
MS Excel 5.0, MS Excel 7.0 (95)
const sal_uInt8 EXC_CACHEDVAL_EMPTY
const sal_uInt8 EXC_CACHEDVAL_BOOL
const sal_Unicode EXC_URL_SUBDIR
Root directory of current drive.
const sal_Unicode EXC_URL_PARENTDIR
Directory name delimiter.
const sal_uInt8 EXC_CACHEDVAL_DOUBLE
const sal_Unicode EXC_DDE_DELIM
Sheet name starts here (BIFF4).
const sal_uInt16 EXC_MAXRECSIZE_BIFF8
const sal_uInt16 EXC_STR_MAXLEN
XclStrFlags
Flags used to specify import/export mode of strings.
const sal_uInt16 EXC_FONTWGHT_NORMAL
const sal_uInt16 EXC_FONT_APP
const sal_uInt16 EXC_FONTESC_SUPER
const sal_uInt8 EXC_FONTUNDERL_SINGLE
const sal_uInt8 EXC_FONTUNDERL_DOUBLE
const sal_uInt16 EXC_FONTESC_NONE
const sal_uInt8 EXC_FONTUNDERL_NONE
const sal_uInt16 EXC_FONTWGHT_BOLD
const sal_uInt16 EXC_FONTESC_SUB