40#include <editeng/editeng.hxx>
51#include <osl/diagnose.h>
57#include <document.hxx>
83#include <com/sun/star/frame/XModel.hpp>
84#include <com/sun/star/uno/Reference.h>
85#include <com/sun/star/document/XDocumentProperties.hpp>
86#include <com/sun/star/document/XDocumentPropertiesSupplier.hpp>
87#include <rtl/strbuf.hxx>
88#include <officecfg/Office/Common.hxx>
90using ::editeng::SvxBorderLine;
109 "xx-small",
"x-small",
"small",
"medium",
"large",
"x-large",
"xx-large"
114 "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t";
118#define TAG_ON( tag ) HTMLOutFuncs::Out_AsciiTag( rStrm, tag )
119#define TAG_OFF( tag ) HTMLOutFuncs::Out_AsciiTag( rStrm, tag, false )
120#define OUT_STR( str ) HTMLOutFuncs::Out_String( rStrm, str, &aNonConvertibleChars )
121#define OUT_LF() rStrm.WriteOString( SAL_NEWLINE_STRING ).WriteOString( GetIndentStr() )
122#define TAG_ON_LF( tag ) (TAG_ON( tag ).WriteOString( SAL_NEWLINE_STRING ).WriteOString( GetIndentStr() ))
123#define TAG_OFF_LF( tag ) (TAG_OFF( tag ).WriteOString( SAL_NEWLINE_STRING ).WriteOString( GetIndentStr() ))
124#define OUT_HR() TAG_ON_LF( OOO_STRING_SVTOOLS_HTML_horzrule )
125#define OUT_COMMENT( comment ) (rStrm.WriteOString( sMyBegComment ), OUT_STR( comment ) \
126 .WriteOString( sMyEndComment ).WriteOString( SAL_NEWLINE_STRING ) \
127 .WriteOString( GetIndentStr() ))
129#define OUT_SP_CSTR_ASS( s ) rStrm.WriteChar(' ').WriteOString( s ).WriteChar( '=' )
131#define GLOBSTR(id) ScResId( id )
134 const ScRange& rRange,
const rtl_TextEncoding ,
bool bAll,
135 const OUString& rStreamPath, OUString& rNonConvertibleChars,
const OUString& rFilterOptions )
137 ScHTMLExport aEx(
rStrm, rBaseURL, pDoc, rRange, bAll, rStreamPath, rFilterOptions );
150 + OString::number(nSpan)
155 + OString::number(nWidth)
157 return aByteStr.makeStringAndClear();
161 const css::util::DateTime& rDateTime,
164 Date aD(rDateTime.Day, rDateTime.Month, rDateTime.Year);
165 tools::Time aT(rDateTime.Hours, rDateTime.Minutes, rDateTime.Seconds,
166 rDateTime.NanoSeconds);
169 OUString aStrDate = rLoc.
getDate( aDateTime );
170 OUString aStrTime = rLoc.
getTime( aDateTime );
172 rStr +=
GLOBSTR( STR_BY ) +
" ";
177 rStr +=
" " +
GLOBSTR( STR_ON ) +
" ";
178 if (!aStrDate.isEmpty())
183 if (!aStrTime.isEmpty())
200 const ScRange& rRangeP,
bool bAllP,
201 OUString aStreamPathP, std::u16string_view rFilterOptions ) :
203 aBaseURL(
std::move( _aBaseURL )),
204 aStreamPath(
std::move( aStreamPathP )),
209 bTabHasGraphics( false ),
210 bTabAlignedLeft( false ),
211 bCalcAsShown( pDocP->GetDocOptions().IsCalcAsShown() ),
212 bTableDataHeight( true ),
213 mbSkipImages ( false ),
214 mbSkipHeaderFooter( false )
222 if (rFilterOptions ==
u"SkipImages")
226 else if (rFilterOptions ==
u"SkipHeaderFooter")
256 sal_uInt16 nSize = 1;
278 nVal =
static_cast<sal_uInt16
>(
pAppWin->LogicToPixel(
279 Size( nVal, nVal ),
MapMode( MapUnit::MapTwip ) ).Width());
323 uno::Reference<document::XDocumentPropertiesSupplier> xDPS(
325 uno::Reference<document::XDocumentProperties> xDocProps
326 = xDPS->getDocumentProperties();
331 if (!xDocProps->getPrintedBy().isEmpty())
334 OUString aStrOut =
GLOBSTR( STR_DOC_PRINTED ) +
": ";
374 for(sal_Int32
nPos {0};;)
493 OSL_ENSURE( pStylePool,
"StylePool not found! :-(" );
498 pStyleSheet = pStylePool->
Find(
499 ScResId(STR_STYLENAME_STANDARD),
500 SfxStyleFamily::Para );
501 OSL_ENSURE( pStyleSheet,
"ParaStyle not found! :-(" );
503 pStyleSheet = pStylePool->
First(SfxStyleFamily::Para);
521 OSL_ENSURE( pStyleSheet,
"PageStyle not found! :-(" );
523 pStyleSheet = pStylePool->
First(SfxStyleFamily::Page);
535 const SvxBorderLine* pLine,
bool& bInsertSemicolon)
541 if ( bInsertSemicolon )
545 aOut.append(OString::Concat(
"border-") + pBorderName +
": ");
548 int nWidth = pLine->GetWidth();
549 int nPxWidth = (nWidth > 0) ?
551 aOut.append(OString::number(nPxWidth) +
"px ");
552 switch (pLine->GetBorderLineStyle())
554 case SvxBorderLineStyle::SOLID:
555 aOut.append(
"solid");
557 case SvxBorderLineStyle::DOTTED:
558 aOut.append(
"dotted");
560 case SvxBorderLineStyle::DASHED:
561 case SvxBorderLineStyle::DASH_DOT:
562 case SvxBorderLineStyle::DASH_DOT_DOT:
563 aOut.append(
"dashed");
565 case SvxBorderLineStyle::DOUBLE:
566 case SvxBorderLineStyle::DOUBLE_THIN:
567 case SvxBorderLineStyle::THINTHICK_SMALLGAP:
568 case SvxBorderLineStyle::THINTHICK_MEDIUMGAP:
569 case SvxBorderLineStyle::THINTHICK_LARGEGAP:
570 case SvxBorderLineStyle::THICKTHIN_SMALLGAP:
571 case SvxBorderLineStyle::THICKTHIN_MEDIUMGAP:
572 case SvxBorderLineStyle::THICKTHIN_LARGEGAP:
573 aOut.append(
"double");
575 case SvxBorderLineStyle::EMBOSSED:
576 aOut.append(
"ridge");
578 case SvxBorderLineStyle::ENGRAVED:
579 aOut.append(
"groove");
581 case SvxBorderLineStyle::OUTSET:
582 aOut.append(
"outset");
584 case SvxBorderLineStyle::INSET:
585 aOut.append(
"inset");
588 aOut.append(
"hidden");
594 snprintf( hex, 7,
"%06" SAL_PRIxUINT32,
static_cast<sal_uInt32
>( pLine->GetColor().GetRGBColor() ) );
599 bInsertSemicolon =
true;
602 return aOut.makeStringAndClear();
623 if( aLink.isEmpty() )
631 "JPG", XOutFlags::UseNativeIfPossible );
654 if( !aLink.isEmpty() )
659 aLink ) ).WriteChar(
'\"' );
687 const OUString aStrTable(
ScResId( SCSTR_TABLE ) );
696 SCCOL nStartColFix = 0;
697 SCROW nStartRowFix = 0;
698 SCCOL nEndColFix = 0;
699 SCROW nEndRowFix = 0;
704 nEndTab = nTabCount - 1;
715 SCTAB nTableStrNum = 1;
716 for (
SCTAB nTab=nStartTab; nTab<=nEndTab; nTab++ )
723 if ( !
GetDataArea( nTab, nStartCol, nStartRow, nEndCol, nEndRow ) )
728 aStrOut = aStrTable +
" " + OUString::number( nTableStrNum++ ) +
": ";
750 nStartCol = nStartColFix;
751 nStartRow = nStartRowFix;
752 nEndCol = nEndColFix;
753 nEndRow = nEndRowFix;
754 if ( !
TrimDataArea( nTab, nStartCol, nStartRow, nEndCol, nEndRow ) )
762 if (
bAll && pDrawLayer )
785 SCCOL nCol = nStartCol;
786 sal_Int32 nWidth = 0;
788 while( nCol <= nEndCol )
823 std::vector< sc::ColumnBlockPosition > blockPos( nEndCol - nStartCol + 1 );
824 for(
SCCOL i = nStartCol;
i <= nEndCol; ++
i )
826 for (
SCROW nRow=nStartRow; nRow<=nEndRow; nRow++ )
837 for (
SCCOL nCol2=nStartCol; nCol2<=nEndCol; nCol2++ )
842 if ( nCol2 == nEndCol )
844 WriteCell( blockPos[ nCol2 - nStartCol ], nCol2, nRow, nTab );
848 if ( nRow == nEndRow )
861 for (
size_t i = 0;
i < ListSize; ++
i )
876 TAG_ON_LF( aByteStrOut.makeStringAndClear() );
881 OUT_COMMENT(
"**************************************************************************" );
887 std::optional<Color> aColorScale;
897 if (rCondIndex.
size() > 0)
904 aColorScale = pEntry->
GetColor(aPos);
917 for (
size_t i = 0;
i < ListSize; ++
i )
920 if (
pE->bInCell &&
pE->aRange.Contains( aPos ) )
922 if (
pE->aRange.aStart == aPos )
939 if ( nScriptType == SvtScriptType::NONE )
950 bool bInsertSemicolon =
false;
964 sal_uInt16 nHeightPixel;
967 if ( pGraphEntry || rMergeAttr.
IsMerged() )
980 "=" + OString::number(
static_cast<sal_Int32
>(nC)));
982 for ( jC=nCol,
v=0; jC<nC; jC++ )
994 "=" + OString::number(
static_cast<sal_Int32
>(nR)));
997 nHeightPixel =
ToPixel(
static_cast< sal_uInt16
>(
v ) );
1008 OString::number(nHeightPixel) +
"\"");
1047 aBgColor = *aColorScale;
1059 sal_uInt16 nSetFontSizeNumber = 0;
1060 sal_uInt32 nFontHeight = rFontHeightItem.
GetHeight();
1065 nSetFontSizeNumber = 0;
1068 bool bSetFont = (bSetFontColor || bSetFontName || nSetFontSizeNumber);
1074 switch( rHorJustifyItem.GetValue() )
1076 case SvxCellHorJustify::Standard:
1082 case SvxCellHorJustify::Left:
1083 case SvxCellHorJustify::Repeat:
1088 OString::Concat(
pChar) +
"\"");
1090 switch( rVerJustifyItem.GetValue() )
1095 case SvxCellVerJustify::Standard:
1096 default:
pChar =
nullptr;
1123 OSL_FAIL(
"value data with unsupported cell type" );
1130 TAG_ON(aStrTD.makeStringAndClear());
1167 for (sal_Int32
nPos {0};;)
1170 rList.getToken( 0,
';',
nPos ),
1172 aStr.append(aTmpStr);
1181 if ( nSetFontSizeNumber )
1184 + OString::number(
static_cast<sal_Int32
>(nSetFontSizeNumber)));
1186 if ( bSetFontColor )
1201 bool bWriteHyperLink(
false);
1209 bWriteHyperLink =
true;
1213 if (bWriteHyperLink)
1221 bool bFieldText =
false;
1223 const Color* pColor;
1237 if ( aStrOut.isEmpty() )
1243 sal_Int32
nPos = aStrOut.indexOf(
'\n' );
1250 sal_Int32 nStartPos = 0;
1253 OUString aSingleLine = aStrOut.copy( nStartPos,
nPos - nStartPos );
1256 nStartPos =
nPos + 1;
1258 while( (
nPos = aStrOut.indexOf(
'\n', nStartPos ) ) != -1 );
1259 OUString aSingleLine = aStrOut.copy( nStartPos );
1280 bool bFields =
false;
1290 if ( eFieldState == SfxItemState::DONTCARE || eFieldState == SfxItemState::SET )
1296 for ( sal_Int32 nPar=0; nPar < nParas; nPar++ )
1300 std::vector<sal_Int32> aPortions;
1302 sal_Int32 nStart = 0;
1303 for (
const sal_Int32 nEnd : aPortions )
1308 if ( nEnd == nStart+1 )
1318 OUT_STR( pURLField->GetURL() );
1320 OUT_STR( pURLField->GetRepresentation() );
1336 std::u16string_view rTargetNm )
1341 if( !(INetProtocol::File == aFileUrl.
GetProtocol() &&
1342 ( INetProtocol::File != aTargetUrl.
GetProtocol() &&
1344 INetProtocol::Javascript >= aTargetUrl.
GetProtocol())) )
1350 std::map<OUString, OUString>::iterator it =
pFileNameMap->find( rFileNm );
1353 rFileNm = it->second;
1359 pFileNameMap.reset(
new std::map<OUString, OUString> );
1365 OUString aSrc = rFileNm;
1368 SfxMedium aMedium( aDest, StreamMode::WRITE | StreamMode::SHARE_DENYNONE );
sal_uInt8 GetBlue() const
sal_uInt8 GetAlpha() const
bool IsTransparent() const
sal_uInt8 GetGreen() 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
sal_Int32 GetTextLen() const
bool SetSmartURL(std::u16string_view rTheAbsURIRef, EncodeMechanism eMechanism=EncodeMechanism::WasEncoded, rtl_TextEncoding eCharset=RTL_TEXTENCODING_UTF8, FSysStyle eStyle=FSysStyle::Detect)
OUString GetLastName(DecodeMechanism eMechanism=DecodeMechanism::ToIUri, rtl_TextEncoding eCharset=RTL_TEXTENCODING_UTF8) const
OUString GetPartBeforeLastName() const
OUString PathToFileName() const
INetProtocol GetProtocol() const
OUString getDate(const Date &rDate) const
OUString getTime(const tools::Time &rTime, bool bSec=true, bool b100Sec=false) const
SC_DLLPUBLIC sal_uInt16 GetRowHeight(SCROW nRow, SCTAB nTab, bool bHiddenAsZero=true) const
SC_DLLPUBLIC sal_uInt16 GetColWidth(SCCOL nCol, SCTAB nTab, bool bHiddenAsZero=true) const
SC_DLLPUBLIC ScFieldEditEngine & GetEditEngine()
SC_DLLPUBLIC ScPostIt * GetNote(const ScAddress &rPos)
SC_DLLPUBLIC bool InitColumnBlockPosition(sc::ColumnBlockPosition &rBlockPos, SCTAB nTab, SCCOL nCol)
SC_DLLPUBLIC double RoundValueAsShown(double fVal, sal_uInt32 nFormat, const ScInterpreterContext *pContext=nullptr) const
SC_DLLPUBLIC OUString GetPageStyle(SCTAB nTab) const
SC_DLLPUBLIC ScDrawLayer * GetDrawLayer()
SC_DLLPUBLIC bool RowHidden(SCROW nRow, SCTAB nTab, SCROW *pFirstRow=nullptr, SCROW *pLastRow=nullptr) const
SC_DLLPUBLIC bool HasNote(const ScAddress &rPos) const
bool IsClipOrUndo() const
SfxObjectShell * GetDocumentShell() const
SC_DLLPUBLIC ScStyleSheetPool * GetStyleSheetPool() const
SC_DLLPUBLIC SvtScriptType GetScriptType(SCCOL nCol, SCROW nRow, SCTAB nTab, const ScRefCellValue *pCell=nullptr)
SC_DLLPUBLIC ScConditionalFormatList * GetCondFormList(SCTAB nTab) const
SC_DLLPUBLIC bool ColHidden(SCCOL nCol, SCTAB nTab, SCCOL *pFirstCol=nullptr, SCCOL *pLastCol=nullptr) const
SC_DLLPUBLIC bool HasHiddenRows(SCROW nStartRow, SCROW nEndRow, SCTAB nTab) const
SC_DLLPUBLIC bool IsVisible(SCTAB nTab) const
SC_DLLPUBLIC bool GetName(SCTAB nTab, OUString &rName) const
SC_DLLPUBLIC const SfxPoolItem * GetAttr(SCCOL nCol, SCROW nRow, SCTAB nTab, sal_uInt16 nWhich) const
SC_DLLPUBLIC const SfxItemSet * GetCondResult(SCCOL nCol, SCROW nRow, SCTAB nTab, ScRefCellValue *pCell=nullptr) const
SC_DLLPUBLIC const ScPatternAttr * GetPattern(SCCOL nCol, SCROW nRow, SCTAB nTab) const
SC_DLLPUBLIC SCROW FirstVisibleRow(SCROW nStartRow, SCROW nEndRow, SCTAB nTab) const
SC_DLLPUBLIC SCTAB GetTableCount() const
bool IsEmptyTable(SCTAB nTab) const
bool TrimDataArea(SCTAB nTab, SCCOL &nStartCol, SCROW &nStartRow, SCCOL &nEndCol, SCROW &nEndRow) const
bool GetDataArea(SCTAB nTab, SCCOL &nStartCol, SCROW &nStartRow, SCCOL &nEndCol, SCROW &nEndRow) const
SvNumberFormatter * pFormatter
static SC_DLLPUBLIC sal_uInt16 GetScriptedWhichID(SvtScriptType nScriptType, sal_uInt16 nWhich)
Map ATTR_((CJK|CTL)_)?FONT_... to proper WhichIDs.
static SC_DLLPUBLIC const LocaleDataWrapper & getLocaleData()
static SC_DLLPUBLIC SvtScriptType GetDefaultScriptType()
bool bCopyLocalFileToINet
void WriteGraphEntry(ScHTMLGraphEntry *)
void WriteCell(sc::ColumnBlockPosition &rBlockPos, SCCOL nCol, SCROW nRow, SCTAB nTab)
static const char * pFontSizeCss[SC_HTML_FONTSIZES]
static const char * GetFontSizeCss(sal_uInt16 nHeight)
VclPtr< OutputDevice > pAppWin
virtual ~ScHTMLExport() override
FileNameMapPtr pFileNameMap
static const sal_uInt16 nDefaultFontSize[SC_HTML_FONTSIZES]
OUString aNonConvertibleChars
static sal_uInt16 nFontSize[SC_HTML_FONTSIZES]
char sIndent[nIndentMax+1]
Size MMToPixel(const Size &r100thMMSize)
static sal_uInt16 GetFontSizeNumber(sal_uInt16 nHeight)
GraphEntryList aGraphList
void IncIndent(short nVal)
bool WriteFieldText(const EditTextObject *pData)
const OUString & GetNonConvertibleChars() const
const SfxItemSet & PageDefaults(SCTAB nTab)
sal_uInt16 ToPixel(sal_uInt16 nTwips)
static OString BorderToStyle(const char *pBorderName, const editeng::SvxBorderLine *pLine, bool &bInsertSemicolon)
void PrepareGraphics(ScDrawLayer *, SCTAB nTab, SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow)
static const sal_uInt16 nCellSpacing
void CopyLocalFileToINet(OUString &rFileNm, std::u16string_view rTargetNm)
bool mbSkipHeaderFooter
If HTML header and footer should be written as well, or just the content itself.
static const char sIndentSource[]
ScHTMLExport(SvStream &, OUString, ScDocument *, const ScRange &, bool bAll, OUString aStreamPath, std::u16string_view aFilterOptions)
SCCOL GetColMerge() const
SCROW GetRowMerge() const
bool IsOverlapped() const
sal_uInt32 GetNumberFormat(SvNumberFormatter *) const
const SfxPoolItem & GetItem(sal_uInt16 nWhichP) const
Additional class containing cell annotation data.
OUString GetText() const
Returns the caption text of this note.
static void Out_DocInfo(SvStream &rStrm, const OUString &rBaseURL, const css::uno::Reference< css::document::XDocumentProperties > &, const char *pIndent, OUString *pNonConvertableChars=nullptr)
const T * GetItemIfSet(TypedWhichId< T > nWhich, bool bSrchInParent=true) const
SfxItemState GetItemState(sal_uInt16 nWhich, bool bSrchInParent=true, const SfxPoolItem **ppItem=nullptr) const
const SfxPoolItem & Get(sal_uInt16 nWhich, bool bSrchInParent=true) const
void Close(bool bInDestruction=false)
const OUString & GetPhysicalName() const
css::uno::Reference< css::frame::XModel3 > GetModel() const
SfxStyleSheetBase * First(SfxStyleFamily eFamily, SfxStyleSearchBits eMask=SfxStyleSearchBits::All)
virtual SfxStyleSheetBase * Find(const OUString &, SfxStyleFamily eFam, SfxStyleSearchBits n=SfxStyleSearchBits::All)
virtual SfxItemSet & GetItemSet()
constexpr tools::Long Height() const
void setWidth(tools::Long nWidth)
void setHeight(tools::Long nHeight)
constexpr tools::Long Width() const
SvStream & WriteOString(std::string_view rStr)
SvStream & WriteChar(char nChar)
SvStream & WriteStream(SvStream &rStream)
const editeng::SvxBorderLine * GetTop() const
const editeng::SvxBorderLine * GetRight() const
const editeng::SvxBorderLine * GetLeft() const
const editeng::SvxBorderLine * GetBottom() const
const Color & GetColor() const
const Graphic * GetGraphic(OUString const &referer=OUString()) const
const OUString & GetGraphicLink() const
SvxGraphicPosition GetGraphicPos() const
const Color & GetValue() const
FontStrikeout GetStrikeout() const
sal_uInt32 GetHeight() const
const OUString & GetFamilyName() const
FontItalic GetPosture() const
FontLineStyle GetLineStyle() const
FontWeight GetWeight() const
static ErrCode WriteGraphic(const Graphic &rGraphic, OUString &rFileName, const OUString &rFilterName, const XOutFlags nFlags, const Size *pMtfSize_100TH_MM=nullptr, const css::uno::Sequence< css::beans::PropertyValue > *pFilterData=nullptr, OUString *pMediaType=nullptr)
constexpr ::Color COL_AUTO(ColorTransparency, 0xFF, 0xFF, 0xFF, 0xFF)
constexpr ::Color COL_BLACK(0x00, 0x00, 0x00)
#define SAL_NEWLINE_STRING
constexpr TypedWhichId< SvxFieldItem > EE_FEATURE_FIELD(EE_FEATURE_NOTCONV+1)
static void lcl_AddStamp(OUString &rStr, std::u16string_view rName, const css::util::DateTime &rDateTime, const LocaleDataWrapper &rLoc)
const char sMyEndComment[]
#define OUT_SP_CSTR_ASS(s)
static OString lcl_getColGroupString(sal_Int32 nSpan, sal_Int32 nWidth)
static OString lcl_makeHTMLColorTriplet(const Color &rColor)
const char sMyBegComment[]
#define OUT_COMMENT(comment)
#define OOO_STRING_SVTOOLS_HTML_O_height
#define OOO_STRING_SVTOOLS_HTML_head
#define OOO_STRING_SVTOOLS_HTML_parabreak
#define OOO_STRING_SVTOOLS_HTML_emphasis
#define OOO_STRING_SVTOOLS_HTML_body
#define OOO_STRING_SVTOOLS_HTML_O_clear
#define OOO_STRING_SVTOOLS_HTML_O_color
#define OOO_STRING_SVTOOLS_HTML_AL_left
#define OOO_STRING_SVTOOLS_HTML_head1
#define OOO_STRING_SVTOOLS_HTML_O_align
#define OOO_STRING_SVTOOLS_HTML_O_background
#define OOO_STRING_SVTOOLS_HTML_tabledata
#define OOO_STRING_SVTOOLS_HTML_tablerow
#define OOO_STRING_SVTOOLS_HTML_division
#define OOO_STRING_SVTOOLS_HTML_VA_middle
#define OOO_STRING_SVTOOLS_HTML_tableheader
#define OOO_STRING_SVTOOLS_HTML_style
#define OOO_STRING_SVTOOLS_HTML_O_colspan
#define OOO_STRING_SVTOOLS_HTML_html
#define OOO_STRING_SVTOOLS_HTML_O_size
#define OOO_STRING_SVTOOLS_HTML_anchor
#define OOO_STRING_SVTOOLS_HTML_VA_bottom
#define OOO_STRING_SVTOOLS_HTML_tfoot
#define OOO_STRING_SVTOOLS_HTML_comment2
#define OOO_STRING_SVTOOLS_HTML_bold
#define OOO_STRING_SVTOOLS_HTML_tbody
#define OOO_STRING_SVTOOLS_HTML_AL_center
#define OOO_STRING_SVTOOLS_HTML_center
#define OOO_STRING_SVTOOLS_HTML_O_rowspan
#define OOO_STRING_SVTOOLS_HTML_strikethrough
#define OOO_STRING_SVTOOLS_HTML_VA_top
#define OOO_STRING_SVTOOLS_HTML_O_cellspacing
#define OOO_STRING_SVTOOLS_HTML_O_class
#define OOO_STRING_SVTOOLS_HTML_O_href
#define OOO_STRING_SVTOOLS_HTML_doctype
#define OOO_STRING_SVTOOLS_HTML_AL_right
#define OOO_STRING_SVTOOLS_HTML_doctype5
#define OOO_STRING_SVTOOLS_HTML_O_border
#define OOO_STRING_SVTOOLS_HTML_underline
#define OOO_STRING_SVTOOLS_HTML_thead
#define OOO_STRING_SVTOOLS_HTML_O_type
#define OOO_STRING_SVTOOLS_HTML_AL_justify
#define OOO_STRING_SVTOOLS_HTML_O_bgcolor
#define OOO_STRING_SVTOOLS_HTML_table
#define OOO_STRING_SVTOOLS_HTML_colgroup
#define OOO_STRING_SVTOOLS_HTML_font
#define OOO_STRING_SVTOOLS_HTML_O_span
#define OOO_STRING_SVTOOLS_HTML_O_width
#define OOO_STRING_SVTOOLS_HTML_O_valign
#define OOO_STRING_SVTOOLS_HTML_linebreak
#define OOO_STRING_SVTOOLS_HTML_italic
#define OOO_STRING_SVTOOLS_HTML_O_face
const sal_uInt32 SC_HTML_FONTSIZES
std::unique_ptr< sal_Int32[]> pData
sal_uInt16 GetFontSize(sal_uInt16 nPos)
SVL_DLLPUBLIC Link< OUString *, bool > const & GetMaybeFileHdl()
SVL_DLLPUBLIC OUString SmartRel2Abs(INetURLObject const &rTheBaseURIRef, OUString const &rTheRelURIRef, Link< OUString *, bool > const &rMaybeFileHdl=Link< OUString *, bool >(), bool bCheckFileExists=true, bool bIgnoreFragment=false, INetURLObject::EncodeMechanism eEncodeMechanism=INetURLObject::EncodeMechanism::WasEncoded, INetURLObject::DecodeMechanism eDecodeMechanism=INetURLObject::DecodeMechanism::ToIUri, rtl_TextEncoding eCharset=RTL_TEXTENCODING_UTF8, FSysStyle eStyle=FSysStyle::Detect)
SVL_DLLPUBLIC OUString simpleNormalizedMakeRelative(OUString const &baseUriReference, OUString const &uriReference)
constexpr Point convert(const Point &rPoint, o3tl::Length eFrom, o3tl::Length eTo)
OUString ScResId(TranslateId aId)
constexpr TypedWhichId< SvxFontHeightItem > ATTR_FONT_HEIGHT(101)
constexpr TypedWhichId< ScMergeFlagAttr > ATTR_MERGE_FLAG(145)
constexpr TypedWhichId< SvxPostureItem > ATTR_FONT_POSTURE(103)
constexpr TypedWhichId< SvxWeightItem > ATTR_FONT_WEIGHT(102)
constexpr TypedWhichId< SvxColorItem > ATTR_FONT_COLOR(109)
constexpr TypedWhichId< ScMergeAttr > ATTR_MERGE(144)
constexpr TypedWhichId< SvxBrushItem > ATTR_BACKGROUND(148)
constexpr TypedWhichId< SvxHorJustifyItem > ATTR_HOR_JUSTIFY(129)
constexpr TypedWhichId< SvxBoxItem > ATTR_BORDER(150)
constexpr TypedWhichId< SvxCrossedOutItem > ATTR_FONT_CROSSEDOUT(106)
constexpr TypedWhichId< SvxVerJustifyItem > ATTR_VER_JUSTIFY(132)
constexpr TypedWhichId< SvxFontItem > ATTR_FONT(100)
constexpr TypedWhichId< ScCondFormatItem > ATTR_CONDITIONAL(154)
constexpr TypedWhichId< SvxUnderlineItem > ATTR_FONT_UNDERLINE(104)
static SVT_DLLPUBLIC OString CreateTableDataOptionsValNum(bool bValue, double fVal, sal_uInt32 nFormat, SvNumberFormatter &rFormatter, OUString *pNonConvertableChars=nullptr)
static SVT_DLLPUBLIC SvStream & Out_Color(SvStream &, const Color &, bool bXHTML=false)
static SVT_DLLPUBLIC OString ConvertStringToHTML(const OUString &sSrc, OUString *pNonConvertableChars=nullptr)
SvtScriptType nDefaultScriptType
sal_uInt16 nFontSizeNumber
This is very similar to ScCellValue, except that it references the original value instead of copying ...
ScFormulaCell * getFormula() const
const EditTextObject * getEditText() const
Store position data for column array storage.