22 #include <string_view>
24 #include <com/sun/star/i18n/XBreakIterator.hpp>
25 #include <com/sun/star/i18n/ScriptType.hpp>
27 #include <vcl/font.hxx>
41 #include <editeng/editids.hrc>
43 #include <document.hxx>
50 #include <globstr.hrc>
57 using ::com::sun::star::uno::Reference;
58 using ::com::sun::star::i18n::XBreakIterator;
64 mxProgress( new
ScfProgressBar( rRoot.GetDocShell(), STR_SAVE_DOC ) ),
65 mpSubProgress( nullptr ),
66 mpSubRowCreate( nullptr ),
67 mpSubRowFinal( nullptr ),
85 sal_Int32 nSegRowCreate =
mxProgress->AddSegment( 2000 );
89 for(
SCTAB nScTab = 0; nScTab < nScTabCount; ++nScTab )
95 rDoc.
GetTableArea( nScTab, nLastUsedScCol, nLastUsedScRow );
96 std::size_t nSegSize =
static_cast< std::size_t
>( nLastUsedScRow + 1 );
115 "XclExpProgressBar::ActivateCreateRowsSegment - invalid sheet" );
117 OSL_ENSURE( nSeg !=
SCF_INV_SEGMENT,
"XclExpProgressBar::ActivateCreateRowsSegment - invalid segment" );
152 rXclPos.
mnCol =
static_cast< sal_uInt16
>( nScCol );
153 rXclPos.
mnRow =
static_cast< sal_uInt32
>( nScRow );
172 bool bValid = bValidCol && bValidRow && bValidTab;
178 if( !bValid && bWarn )
191 lclFillAddress( rXclPos, rScPos.
Col(), rScPos.
Row() );
232 const ScRange& rScRange,
bool bWarn )
248 lclFillAddress( rXclRange.
maLast, nScCol2, nScRow2 );
257 for (
size_t nRange = rScRanges.
size(); nRange > 0; )
259 ScRange & rScRange = rScRanges[ --nRange ];
282 OUString lclGetUrlRepresentation(
const SvxURLField& rUrlField )
286 return aRepr.isEmpty() ? rUrlField.
GetURL() : aRepr;
294 mbMultipleUrls(
false )
313 if(
const OUString* pRepr =
mxLinkRec->GetRepr() )
321 return aUrlRepr.isEmpty() ? lclGetUrlRepresentation(rUrlField) : aUrlRepr;
363 namespace ApiScriptType = ::com::sun::star::i18n::ScriptType;
372 sal_Int32 nPortionPos = 0;
373 sal_Int32 nTextLen = rText.getLength();
374 while( nPortionPos < nTextLen )
377 sal_Int16 nScript = xBreakIt->getScriptType( rText, nPortionPos );
378 sal_Int32 nPortionEnd = xBreakIt->endOfScript( rText, nPortionPos, nScript );
381 if( nScript == ApiScriptType::WEAK )
382 nScript = nLastScript;
388 sal_Int32 nXclPortionStart = xString->Len();
391 if( nXclPortionStart < xString->Len() )
396 xString->AppendFormat( nXclPortionStart, nFontIdx );
400 nLastScript = nScript;
401 nPortionPos = nPortionEnd;
435 namespace ApiScriptType = ::com::sun::star::i18n::ScriptType;
441 for( sal_Int32 nPara = 0; nPara < nParaCount; ++nPara )
444 OUString aParaText( rEE.
GetText( nPara ) );
446 std::vector<sal_Int32> aPosList;
450 for(
const auto& rPos : aPosList )
453 OUString aXclPortionText = aParaText.copy( aSel.nStartPos, aSel.nEndPos - aSel.nStartPos );
455 aItemSet.ClearItem();
460 short nEsc = aEditSet.Get( EE_CHAR_ESCAPEMENT ).GetEsc();
463 bool bIsHyperlink =
false;
464 if( aSel.nStartPos + 1 == aSel.nEndPos )
467 if(
const SvxFieldItem* pItem = aEditSet.GetItemIfSet( EE_FEATURE_FIELD,
false ) )
470 if(
const SvxURLField* pUrlField = dynamic_cast<const SvxURLField*>( pField ) )
473 aXclPortionText = pLinkHelper ?
475 lclGetUrlRepresentation( *pUrlField );
480 OSL_FAIL(
"lclCreateFormattedString - unknown text field" );
481 aXclPortionText.clear();
487 sal_Int32 nXclPortionStart = xString->Len();
490 if( (nXclPortionStart < xString->Len()) || (aParaText.isEmpty()) )
494 sal_Int16 nScript = xBreakIt->getScriptType( aXclPortionText, 0 );
495 if( nScript == ApiScriptType::WEAK )
496 nScript = nLastScript;
498 nLastScript = nScript;
501 aFont.SetEscapement( nEsc );
504 aFont.SetColor( COL_LIGHTBLUE );
509 xString->AppendFormat( nXclPortionStart, nFontIdx );
512 aSel.nStartPos = aSel.nEndPos;
516 if( nPara + 1 < nParaCount )
530 xString->Assign( rString, nFlags, nMaxLen );
532 xString->AssignByte( rString, rRoot.
GetTextEncoding(), nFlags, nMaxLen );
547 rXclString.
Append( rString );
555 rXclString.
Append( rtl::OUStringChar(cChar) );
564 return lclCreateFormattedString(rRoot, rString, pCellAttr, nFlags, nMaxLen);
579 auto pEEItemSet = std::make_unique<SfxItemSet>( rEE.
GetEmptyItemSet() );
585 xString = lclCreateFormattedString( rRoot, rEE, &rLinkHelper, nFlags, nMaxLen );
601 rEE.
SetText( pParaObj->GetTextObject() );
602 xString = lclCreateFormattedString( rRoot, rEE,
nullptr, nFlags,
EXC_STR_MAXLEN );
605 if( !xString->IsEmpty() )
613 OSL_FAIL(
"XclExpStringHelper::CreateString - textbox without para object" );
628 xString = lclCreateFormattedString( rRoot, rEE,
nullptr, nFlags,
EXC_STR_MAXLEN );
631 if( !xString->IsEmpty() )
641 namespace ApiScriptType = ::com::sun::star::i18n::ScriptType;
643 sal_Int32 nStrPos = 0;
644 sal_Int32 nStrLen = rString.getLength();
645 sal_Int16 nScript = ApiScriptType::WEAK;
646 while( (nStrPos < nStrLen) && (nScript == ApiScriptType::WEAK) )
648 nScript = xBreakIt->getScriptType( rString, nStrPos );
649 nStrPos = xBreakIt->endOfScript( rString, nStrPos, nScript );
651 return (nScript == ApiScriptType::WEAK) ? rRoot.
GetDefApiScript() : nScript;
658 mrEE( rRoot.GetHFEditEngine() ),
677 if( !pTextObj )
return;
680 sal_Int32 nHeight = 0;
691 aFontData = pFirstFont->GetFontData();
697 const FontList* pFontList =
nullptr;
700 if(
const SvxFontListItem* pInfoItem = static_cast< const SvxFontListItem* >(
701 pDocShell->GetItem( SID_ATTR_CHAR_FONTLIST ) ) )
702 pFontList = pInfoItem->GetFontList();
706 for( sal_Int32 nPara = 0; nPara < nParaCount; ++nPara )
709 OUStringBuffer aParaText;
710 sal_Int32 nParaHeight = 0;
711 std::vector<sal_Int32> aPosList;
714 for(
const auto& rPos : aPosList )
735 if( bNewFont || (bNewStyle && pFontList) )
737 aParaText.append(
"&\"" + aNewData.
maName);
745 if( !aNewData.
maStyle.isEmpty() )
746 aParaText.append(
"," + aNewData.
maStyle);
748 aParaText.append(
"\"");
758 aParaText.append(
"&" + OUString::number(aNewData.
mnHeight));
760 nParaHeight = ::std::max< sal_Int32 >( nParaHeight, aNewData.
mnHeight * 20 );
788 aParaText.append(
"&S");
805 aFontData = aNewData;
815 if( dynamic_cast<const SvxPageField*>( pFieldData) != nullptr )
816 aParaText.append(
"&P");
817 else if( dynamic_cast<const SvxPagesField*>( pFieldData) !=
nullptr )
818 aParaText.append(
"&N");
819 else if( dynamic_cast<const SvxDateField*>( pFieldData) !=
nullptr )
820 aParaText.append(
"&D");
821 else if( dynamic_cast<const SvxTimeField*>( pFieldData) !=
nullptr || dynamic_cast<const SvxExtTimeField*>( pFieldData) !=
nullptr )
822 aParaText.append(
"&T");
823 else if( dynamic_cast<const SvxTableField*>( pFieldData) !=
nullptr )
824 aParaText.append(
"&A");
825 else if( dynamic_cast<const SvxFileField*>( pFieldData) !=
nullptr )
826 aParaText.append(
"&F");
827 else if(
const SvxExtFileField* pFileField = dynamic_cast<const SvxExtFileField*>( pFieldData ) )
829 switch( pFileField->GetFormat() )
831 case SvxFileFormat::NameAndExt:
832 case SvxFileFormat::NameOnly:
833 aParaText.append(
"&F");
835 case SvxFileFormat::PathOnly:
836 aParaText.append(
"&Z");
838 case SvxFileFormat::PathFull:
839 aParaText.append(
"&Z&F");
842 OSL_FAIL(
"XclExpHFConverter::AppendPortion - unknown file field" );
850 aPortionText = aPortionText.replaceAll(
"&",
"&&" );
852 if( bFontHtChanged && aParaText.getLength() && !aPortionText.isEmpty() )
854 sal_Unicode cLast = aParaText[ aParaText.getLength() - 1 ];
856 if( (
'0' <= cLast) && (cLast <=
'9') && (
'0' <= cFirst) && (cFirst <=
'9') )
857 aParaText.append(
" ");
859 aParaText.append(aPortionText);
867 if( nParaHeight == 0 )
868 nParaHeight = aFontData.
mnHeight * 20;
869 nHeight += nParaHeight;
874 if( !aText.isEmpty() )
876 maHFString +=
"&" + OUStringChar(cPortionCode) + aText;
887 OUString lclEncodeDosUrl(
888 XclBiff eBiff,
const OUString& rUrl, std::u16string_view rBase,
const OUString* pTableName)
894 OUString aOldUrl = rUrl;
897 if ( aOldUrl.getLength() > 2 && aOldUrl.startsWith(
"\\\\") )
901 aOldUrl = aOldUrl.copy(2);
903 else if ( aOldUrl.getLength() > 2 && aOldUrl.match(
":\\", 1) )
906 sal_Unicode cThisDrive = rBase.empty() ?
' ' : rBase[0];
908 if (cThisDrive == cDrive)
913 aOldUrl = aOldUrl.copy(3);
923 while((nPos = aOldUrl.indexOf(
'\\')) != -1)
925 if ( aOldUrl.startsWith(
"..") )
932 aOldUrl = aOldUrl.copy(nPos + 1);
937 aBuf.append(
'[').append(aOldUrl).append(
']');
939 aBuf.append(aOldUrl);
949 DBG_ASSERT( pTableName,
"lclEncodeDosUrl - sheet name required for BIFF8" );
950 aBuf.append(EXC_URLSTART_SELF);
959 aBuf.append(*pTableName);
963 if (aBuf.getLength() > 255)
966 return aBuf.makeStringAndClear();
975 return lclEncodeDosUrl(rRoot.
GetBiff(), aDosUrl, aDosBase, pTableName);
986 : mrMatrix( rMatrix )
999 OSL_ENSURE( nCols && nRows,
"XclExpCachedMatrix::GetDimensions - empty matrix" );
1000 OSL_ENSURE( nCols <= 256,
"XclExpCachedMatrix::GetDimensions - too many columns" );
1012 return 3 + 9 * (nCols * nRows);
1023 rStrm << static_cast< sal_uInt8 >( nCols ) <<
static_cast< sal_uInt16
>( nRows );
1026 rStrm << static_cast< sal_uInt8 >( nCols - 1 ) << static_cast< sal_uInt16 >( nRows - 1 );
1028 for(
SCSIZE nRow = 0; nRow < nRows; ++nRow )
1030 for(
SCSIZE nCol = 0; nCol < nCols; ++nCol )
1054 else if( (nScError = nMatVal.
GetError()) != FormulaError::NONE )
void ActivateSegment(sal_Int32 nSegment)
Starts the progress bar or activates another segment.
OUString AsRGBHexString() const
rtl::Reference< XclExpHyperlink > XclExpHyperlinkRef
static bool IsNonValueType(ScMatValType nType)
String, empty or empty path, but not value nor boolean.
ScAddress maMaxPos
Tracer for invalid addresses.
Matrix data type that can store values of mixed types.
const sal_Unicode EXC_URLSTART_SELF
Encoded URL.
void ConvertRangeList(XclRangeList &rXclRanges, const ScRangeList &rScRanges, bool bWarn)
Converts the passed Calc cell range list to an Excel cell range list.
SC_DLLPUBLIC const css::uno::Reference< css::i18n::XBreakIterator > & GetBreakIterator()
This class stores an unformatted or formatted string for Excel export.
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.
EditEngine & GetDrawEditEngine() const
Returns the edit engine for import/export of drawing text boxes.
OUString GetText(LineEnd eEnd=LINEEND_LF) const
const sal_uInt16 EXC_STR_MAXLEN
const sal_Unicode EXC_URL_PARENTDIR
Directory name delimiter.
vcl::Font GetFontFromItemSet(const XclExpRoot &rRoot, const SfxItemSet &rItemSet, sal_Int16 nScript)
Returns a VCL font object filled from the passed item set.
XclExpHyperlinkRef mxLinkRec
sal_Int32 mnSegRowFinal
Sub progress bar for finalizing ROW records.
rtl_TextEncoding GetTextEncoding() const
Returns the text encoding to import/export byte strings.
OUString getString() const
XclBiff
An enumeration for all Excel file format types (BIFF types).
void SetDefaults(const SfxItemSet &rDefaults, bool bRememberCopy=true)
Creates a copy of SfxItemSet if bRememberCopy set.
bool ConvertRange(XclRange &rXclRange, const ScRange &rScRange, bool bWarn)
Converts the passed Calc cell range to an Excel cell range.
XclExpAddressConverter(const XclExpRoot &rRoot)
const OUString & GetFamilyName() const
bool IsExportTab(SCTAB nScTab) const
Returns true, if the specified Calc sheet will be exported.
void ActivateCreateRowsSegment()
Activates the progress segment to create ROW records.
This class is used to export Excel record streams.
XclStrFlags
Flags used to specify import/export mode of strings.
const SfxItemSet & GetEmptyItemSet() const
void Initialize()
Initializes all segments and sub progress bars.
void push_back(const XclRange &rRange)
bool mbTabTrunc
Flag for "rows truncated" warning box.
ScAddress maScPos
Created HLINK record.
void Progress()
Increases the currently activated (sub) progress bar by 1 step.
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.
static void AppendString(XclExpString &rXclString, const XclExpRoot &rRoot, std::u16string_view rString)
Appends an unformatted string to an Excel string object.
constexpr::Color COL_AUTO(ColorTransparency, 0xFF, 0xFF, 0xFF, 0xFF)
This struct helps reading and writing Excel fonts.
bool CheckRange(const ScRange &rScRange, bool bWarn)
Checks if the passed cell range is valid (checks start and end position).
ScMatrixValue Get(SCSIZE nC, SCSIZE nR) const
: If bString the ScMatrixValue->pS may still be NULL to indicate an empty string! ...
Provides export of hyperlink data.
ScfProgressBarPtr mxProgress
sal_uInt16 mnHeight
Font color.
ScfProgressBar * mpSubRowCreate
Current sub progress bar.
const sal_uInt16 EXC_MAXRECSIZE_BIFF8
const sal_uInt8 EXC_CACHEDVAL_ERROR
const sal_Unicode EXC_URLSTART_ENCODED
ScDocument & GetDoc() const
Returns reference to the destination document (import) or source document (export).
void ActivateFinalRowsSegment()
Activates the progress segment to finalize ROW records.
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...
XclExpHFConverter(const XclExpHFConverter &)=delete
delete copy constructor
constexpr TypedWhichId< SvxFontHeightItem > EE_CHAR_FONTHEIGHT(EE_CHAR_START+2)
SfxItemSet GetAttribs(sal_Int32 nPara, sal_Int32 nStart, sal_Int32 nEnd, GetAttribsFlags nFlags=GetAttribsFlags::ALL) const
Try NOT to use this struct.
XclExpCachedMatrix(const ScMatrix &rMatrix)
Constructs and fills a new matrix.
const sal_uInt16 EXC_FONTESC_SUB
SC_DLLPUBLIC ScDocumentPool * GetPool()
const sal_uInt16 EXC_FONTWGHT_BOLD
const sal_Unicode EXC_DDE_DELIM
Sheet name starts here (BIFF4).
Access to global data from other classes.
const sal_uInt16 EXC_FONT_APP
bool GetBoolean() const
Only valid if ScMatrix methods indicate that this is a boolean.
constexpr TypedWhichId< SvxFieldItem > EE_FEATURE_FIELD(EE_FEATURE_NOTCONV+1)
void SetText(const OUString &rStr)
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 ...
Helper to create HLINK records during creation of formatted cell strings.
bool mbMultipleUrls
List with all processed URLs.
bool IsFull() const
Returns true, if the current progress segment is already full.
FontMetric Get(const OUString &rName, const OUString &rStyleName) const
const sal_uInt16 EXC_FONTESC_NONE
ScfInt32Vec maSubSegRowCreate
Sub progress bar for creating table rows.
void GenerateString(const EditTextObject *pLeftObj, const EditTextObject *pCenterObj, const EditTextObject *pRightObj)
Generates the header/footer string from the passed edit engine text objects.
XclAddress CreateValidAddress(const ScAddress &rScPos, bool bWarn)
Returns a valid cell address by moving it into allowed dimensions.
bool mbItalic
Underline style.
const OUString & GetStyleName(FontWeight eWeight, FontItalic eItalic) const
void GetDimensions(SCSIZE &nCols, SCSIZE &nRows) const
const sal_Int32 SCF_INV_SEGMENT
void SetSliceSize(sal_uInt16 nSize)
Sets data slice length.
const sal_Unicode EXC_URLSTART_SELFENCODED
Reference to own workbook.
void Progress(std::size_t nDelta=1)
Increase current segment by the passed value.
FormulaError GetError() const
Only valid if ScMatrix methods indicate that this is no string!
std::size_t GetSize() const
Returns the byte count of all contained data.
sal_uInt16 mnEscapem
Boldness: 400=normal, 700=bold.
void SetScEscapement(short nScEscapem)
Sets the Calc escapement style.
Stores all data of an Excel font and provides export of FONT records.
sal_uInt16 ClearItem(sal_uInt16 nWhich=0)
MS Excel 5.0, MS Excel 7.0 (95)
OUString getFSysPath(FSysStyle eStyle, sal_Unicode *pDelimiter=nullptr) const
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.
OUString maStyle
Font name.
void Activate()
Starts the progress bar (with first segment).
sal_uInt8 mnUnderline
Windows character set.
void SetTextCurrentDefaults(const EditTextObject &rTextObject)
SetText and apply defaults already set.
void IncRowRecordCount()
Increases the number of existing ROW records by 1.
#define DBG_ASSERT(sCon, aError)
XclExpHyperlinkHelper(const XclExpRoot &rRoot, const ScAddress &rScPos)
void GetDimensions(SCSIZE &rC, SCSIZE &rR) const
OUString maHFString
The header/footer edit engine.
static void GetFromEditItemSet(SfxItemSet &rDestSet, const SfxItemSet &rEditSet)
Converts all edit engine items contained in rEditSet to Calc items and puts them into rDestSet...
bool mbColTrunc
Maximum row index.
const sal_Unicode EXC_URL_DOSDRIVE
Reference to own workbook (BIFF5/BIFF7).
XclExpHyperlinkRef GetLinkRecord() const
Returns the created single HLINk record, or an empty reference.
A 2D cell range address list with Excel column and row indexes.
SfxItemSet & GetItemSet()
Stores the correct Excel sheet index for each Calc sheet.
const sal_uInt8 EXC_CACHEDVAL_BOOL
const ScMatrix & mrMatrix
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...
FontStrikeout GetStrikeout() const
const OUString & GetRepresentation() const
const sal_Unicode EXC_URL_SUBDIR
Root directory of current drive.
XclExpTabInfo & GetTabInfo() const
Returns the buffer for Calc->Excel sheet index conversion.
OUString maUrlList
Cell position to set at the HLINK record.
A 2D cell address struct with Excel column and row indexes.
bool IsRGBEqual(const Color &rColor) const
bool HasLinkRecord() const
Returns true, if a single HLINK record has been created.
vcl::Font GetFont(vcl::Font const &rFont, DrawModeFlags nDrawMode, StyleSettings const &rStyleSettings)
const sal_uInt8 EXC_FONTUNDERL_SINGLE
Progress bar for complex progress representation.
const sal_uInt8 EXC_CACHEDVAL_EMPTY
const sal_uInt16 EXC_FONTWGHT_NORMAL
bool ValidateRange(ScRange &rScRange, bool bWarn)
Checks and eventually crops the cell range to valid dimensions.
virtual ~XclExpProgressBar() override
sal_Int16 GetDefApiScript() const
Returns the default script type, e.g.
sal_Int32 GetParagraphCount() const
const XclExpRoot & GetRoot() const
Returns this root instance - for code readability in derived classes.
bool SetUpdateLayout(bool bUpdate, bool bRestoring=false)
SCTAB GetCurrScTab() const
Returns the current Calc sheet index.
const OUString & GetURL() const
ScfProgressBar * mpSubProgress
Progress bar implementation.
SCTAB GetScTabCount() const
Returns the number of Calc sheets.
const svl::SharedString & GetString() const
Only valid if ScMatrix methods indicate so!
const sal_uInt8 EXC_CACHEDVAL_DOUBLE
const sal_uInt16 EXC_FONTESC_SUPER
const Color & GetColor() const
ScEditEngineDefaulter & GetEditEngine() const
Returns the edit engine for import/export of rich strings etc.
std::size_t mnRowCount
Progress segment for finalizing ROW records.
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.
sal_Int32 mnTotalHeight
The last generated header/footer string.
SC_DLLPUBLIC bool GetTableArea(SCTAB nTab, SCCOL &rEndCol, SCROW &rEndRow, bool bCalcHiddens=false) const
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.
const sal_uInt8 EXC_CACHEDVAL_STRING
virtual OutlinerParaObject * GetOutlinerParaObject() const override
void Append(std::u16string_view rString)
Appends a string.
constexpr TypedWhichId< SvxEscapementItem > EE_CHAR_ESCAPEMENT(EE_CHAR_START+10)
XclExpProgressBar(const XclExpRoot &rRoot)
static OUString EncodeDde(std::u16string_view rApplic, std::u16string_view rTopic)
Encodes and returns the passed DDE link to an Excel like DDE link.
void GetPortions(sal_Int32 nPara, std::vector< sal_Int32 > &rList)
Stores the data of all fonts used in the document.
sal_uInt16 mnWeight
Font height in twips (1/20 of a point).
void AppendPortion(const EditTextObject *pTextObj, sal_Unicode cPortionCode)
Converts the text object contents and stores it in the passed string.
static void AppendChar(XclExpString &rXclString, const XclExpRoot &rRoot, sal_Unicode cChar)
Appends a character to an Excel string object.
void Save(XclExpStream &rStrm) const
Writes the complete matrix to stream.
SC_DLLPUBLIC ScPatternAttr * GetDefPattern() const
bool mbRowTrunc
Flag for "columns truncated" warning box.
const sal_uInt8 EXC_FONTUNDERL_NONE
XclBiff GetBiff() const
Returns the current BIFF version of the importer/exporter.
Base class for import/export address converters.
OUString ProcessUrlField(const SvxURLField &rUrlField)
Processes the passed URL field (tries to create a HLINK record).
void TraceInvalidAddress(const ScAddress &rPos, const ScAddress &rMaxPos)
const sal_Unicode EXC_URL_DRIVEROOT
DOS drive letter or UNC server name.
void AppendByte(std::u16string_view rString, rtl_TextEncoding eTextEnc)
Appends a string.
FontLineStyle GetUnderline() const
void ValidateRangeList(ScRangeList &rScRanges, bool bWarn)
Checks and eventually crops the cell ranges to valid dimensions.
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.
const OUString & GetBasePath() const
Returns the base path of the imported/exported file.
Color maColor
String with styles (bold, italic).
SfxObjectShell * GetDocShell() const
Returns the object shell of the Calc document.
std::shared_ptr< XclExpString > XclExpStringRef
const XclExpRoot & GetRoot() const
Returns the filter root data.
ScfProgressBar * mpSubRowFinal
Segment ID's for all sheets in sub progress bar.
const sal_uInt8 EXC_FONTUNDERL_DOUBLE
bool mbStrikeout
true = Italic.
constexpr TypedWhichId< SvxColorItem > ATTR_FONT_COLOR(109)
XclExpFontBuffer & GetFontBuffer() const
Returns the font buffer.
virtual ~XclExpHyperlinkHelper() override
bool CheckAddress(const ScAddress &rScPos, bool bWarn)
Checks if the passed Calc cell address is valid.
bool ConvertAddress(XclAddress &rXclPos, const ScAddress &rScPos, bool bWarn)
Converts the passed Calc cell address to an Excel cell address.
A 2D cell range address struct with Excel column and row indexes.
sal_Int32 AddSegment(std::size_t nSize)
Adds a new segment to the progress bar.
void WriteZeroBytes(std::size_t nBytes)
Writes a sequence of nBytes zero bytes (respects slice setting).
const SvxFieldData * GetField() const
bool m_bDetectedRangeSegmentation false