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;
394 sal_Int32 nXclPortionStart = xString->Len();
397 if( nXclPortionStart < xString->Len() )
402 xString->AppendFormat( nXclPortionStart, nFontIdx );
406 nLastScript = nScript;
407 nPortionPos = nPortionEnd;
441 namespace ApiScriptType = ::com::sun::star::i18n::ScriptType;
447 for( sal_Int32 nPara = 0; nPara < nParaCount; ++nPara )
450 OUString aParaText( rEE.
GetText( nPara ) );
452 std::vector<sal_Int32> aPosList;
456 for(
const auto& rPos : aPosList )
459 OUString aXclPortionText = aParaText.copy( aSel.nStartPos, aSel.nEndPos - aSel.nStartPos );
461 aItemSet.ClearItem();
466 short nEsc = aEditSet.Get( EE_CHAR_ESCAPEMENT ).GetEsc();
469 bool bIsHyperlink =
false;
470 if( aSel.nStartPos + 1 == aSel.nEndPos )
473 if(
const SvxFieldItem* pItem = aEditSet.GetItemIfSet( EE_FEATURE_FIELD,
false ) )
479 aXclPortionText = pLinkHelper ?
481 lclGetUrlRepresentation( *pUrlField );
486 OSL_FAIL(
"lclCreateFormattedString - unknown text field" );
487 aXclPortionText.clear();
493 sal_Int32 nXclPortionStart = xString->Len();
496 if( (nXclPortionStart < xString->Len()) || (aParaText.isEmpty()) )
500 sal_Int16 nScript = xBreakIt->getScriptType( aXclPortionText, 0 );
501 if( nScript == ApiScriptType::WEAK )
502 nScript = nLastScript;
504 nLastScript = nScript;
507 aFont.SetEscapement( nEsc );
509 if( bIsHyperlink && aItemSet.Get(
ATTR_FONT_COLOR ).GetValue() == COL_AUTO)
510 aFont.SetColor( COL_LIGHTBLUE );
515 xString->AppendFormat( nXclPortionStart, nFontIdx );
518 aSel.nStartPos = aSel.nEndPos;
522 if( nPara + 1 < nParaCount )
536 xString->Assign( rString, nFlags, nMaxLen );
538 xString->AssignByte( rString, rRoot.
GetTextEncoding(), nFlags, nMaxLen );
553 rXclString.
Append( rString );
561 rXclString.
Append( rtl::OUStringChar(cChar) );
570 return lclCreateFormattedString(rRoot, rString, pCellAttr, nFlags, nMaxLen);
585 auto pEEItemSet = std::make_unique<SfxItemSet>( rEE.
GetEmptyItemSet() );
591 xString = lclCreateFormattedString( rRoot, rEE, &rLinkHelper, nFlags, nMaxLen );
607 rEE.
SetText( pParaObj->GetTextObject() );
608 xString = lclCreateFormattedString( rRoot, rEE,
nullptr, nFlags,
EXC_STR_MAXLEN );
611 if( !xString->IsEmpty() )
619 OSL_FAIL(
"XclExpStringHelper::CreateString - textbox without para object" );
634 xString = lclCreateFormattedString( rRoot, rEE,
nullptr, nFlags,
EXC_STR_MAXLEN );
637 if( !xString->IsEmpty() )
647 namespace ApiScriptType = ::com::sun::star::i18n::ScriptType;
649 sal_Int32 nStrPos = 0;
650 sal_Int32 nStrLen = rString.getLength();
651 sal_Int16 nScript = ApiScriptType::WEAK;
652 while( (nStrPos < nStrLen) && (nScript == ApiScriptType::WEAK) )
654 nScript = xBreakIt->getScriptType( rString, nStrPos );
655 nStrPos = xBreakIt->endOfScript( rString, nStrPos, nScript );
657 return (nScript == ApiScriptType::WEAK) ? rRoot.
GetDefApiScript() : nScript;
664 mrEE( rRoot.GetHFEditEngine() ),
683 if( !pTextObj )
return;
686 sal_Int32 nHeight = 0;
697 aFontData = pFirstFont->GetFontData();
703 const FontList* pFontList =
nullptr;
707 pDocShell->GetItem( SID_ATTR_CHAR_FONTLIST ) ) )
708 pFontList = pInfoItem->GetFontList();
712 for( sal_Int32 nPara = 0; nPara < nParaCount; ++nPara )
715 OUStringBuffer aParaText;
716 sal_Int32 nParaHeight = 0;
717 std::vector<sal_Int32> aPosList;
720 for(
const auto& rPos : aPosList )
741 if( bNewFont || (bNewStyle && pFontList) )
743 aParaText.append(
"&\"" + aNewData.
maName);
751 if( !aNewData.
maStyle.isEmpty() )
752 aParaText.append(
"," + aNewData.
maStyle);
754 aParaText.append(
"\"");
764 aParaText.append(
"&" + OUString::number(aNewData.
mnHeight));
766 nParaHeight = ::std::max< sal_Int32 >( nParaHeight, aNewData.
mnHeight * 20 );
794 aParaText.append(
"&S");
811 aFontData = aNewData;
821 if(
dynamic_cast<const SvxPageField*
>( pFieldData) != nullptr )
822 aParaText.append(
"&P");
823 else if(
dynamic_cast<const SvxPagesField*
>( pFieldData) != nullptr )
824 aParaText.append(
"&N");
825 else if(
dynamic_cast<const SvxDateField*
>( pFieldData) != nullptr )
826 aParaText.append(
"&D");
827 else if(
dynamic_cast<const SvxTimeField*
>( pFieldData) !=
nullptr ||
dynamic_cast<const SvxExtTimeField*
>( pFieldData) !=
nullptr )
828 aParaText.append(
"&T");
829 else if(
dynamic_cast<const SvxTableField*
>( pFieldData) != nullptr )
830 aParaText.append(
"&A");
831 else if(
dynamic_cast<const SvxFileField*
>( pFieldData) != nullptr )
832 aParaText.append(
"&F");
835 switch( pFileField->GetFormat() )
837 case SvxFileFormat::NameAndExt:
838 case SvxFileFormat::NameOnly:
839 aParaText.append(
"&F");
841 case SvxFileFormat::PathOnly:
842 aParaText.append(
"&Z");
844 case SvxFileFormat::PathFull:
845 aParaText.append(
"&Z&F");
848 OSL_FAIL(
"XclExpHFConverter::AppendPortion - unknown file field" );
856 aPortionText = aPortionText.replaceAll(
"&",
"&&" );
858 if( bFontHtChanged && aParaText.getLength() && !aPortionText.isEmpty() )
860 sal_Unicode cLast = aParaText[ aParaText.getLength() - 1 ];
862 if( (
'0' <= cLast) && (cLast <=
'9') && (
'0' <= cFirst) && (cFirst <=
'9') )
863 aParaText.append(
" ");
865 aParaText.append(aPortionText);
873 aParaText.setLength(0);
874 if( nParaHeight == 0 )
875 nParaHeight = aFontData.
mnHeight * 20;
876 nHeight += nParaHeight;
881 if( !aText.isEmpty() )
883 maHFString +=
"&" + OUStringChar(cPortionCode) + aText;
894OUString lclEncodeDosPath(
895 XclBiff eBiff, std::u16string_view path,
bool bIsRel,
const OUString* pTableName)
907 path = path.substr(2);
912 path = path.substr(3);
921 auto nPos = std::u16string_view::npos;
922 while((nPos = path.find(
'\\')) != std::u16string_view::npos)
931 path = path.substr(nPos + 1);
936 aBuf.append(OUString::Concat(
"[") + path +
"]");
948 DBG_ASSERT( pTableName,
"lclEncodeDosUrl - sheet name required for BIFF8" );
958 aBuf.append(*pTableName);
962 if (
aBuf.getLength() > 255)
965 return aBuf.makeStringAndClear();
968bool isUrlRelative(
const OUString& aUrl)
970 css::uno::Reference<css::uri::XUriReferenceFactory> xUriFactory(
971 css::uri::UriReferenceFactory::create(
973 css::uno::Reference<css::uri::XUriReference> xUri(xUriFactory->parse(aUrl));
975 return !xUri->isAbsolute();
991 RTL_TEXTENCODING_UTF8, FSysStyle::Detect
994 if (isUrlRelative(aUrlPath))
997 osl::FileBase::getSystemPathFromFileURL(aUrlPath, aDosPath);
998 aDosPath = aDosPath.replaceAll(
u"/",
u"\\");
1005 return lclEncodeDosPath(rRoot.
GetBiff(), aDosPath, bIsRel, pTableName);
1016 : mrMatrix( rMatrix )
1029 OSL_ENSURE( nCols && nRows,
"XclExpCachedMatrix::GetDimensions - empty matrix" );
1030 OSL_ENSURE( nCols <= 256,
"XclExpCachedMatrix::GetDimensions - too many columns" );
1042 return 3 + 9 * (nCols * nRows);
1053 rStrm << static_cast< sal_uInt8 >( nCols ) <<
static_cast< sal_uInt16
>( nRows );
1056 rStrm << static_cast< sal_uInt8 >( nCols - 1 ) <<
static_cast< sal_uInt16
>( nRows - 1 );
1058 for(
SCSIZE nRow = 0; nRow < nRows; ++nRow )
1060 for(
SCSIZE nCol = 0; nCol < nCols; ++nCol )
1067 rStrm.SetSliceSize( 9 );
1069 rStrm.WriteZeroBytes( 8 );
1074 rStrm.SetSliceSize( 6 );
1080 rStrm.SetSliceSize( 9 );
1082 rStrm.WriteZeroBytes( 7 );
1084 else if( (nScError = nMatVal.
GetError()) != FormulaError::NONE )
1087 rStrm.SetSliceSize( 9 );
1089 rStrm.WriteZeroBytes( 7 );
1093 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 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.
static void GetFont(vcl::Font &rFont, const SfxItemSet &rItemSet, ScAutoFontColorMode eAutoMode, const OutputDevice *pOutDev=nullptr, const Fraction *pScale=nullptr, const SfxItemSet *pCondSet=nullptr, SvtScriptType nScript=SvtScriptType::NONE, const Color *pBackConfigColor=nullptr, const Color *pTextConfigColor=nullptr)
Static helper function to fill a font object from the passed item set.
SfxItemSet & GetItemSet()
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)
const OUString & getString() const
FontStrikeout GetStrikeout() const
const OUString & GetFamilyName() const
const Color & GetColor() 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)
@ SC_AUTOCOL_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.
Color maColor
String with styles (bold, italic).
sal_uInt16 mnHeight
Font color.
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.
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