13 #include <document.hxx>
15 #include <oox/token/namespaces.hxx>
25 explicit XclExpTablesImpl5(
const XclExpRoot& rRoot );
35 explicit XclExpTablesImpl8(
const XclExpRoot& rRoot );
43 XclExpTablesImpl5::XclExpTablesImpl5(
const XclExpRoot& rRoot ) :
59 XclExpTablesImpl8::XclExpTablesImpl8(
const XclExpRoot& rRoot ) :
73 pWorksheetStrm->startElement(XML_tableParts);
74 for (
auto const& it : maTables)
80 pWorksheetStrm->getOutputStream(),
85 pWorksheetStrm->singleElement(XML_tablePart,
FSNS(XML_r, XML_id), aRelId.toUtf8());
88 SaveTableXml( rStrm, it);
91 pWorksheetStrm->endElement( XML_tableParts);
116 sal_Int32 nTableId = 0;
117 for (
const auto& rxDB : rDBs)
124 TablesMapType::iterator it =
maTablesMap.find( nTab);
131 pNew =
new XclExpTablesImpl5(
GetRoot());
134 pNew =
new XclExpTablesImpl8(
GetRoot());
137 assert(!
"Unknown BIFF type!");
140 ::std::pair< TablesMapType::iterator, bool > ins(
maTablesMap.insert( ::std::make_pair( nTab, pNew)));
143 assert(!
"XclExpTablesManager::Initialize - XclExpTables insert failed");
148 it->second->AppendTable( pDBData, ++nTableId);
154 TablesMapType::iterator it =
maTablesMap.find(nTab);
155 return it ==
maTablesMap.end() ?
nullptr : it->second;
159 mpData(pData), mnTableId(nTableId)
174 maTables.emplace_back( pData, nTableId);
183 pTableStrm->startElement( XML_table,
185 XML_id, OString::number( rEntry.
mnTableId),
186 XML_name, rData.
GetName().toUtf8(),
187 XML_displayName, rData.
GetName().toUtf8(),
189 XML_headerRowCount, ToPsz10(rData.
HasHeader()),
190 XML_totalsRowCount, ToPsz10(rData.
HasTotals()),
191 XML_totalsRowShown, ToPsz10(rData.
HasTotals())
224 if (!rColNames.empty())
226 pTableStrm->startElement(XML_tableColumns,
229 for (
size_t i=0,
n=rColNames.size();
i <
n; ++
i)
237 pTableStrm->singleElement( XML_tableColumn,
238 XML_id, OString::number(
i+1),
239 XML_name, rColNames[
i].toUtf8()
253 pTableStrm->endElement( XML_tableColumns);
258 pTableStrm->endElement( XML_table);
bool HasAutoFilter() const
static OString ToOString(const Color &rColor)
SC_DLLPUBLIC ScDBCollection * GetDBCollection() const
const XclExpRoot & GetRoot() const
Returns the filter root data.
This class is used to export Excel record streams.
virtual void SaveXml(XclExpXmlStream &rStrm) override
#define CREATE_OFFICEDOC_RELATION_TYPE(ascii)
XclExpTablesManager(const XclExpRoot &rRoot)
const ContentProperties & rData
ScDocument & GetDoc() const
Returns reference to the destination document (import) or source document (export).
Access to global data from other classes.
OUString getNamespaceURL(sal_Int32 nNSID) const
virtual ~XclExpTables() override
virtual ~XclExpTablesManager() override
const BorderLinePrimitive2D *pCandidateB assert(pCandidateA)
void PushStream(sax_fastparser::FSHelperPtr const &aStream)
sax_fastparser::FSHelperPtr & GetCurrentStream()
MS Excel 5.0, MS Excel 7.0 (95)
SC_DLLPUBLIC const ::std::vector< OUString > & GetTableColumnNames() const
Entry(const ScDBData *pData, sal_Int32 nTableId)
used as [n] in table[n].xml part name.
const OUString & GetName() const
std::shared_ptr< FastSerializerHelper > FSHelperPtr
void GetArea(SCTAB &rTab, SCCOL &rCol1, SCROW &rRow1, SCCOL &rCol2, SCROW &rRow2) const
const XclExpRoot & GetRoot() const
Returns this root instance - for code readability in derived classes.
static OUString GetStreamName(const char *sStreamDir, const char *sStream, sal_Int32 nId)
void AppendTable(const ScDBData *pData, sal_Int32 nTableId)
Stores global named database ranges.
#define CREATE_XL_CONTENT_TYPE(ascii)
rtl::Reference< XclExpTables > GetTablesBySheet(SCTAB nTab)
static void SaveTableXml(XclExpXmlStream &rStrm, const Entry &rEntry)
sax_fastparser::FSHelperPtr CreateOutputStream(const OUString &sFullStream, const OUString &sRelativeStream, const css::uno::Reference< css::io::XOutputStream > &xParentRelation, const char *sContentType, std::u16string_view sRelationshipType, OUString *pRelationshipId=nullptr)
XclBiff GetBiff() const
Returns the current BIFF version of the importer/exporter.
constexpr sal_Int32 FSNS(sal_Int32 namespc, sal_Int32 element)
SC_DLLPUBLIC void RefreshTableColumnNames(ScDocument *pDoc)
Refresh/update the column names with the header row's cell contents.
TablesMapType maTablesMap
XclExpTables(const XclExpRoot &rRoot)