22 #include <string_view>
39 #include <editeng/editeng.hxx>
50 #include <osl/diagnose.h>
56 #include <document.hxx>
59 #include <stlpool.hxx>
77 #include <strings.hrc>
78 #include <globstr.hrc>
80 #include <com/sun/star/frame/XModel.hpp>
81 #include <com/sun/star/uno/Reference.h>
82 #include <com/sun/star/document/XDocumentProperties.hpp>
83 #include <com/sun/star/document/XDocumentPropertiesSupplier.hpp>
84 #include <rtl/strbuf.hxx>
86 using ::editeng::SvxBorderLine;
105 "xx-small",
"x-small",
"small",
"medium",
"large",
"x-large",
"xx-large"
110 "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t";
114 #define TAG_ON( tag ) HTMLOutFuncs::Out_AsciiTag( rStrm, tag )
115 #define TAG_OFF( tag ) HTMLOutFuncs::Out_AsciiTag( rStrm, tag, false )
116 #define OUT_STR( str ) HTMLOutFuncs::Out_String( rStrm, str, eDestEnc, &aNonConvertibleChars )
117 #define OUT_LF() rStrm.WriteCharPtr( SAL_NEWLINE_STRING ).WriteCharPtr( GetIndentStr() )
118 #define TAG_ON_LF( tag ) (TAG_ON( tag ).WriteCharPtr( SAL_NEWLINE_STRING ).WriteCharPtr( GetIndentStr() ))
119 #define TAG_OFF_LF( tag ) (TAG_OFF( tag ).WriteCharPtr( SAL_NEWLINE_STRING ).WriteCharPtr( GetIndentStr() ))
120 #define OUT_HR() TAG_ON_LF( OOO_STRING_SVTOOLS_HTML_horzrule )
121 #define OUT_COMMENT( comment ) (rStrm.WriteCharPtr( sMyBegComment ), OUT_STR( comment ) \
122 .WriteCharPtr( sMyEndComment ).WriteCharPtr( SAL_NEWLINE_STRING ) \
123 .WriteCharPtr( GetIndentStr() ))
125 #define OUT_SP_CSTR_ASS( s ) rStrm.WriteChar( ' ').WriteCharPtr( s ).WriteChar( '=' )
127 #define GLOBSTR(id) ScResId( id )
130 const ScRange& rRange,
const rtl_TextEncoding ,
bool bAll,
131 const OUString& rStreamPath, OUString& rNonConvertibleChars,
const OUString& rFilterOptions )
133 ScHTMLExport aEx( rStrm, rBaseURL, pDoc, rRange, bAll, rStreamPath, rFilterOptions );
141 aByteStr.append(
' ');
145 aByteStr.append(
"=\"");
146 aByteStr.append(nSpan);
147 aByteStr.append(
"\" ");
150 aByteStr.append(
"=\"");
151 aByteStr.append(nWidth);
152 aByteStr.append(
'"');
153 return aByteStr.makeStringAndClear();
157 const css::util::DateTime& rDateTime,
160 Date aD(rDateTime.Day, rDateTime.Month, rDateTime.Year);
161 tools::Time aT(rDateTime.Hours, rDateTime.Minutes, rDateTime.Seconds,
162 rDateTime.NanoSeconds);
165 OUString aStrDate = rLoc.
getDate( aDateTime );
166 OUString aStrTime = rLoc.
getTime( aDateTime );
168 rStr +=
GLOBSTR( STR_BY ) +
" ";
173 rStr +=
" " +
GLOBSTR( STR_ON ) +
" ";
174 if (!aStrDate.isEmpty())
179 if (!aStrTime.isEmpty())
196 const ScRange& rRangeP,
bool bAllP,
197 const OUString& rStreamPathP, std::u16string_view rFilterOptions ) :
199 aBaseURL( rBaseURL ),
200 aStreamPath( rStreamPathP ),
205 bTabHasGraphics( false ),
206 bTabAlignedLeft( false ),
207 bCalcAsShown( pDocP->GetDocOptions().IsCalcAsShown() ),
208 bTableDataHeight( true ),
209 mbSkipImages ( false ),
210 mbSkipHeaderFooter( false )
220 if (rFilterOptions ==
u"SkipImages")
224 else if (rFilterOptions ==
u"SkipHeaderFooter")
240 for (
SCTAB nTab = 0; nTab < nCount; nTab++ )
254 sal_uInt16 nSize = 1;
277 Size( nVal, nVal ),
MapMode( MapUnit::MapTwip ) ).Width());
321 uno::Reference<document::XDocumentPropertiesSupplier> xDPS(
323 uno::Reference<document::XDocumentProperties> xDocProps
324 = xDPS->getDocumentProperties();
329 if (!xDocProps->getPrintedBy().isEmpty())
332 OUString aStrOut =
GLOBSTR( STR_DOC_PRINTED ) +
": ";
355 for(sal_Int32
nPos {0};;)
419 for (
SCTAB nTab = 0; nTab < nCount; nTab++ )
441 OSL_ENSURE( pStylePool,
"StylePool not found! :-(" );
446 pStyleSheet = pStylePool->
Find(
447 ScResId(STR_STYLENAME_STANDARD),
448 SfxStyleFamily::Para );
449 OSL_ENSURE( pStyleSheet,
"ParaStyle not found! :-(" );
451 pStyleSheet = pStylePool->
First(SfxStyleFamily::Para);
469 OSL_ENSURE( pStyleSheet,
"PageStyle not found! :-(" );
471 pStyleSheet = pStylePool->
First(SfxStyleFamily::Page);
483 const SvxBorderLine* pLine,
bool& bInsertSemicolon)
489 if ( bInsertSemicolon )
493 aOut.append(
"border-").append(pBorderName).append(
": ");
496 int nWidth = pLine->GetWidth();
497 int nPxWidth = (nWidth > 0) ?
499 aOut.append(static_cast<sal_Int32>(nPxWidth)).
501 switch (pLine->GetBorderLineStyle())
503 case SvxBorderLineStyle::SOLID:
504 aOut.append(
"solid");
506 case SvxBorderLineStyle::DOTTED:
507 aOut.append(
"dotted");
509 case SvxBorderLineStyle::DASHED:
510 case SvxBorderLineStyle::DASH_DOT:
511 case SvxBorderLineStyle::DASH_DOT_DOT:
512 aOut.append(
"dashed");
514 case SvxBorderLineStyle::DOUBLE:
515 case SvxBorderLineStyle::DOUBLE_THIN:
516 case SvxBorderLineStyle::THINTHICK_SMALLGAP:
517 case SvxBorderLineStyle::THINTHICK_MEDIUMGAP:
518 case SvxBorderLineStyle::THINTHICK_LARGEGAP:
519 case SvxBorderLineStyle::THICKTHIN_SMALLGAP:
520 case SvxBorderLineStyle::THICKTHIN_MEDIUMGAP:
521 case SvxBorderLineStyle::THICKTHIN_LARGEGAP:
522 aOut.append(
"double");
524 case SvxBorderLineStyle::EMBOSSED:
525 aOut.append(
"ridge");
527 case SvxBorderLineStyle::ENGRAVED:
528 aOut.append(
"groove");
530 case SvxBorderLineStyle::OUTSET:
531 aOut.append(
"outset");
533 case SvxBorderLineStyle::INSET:
534 aOut.append(
"inset");
537 aOut.append(
"hidden");
543 snprintf( hex, 7,
"%06" SAL_PRIxUINT32, static_cast<sal_uInt32>( pLine->GetColor().GetRGBColor() ) );
548 bInsertSemicolon =
true;
551 return aOut.makeStringAndClear();
568 OUString aLink = pBrushItem->GetGraphicLink();
572 if( aLink.isEmpty() )
574 const Graphic* pGrf = pBrushItem->GetGraphic();
580 "JPG", XOutFlags::UseNativeIfPossible );
603 if( !aLink.isEmpty() )
608 aLink ) ).WriteChar(
'\"' );
636 const OUString aStrTable(
ScResId( SCSTR_TABLE ) );
645 SCCOL nStartColFix = 0;
646 SCROW nStartRowFix = 0;
647 SCCOL nEndColFix = 0;
648 SCROW nEndRowFix = 0;
653 nEndTab = nTabCount - 1;
664 SCTAB nTableStrNum = 1;
665 for (
SCTAB nTab=nStartTab; nTab<=nEndTab; nTab++ )
672 if ( !
GetDataArea( nTab, nStartCol, nStartRow, nEndCol, nEndRow ) )
677 aStrOut = aStrTable +
" " + OUString::number( nTableStrNum++ ) +
": ";
699 nStartCol = nStartColFix;
700 nStartRow = nStartRowFix;
701 nEndCol = nEndColFix;
702 nEndRow = nEndRowFix;
703 if ( !
TrimDataArea( nTab, nStartCol, nStartRow, nEndCol, nEndRow ) )
711 if (
bAll && pDrawLayer )
726 append(static_cast<sal_Int32>(
nCellSpacing)).append(
'"');
735 SCCOL nCol = nStartCol;
736 sal_Int32 nWidth = 0;
738 while( nCol <= nEndCol )
773 std::vector< sc::ColumnBlockPosition > blockPos( nEndCol - nStartCol + 1 );
774 for(
SCCOL i = nStartCol;
i <= nEndCol; ++
i )
776 for (
SCROW nRow=nStartRow; nRow<=nEndRow; nRow++ )
787 for (
SCCOL nCol2=nStartCol; nCol2<=nEndCol; nCol2++ )
792 if ( nCol2 == nEndCol )
794 WriteCell( blockPos[ nCol2 - nStartCol ], nCol2, nRow, nTab );
798 if ( nRow == nEndRow )
811 for (
size_t i = 0;
i < ListSize; ++
i )
822 aByteStrOut.append(
' ').
825 TAG_ON_LF( aByteStrOut.makeStringAndClear().getStr() );
830 OUT_COMMENT(
"**************************************************************************" );
849 for (
size_t i = 0;
i < ListSize; ++
i )
871 if ( nScriptType == SvtScriptType::NONE )
883 bool bInsertSemicolon =
false;
897 sal_uInt16 nHeightPixel;
900 if ( pGraphEntry || rMergeAttr.
IsMerged() )
913 append(
'=').append(static_cast<sal_Int32>(nC));
915 for ( jC=nCol, v=0; jC<nC; jC++ )
927 append(
'=').append(static_cast<sal_Int32>(nR));
930 nHeightPixel =
ToPixel( static_cast< sal_uInt16 >( v ) );
942 append(static_cast<sal_Int32>(nHeightPixel)).append(
'"');
991 sal_uInt16 nSetFontSizeNumber = 0;
992 sal_uInt32 nFontHeight = rFontHeightItem.
GetHeight();
997 nSetFontSizeNumber = 0;
1000 bool bSetFont = (bSetFontColor || bSetFontName || nSetFontSizeNumber);
1006 switch( rHorJustifyItem.GetValue() )
1008 case SvxCellHorJustify::Standard:
1014 case SvxCellHorJustify::Left:
1015 case SvxCellHorJustify::Repeat:
1020 append(
"=\"").append(pChar).append(
'"');
1022 switch( rVerJustifyItem.GetValue() )
1027 case SvxCellVerJustify::Standard:
1028 default: pChar =
nullptr;
1033 append(
'=').append(pChar);
1057 OSL_FAIL(
"value data with unsupported cell type" );
1064 TAG_ON(aStrTD.makeStringAndClear().getStr());
1102 for (sal_Int32
nPos {0};;)
1107 aStr.append(aTmpStr);
1116 if ( nSetFontSizeNumber )
1119 append(
'=').append(static_cast<sal_Int32>(nSetFontSizeNumber));
1121 if ( bSetFontColor )
1132 TAG_ON(aStr.makeStringAndClear().getStr());
1136 bool bWriteHyperLink(
false);
1144 bWriteHyperLink =
true;
1148 if (bWriteHyperLink)
1156 bool bFieldText =
false;
1158 const Color* pColor;
1172 if ( aStrOut.isEmpty() )
1178 sal_Int32
nPos = aStrOut.indexOf(
'\n' );
1185 sal_Int32 nStartPos = 0;
1188 OUString aSingleLine = aStrOut.copy( nStartPos, nPos - nStartPos );
1191 nStartPos = nPos + 1;
1193 while( ( nPos = aStrOut.indexOf(
'\n', nStartPos ) ) != -1 );
1194 OUString aSingleLine = aStrOut.copy( nStartPos );
1215 bool bFields =
false;
1225 if ( eFieldState == SfxItemState::DONTCARE || eFieldState == SfxItemState::SET )
1232 for ( sal_Int32 nPar=0; nPar < nParas; nPar++ )
1236 std::vector<sal_Int32> aPortions;
1238 sal_Int32 nStart = 0;
1239 for (
const sal_Int32 nEnd : aPortions )
1244 if ( nEnd == nStart+1 )
1251 if (
const SvxURLField* pURLField = dynamic_cast<const SvxURLField*>(pField))
1255 OUT_STR( pURLField->GetURL() );
1257 OUT_STR( pURLField->GetRepresentation() );
1273 const OUString& rTargetNm )
1278 if( !(INetProtocol::File == aFileUrl.
GetProtocol() &&
1279 ( INetProtocol::File != aTargetUrl.
GetProtocol() &&
1281 INetProtocol::Javascript >= aTargetUrl.
GetProtocol())) )
1287 std::map<OUString, OUString>::iterator it =
pFileNameMap->find( rFileNm );
1290 rFileNm = it->second;
1296 pFileNameMap.reset(
new std::map<OUString, OUString> );
1302 OUString aSrc = rFileNm;
1305 SfxMedium aMedium( aDest, StreamMode::WRITE | StreamMode::SHARE_DENYNONE );
static const char sIndentSource[]
static const sal_uInt16 nDefaultFontSize[SC_HTML_FONTSIZES]
SfxStyleSheetBase * First(SfxStyleFamily eFamily, SfxStyleSearchBits eMask=SfxStyleSearchBits::All)
SCCOL GetColMerge() const
OUString GetText(LineEnd eEnd=LINEEND_LF) const
#define OOO_STRING_SVTOOLS_HTML_O_clear
virtual ~ScHTMLExport() override
#define OOO_STRING_SVTOOLS_HTML_VA_bottom
sal_uInt8 GetAlpha() const
FileNameMapPtr pFileNameMap
sal_uInt16 nFontSizeNumber
bool IsSaveGraphicsLocal() const
constexpr TypedWhichId< SvxBoxItem > ATTR_BORDER(150)
void setWidth(tools::Long nWidth)
#define OOO_STRING_SVTOOLS_HTML_O_rowspan
void SetUpdateMode(bool bUpdate, bool bRestoring=false)
#define OOO_STRING_SVTOOLS_HTML_AL_center
bool IsTransparent() const
#define OUT_SP_CSTR_ASS(s)
void WriteGraphEntry(ScHTMLGraphEntry *)
const sal_uInt32 SC_HTML_FONTSIZES
#define OOO_STRING_SVTOOLS_HTML_O_bgcolor
#define OOO_STRING_SVTOOLS_HTML_tableheader
static void lcl_AddStamp(OUString &rStr, std::u16string_view rName, const css::util::DateTime &rDateTime, const LocaleDataWrapper &rLoc)
static OString lcl_getColGroupString(sal_Int32 nSpan, sal_Int32 nWidth)
constexpr TypedWhichId< SvxCrossedOutItem > ATTR_FONT_CROSSEDOUT(106)
bool IsOverlapped() const
#define OOO_STRING_SVTOOLS_HTML_tfoot
#define OOO_STRING_SVTOOLS_HTML_emphasis
constexpr::Color COL_AUTO(ColorTransparency, 0xFF, 0xFF, 0xFF, 0xFF)
void IncIndent(short nVal)
#define OOO_STRING_SVTOOLS_HTML_tablerow
SC_DLLPUBLIC bool InitColumnBlockPosition(sc::ColumnBlockPosition &rBlockPos, SCTAB nTab, SCCOL nCol)
#define OUT_COMMENT(comment)
#define OOO_STRING_SVTOOLS_HTML_head1
SvNumberFormatter * pFormatter
Store position data for column array storage.
bool IsClipOrUndo() const
#define OOO_STRING_SVTOOLS_HTML_body
sal_uInt16 ToPixel(sal_uInt16 nTwips)
SC_DLLPUBLIC SCROW FirstVisibleRow(SCROW nStartRow, SCROW nEndRow, SCTAB nTab) const
OUString GetLastName(DecodeMechanism eMechanism=DecodeMechanism::ToIUri, rtl_TextEncoding eCharset=RTL_TEXTENCODING_UTF8) const
SvStream & WriteOString(const OString &rStr)
constexpr TypedWhichId< SvxFontItem > ATTR_FONT(100)
virtual SfxItemSet & GetItemSet()
This is very similar to ScCellValue, except that it references the original value instead of copying ...
css::uno::Reference< css::frame::XModel > GetModel() const
#define OOO_STRING_SVTOOLS_HTML_O_background
const editeng::SvxBorderLine * GetRight() const
#define OOO_STRING_SVTOOLS_HTML_italic
SVL_DLLPUBLIC OUString simpleNormalizedMakeRelative(OUString const &baseUriReference, OUString const &uriReference)
#define OOO_STRING_SVTOOLS_HTML_thead
SvStream & WriteCharPtr(const char *pBuf)
SfxItemSet GetAttribs(sal_Int32 nPara, sal_Int32 nStart, sal_Int32 nEnd, GetAttribsFlags nFlags=GetAttribsFlags::ALL) const
static SVT_DLLPUBLIC SvStream & Out_Color(SvStream &, const Color &, bool bXHTML=false)
constexpr TypedWhichId< ScMergeAttr > ATTR_MERGE(144)
FontItalic GetPosture() const
SC_DLLPUBLIC sal_uInt16 GetRowHeight(SCROW nRow, SCTAB nTab, bool bHiddenAsZero=true) const
#define OOO_STRING_SVTOOLS_HTML_tbody
OUString PathToFileName() const
constexpr tools::Long Width() const
void Close(bool bInDestruction=false)
#define OOO_STRING_SVTOOLS_HTML_tabledata
SC_DLLPUBLIC ScPostIt * GetNote(const ScAddress &rPos)
Notes.
#define OOO_STRING_SVTOOLS_HTML_O_size
SvtScriptType nDefaultScriptType
#define OOO_STRING_SVTOOLS_HTML_O_height
const EditTextObject * mpEditText
void SetText(const OUString &rStr)
static void Out_DocInfo(SvStream &rStrm, const OUString &rBaseURL, const css::uno::Reference< css::document::XDocumentProperties > &, const char *pIndent, rtl_TextEncoding eDestEnc=RTL_TEXTENCODING_MS_1252, OUString *pNonConvertableChars=nullptr)
#define OOO_STRING_SVTOOLS_HTML_O_href
SC_DLLPUBLIC SCTAB GetTableCount() const
Additional class containing cell annotation data.
static const char * GetFontSizeCss(sal_uInt16 nHeight)
static SC_DLLPUBLIC sal_uInt16 GetScriptedWhichID(SvtScriptType nScriptType, sal_uInt16 nWhich)
Map ATTR_((CJK|CTL)_)?FONT_...
#define OOO_STRING_SVTOOLS_HTML_O_colspan
static SVT_DLLPUBLIC OString CreateTableDataOptionsValNum(bool bValue, double fVal, sal_uLong nFormat, SvNumberFormatter &rFormatter, rtl_TextEncoding eDestEnc=RTL_TEXTENCODING_MS_1252, OUString *pNonConvertableChars=nullptr)
#define OOO_STRING_SVTOOLS_HTML_AL_justify
const char sMyEndComment[]
const OUString & GetPhysicalName() 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)
ScFormulaCell * mpFormula
#define OOO_STRING_SVTOOLS_HTML_VA_top
void CopyLocalFileToINet(OUString &rFileNm, const OUString &rTargetNm)
sal_uInt8 GetBlue() const
SC_DLLPUBLIC const ScPatternAttr * GetPattern(SCCOL nCol, SCROW nRow, SCTAB nTab) const
SC_DLLPUBLIC const SfxPoolItem * GetAttr(SCCOL nCol, SCROW nRow, SCTAB nTab, sal_uInt16 nWhich) const
constexpr auto convert(N n, sal_Int64 mul, sal_Int64 div)
#define OOO_STRING_SVTOOLS_HTML_bold
constexpr TypedWhichId< SvxUnderlineItem > ATTR_FONT_UNDERLINE(104)
const SfxPoolItem & GetItem(sal_uInt16 nWhichP) const
static SvxHtmlOptions & Get()
#define OOO_STRING_SVTOOLS_HTML_colgroup
const Color & GetColor() const
#define OOO_STRING_SVTOOLS_HTML_O_class
#define OOO_STRING_SVTOOLS_HTML_font
GraphEntryList aGraphList
bool mbSkipHeaderFooter
If HTML header and footer should be written as well, or just the content itself.
#define OOO_STRING_SVTOOLS_HTML_doctype
SC_DLLPUBLIC ScDrawLayer * GetDrawLayer()
const editeng::SvxBorderLine * GetTop() const
constexpr TypedWhichId< SvxPostureItem > ATTR_FONT_POSTURE(103)
#define OOO_STRING_SVTOOLS_HTML_html
SC_DLLPUBLIC bool ColHidden(SCCOL nCol, SCTAB nTab, SCCOL *pFirstCol=nullptr, SCCOL *pLastCol=nullptr) const
Size MMToPixel(const Size &r100thMMSize)
SfxItemState GetItemState(sal_uInt16 nWhich, bool bSrchInParent=true, const SfxPoolItem **ppItem=nullptr) const
const editeng::SvxBorderLine * GetLeft() const
#define OOO_STRING_SVTOOLS_HTML_O_border
FontWeight GetWeight() const
sal_uInt32 GetTextLen() const
SVL_DLLPUBLIC Link< OUString *, bool > const & GetMaybeFileHdl()
#define OOO_STRING_SVTOOLS_HTML_table
constexpr TypedWhichId< SvxVerJustifyItem > ATTR_VER_JUSTIFY(132)
#define OOO_STRING_SVTOOLS_HTML_comment2
bool IsEmptyTable(SCTAB nTab) const
#define OOO_STRING_SVTOOLS_HTML_AL_left
OUString ScResId(const char *pId)
bool WriteFieldText(const EditTextObject *pData)
SC_DLLPUBLIC OUString GetPageStyle(SCTAB nTab) const
#define OOO_STRING_SVTOOLS_HTML_style
sal_uInt32 GetNumberFormat(SvNumberFormatter *) const
bool In(const ScAddress &) const
is Address& in Range?
#define OOO_STRING_SVTOOLS_HTML_VA_middle
OUString aNonConvertibleChars
SC_DLLPUBLIC const SfxItemSet * GetCondResult(SCCOL nCol, SCROW nRow, SCTAB nTab, ScRefCellValue *pCell=nullptr) const
SvStream & WriteStream(SvStream &rStream)
SC_DLLPUBLIC bool HasNote(const ScAddress &rPos) const
#define OOO_STRING_SVTOOLS_HTML_underline
sal_Int32 GetParagraphCount() const
Point LogicToPixel(const Point &rLogicPt) const
constexpr TypedWhichId< SvxBrushItem > ATTR_BACKGROUND(148)
SC_DLLPUBLIC double RoundValueAsShown(double fVal, sal_uInt32 nFormat, const ScInterpreterContext *pContext=nullptr) const
bool GetDataArea(SCTAB nTab, SCCOL &nStartCol, SCROW &nStartRow, SCCOL &nEndCol, SCROW &nEndRow) const
FontLineStyle GetLineStyle() const
sal_uInt8 GetGreen() const
#define OOO_STRING_SVTOOLS_HTML_O_align
static SC_DLLPUBLIC const LocaleDataWrapper * getLocaleDataPtr()
OUString getDate(const Date &rDate) const
#define OOO_STRING_SVTOOLS_HTML_division
const OUString & GetFamilyName() const
constexpr TypedWhichId< ScMergeFlagAttr > ATTR_MERGE_FLAG(145)
#define OOO_STRING_SVTOOLS_HTML_linebreak
static SC_DLLPUBLIC SvtScriptType GetDefaultScriptType()
#define OOO_STRING_SVTOOLS_HTML_strikethrough
sal_uInt16 GetFontSize(sal_uInt16 nPos) const
sal_uInt32 GetHeight() const
static SVT_DLLPUBLIC OString ConvertStringToHTML(const OUString &sSrc, rtl_TextEncoding eDestEnc, OUString *pNonConvertableChars)
#define OOO_STRING_SVTOOLS_HTML_AL_right
static const char * pFontSizeCss[SC_HTML_FONTSIZES]
const SfxPoolItem & Get(sal_uInt16 nWhich, bool bSrchInParent=true) const
constexpr tools::Long Height() const
OUString GetPartBeforeLastName() const
static sal_uInt16 GetFontSizeNumber(sal_uInt16 nHeight)
bool bCopyLocalFileToINet
bool GetUpdateMode() const
#define OOO_STRING_SVTOOLS_HTML_center
#define OOO_STRING_SVTOOLS_HTML_doctype40
INetProtocol GetProtocol() const
void GetPortions(sal_Int32 nPara, std::vector< sal_Int32 > &rList)
rtl_TextEncoding eDestEnc
SC_DLLPUBLIC SvtScriptType GetScriptType(SCCOL nCol, SCROW nRow, SCTAB nTab, const ScRefCellValue *pCell=nullptr)
constexpr TypedWhichId< SvxWeightItem > ATTR_FONT_WEIGHT(102)
constexpr TypedWhichId< SvxHorJustifyItem > ATTR_HOR_JUSTIFY(129)
void WriteCell(sc::ColumnBlockPosition &rBlockPos, SCCOL nCol, SCROW nRow, SCTAB nTab)
#define OOO_STRING_SVTOOLS_HTML_parabreak
const ::std::vector< Color > ImpSvNumberformatScan::StandardColor COL_BLACK
static const sal_uInt16 nCellSpacing
const OUString & GetNonConvertibleChars() const
const char sMyBegComment[]
SvStream & WriteChar(char nChar)
SC_DLLPUBLIC ScStyleSheetPool * GetStyleSheetPool() const
FontStrikeout GetStrikeout() const
SC_DLLPUBLIC bool HasHiddenRows(SCROW nStartRow, SCROW nEndRow, SCTAB nTab) const
static OString lcl_makeHTMLColorTriplet(const Color &rColor)
VclPtr< OutputDevice > pAppWin
SC_DLLPUBLIC bool RowHidden(SCROW nRow, SCTAB nTab, SCROW *pFirstRow=nullptr, SCROW *pLastRow=nullptr) const
#define OOO_STRING_SVTOOLS_HTML_O_face
void setHeight(tools::Long nHeight)
ScHTMLExport(SvStream &, const OUString &, ScDocument *, const ScRange &, bool bAll, const OUString &aStreamPath, std::u16string_view rFilterOptions)
#define OOO_STRING_SVTOOLS_HTML_O_type
bool TrimDataArea(SCTAB nTab, SCCOL &nStartCol, SCROW &nStartRow, SCCOL &nEndCol, SCROW &nEndRow) const
#define OOO_STRING_SVTOOLS_HTML_O_color
SC_DLLPUBLIC bool IsVisible(SCTAB nTab) const
SfxObjectShell * GetDocumentShell() const
rtl_TextEncoding GetTextEncoding() const
constexpr sal_uInt16 EE_FEATURE_FIELD(EE_FEATURE_NOTCONV+1)
SCROW GetRowMerge() const
void PrepareGraphics(ScDrawLayer *, SCTAB nTab, SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow)
#define OOO_STRING_SVTOOLS_HTML_head
static OString BorderToStyle(const char *pBorderName, const editeng::SvxBorderLine *pLine, bool &bInsertSemicolon)
char sIndent[nIndentMax+1]
OUString getTime(const tools::Time &rTime, bool bSec=true, bool b100Sec=false) const
SC_DLLPUBLIC sal_uInt16 GetColWidth(SCCOL nCol, SCTAB nTab, bool bHiddenAsZero=true) const
const SfxItemSet & PageDefaults(SCTAB nTab)
virtual SfxStyleSheetBase * Find(const OUString &, SfxStyleFamily eFam, SfxStyleSearchBits n=SfxStyleSearchBits::All)
constexpr TypedWhichId< SvxColorItem > ATTR_FONT_COLOR(109)
constexpr TypedWhichId< SvxFontHeightItem > ATTR_FONT_HEIGHT(101)
const editeng::SvxBorderLine * GetBottom() const
SC_DLLPUBLIC bool GetName(SCTAB nTab, OUString &rName) const
#define OOO_STRING_SVTOOLS_HTML_anchor
#define OOO_STRING_SVTOOLS_HTML_O_valign
#define OOO_STRING_SVTOOLS_HTML_O_width
SC_DLLPUBLIC ScFieldEditEngine & GetEditEngine()
#define SAL_NEWLINE_STRING
static sal_uInt16 nFontSize[SC_HTML_FONTSIZES]
const Color & GetValue() const
bool SetSmartURL(OUString const &rTheAbsURIRef, EncodeMechanism eMechanism=EncodeMechanism::WasEncoded, rtl_TextEncoding eCharset=RTL_TEXTENCODING_UTF8, FSysStyle eStyle=FSysStyle::Detect)
#define OOO_STRING_SVTOOLS_HTML_O_span
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)
#define OOO_STRING_SVTOOLS_HTML_O_cellspacing