LibreOffice Module sc (master)  1
xeroot.cxx
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3  * This file is part of the LibreOffice project.
4  *
5  * This Source Code Form is subject to the terms of the Mozilla Public
6  * License, v. 2.0. If a copy of the MPL was not distributed with this
7  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8  *
9  * This file incorporates work covered by the following license notice:
10  *
11  * Licensed to the Apache Software Foundation (ASF) under one or more
12  * contributor license agreements. See the NOTICE file distributed
13  * with this work for additional information regarding copyright
14  * ownership. The ASF licenses this file to you under the Apache
15  * License, Version 2.0 (the "License"); you may not use this file
16  * except in compliance with the License. You may obtain a copy of
17  * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18  */
19 
20 #include <rtl/random.h>
21 #include <sal/log.hxx>
22 #include <sfx2/docfile.hxx>
23 #include <sfx2/frame.hxx>
24 #include <sfx2/sfxsids.hrc>
25 #include <unotools/saveopt.hxx>
26 #include <svl/itemset.hxx>
27 #include <svl/stritem.hxx>
28 #include <xecontent.hxx>
29 #include <xeescher.hxx>
30 #include <xeformula.hxx>
31 #include <xehelper.hxx>
32 #include <xelink.hxx>
33 #include <xename.hxx>
34 #include <xepivot.hxx>
35 #include <xestyle.hxx>
36 #include <xeroot.hxx>
37 #include <xepivotxml.hxx>
38 #include <xedbdata.hxx>
39 #include <xlcontent.hxx>
40 #include <xlname.hxx>
41 #include <xllink.hxx>
42 
43 #include <excrecds.hxx>
44 #include <tabprotection.hxx>
45 #include <document.hxx>
46 
47 #include <formulabase.hxx>
48 #include <com/sun/star/sheet/FormulaOpCodeMapEntry.hpp>
49 #include <com/sun/star/frame/XModel.hpp>
50 #include <com/sun/star/lang/XMultiServiceFactory.hpp>
51 
52 using namespace ::com::sun::star;
53 
54 // Global data ================================================================
55 
57  const tools::SvRef<SotStorage>& xRootStrg, ScDocument& rDoc, rtl_TextEncoding eTextEnc ) :
58  XclRootData( eBiff, rMedium, xRootStrg, rDoc, eTextEnc, true )
59 {
60  SvtSaveOptions aSaveOpt;
61  mbRelUrl = mrMedium.IsRemote() ? aSaveOpt.IsSaveRelINet() : aSaveOpt.IsSaveRelFSys();
62  maStringBuf.setLength(0);
63 }
64 
66 {
67 }
68 
70  XclRoot( rExpRootData ),
71  mrExpData( rExpRootData )
72 {
73 }
74 
76 {
77  OSL_ENSURE( mrExpData.mxTabInfo, "XclExpRoot::GetTabInfo - missing object (wrong BIFF?)" );
78  return *mrExpData.mxTabInfo;
79 }
80 
82 {
83  OSL_ENSURE( mrExpData.mxAddrConv, "XclExpRoot::GetAddressConverter - missing object (wrong BIFF?)" );
84  return *mrExpData.mxAddrConv;
85 }
86 
88 {
89  OSL_ENSURE( mrExpData.mxFmlaComp, "XclExpRoot::GetFormulaCompiler - missing object (wrong BIFF?)" );
90  return *mrExpData.mxFmlaComp;
91 }
92 
94 {
95  OSL_ENSURE( mrExpData.mxProgress, "XclExpRoot::GetProgressBar - missing object (wrong BIFF?)" );
96  return *mrExpData.mxProgress;
97 }
98 
100 {
101  OSL_ENSURE( mrExpData.mxSst, "XclExpRoot::GetSst - missing object (wrong BIFF?)" );
102  return *mrExpData.mxSst;
103 }
104 
106 {
107  OSL_ENSURE( mrExpData.mxPalette, "XclExpRoot::GetPalette - missing object (wrong BIFF?)" );
108  return *mrExpData.mxPalette;
109 }
110 
112 {
113  OSL_ENSURE( mrExpData.mxFontBfr, "XclExpRoot::GetFontBuffer - missing object (wrong BIFF?)" );
114  return *mrExpData.mxFontBfr;
115 }
116 
118 {
119  OSL_ENSURE( mrExpData.mxNumFmtBfr, "XclExpRoot::GetNumFmtBuffer - missing object (wrong BIFF?)" );
120  return *mrExpData.mxNumFmtBfr;
121 }
122 
124 {
125  OSL_ENSURE( mrExpData.mxXFBfr, "XclExpRoot::GetXFBuffer - missing object (wrong BIFF?)" );
126  return *mrExpData.mxXFBfr;
127 }
128 
130 {
131  OSL_ENSURE( mrExpData.mxGlobLinkMgr, "XclExpRoot::GetGlobalLinkManager - missing object (wrong BIFF?)" );
132  return *mrExpData.mxGlobLinkMgr;
133 }
134 
136 {
137  OSL_ENSURE( GetLocalLinkMgrRef(), "XclExpRoot::GetLocalLinkManager - missing object (wrong BIFF?)" );
138  return *GetLocalLinkMgrRef();
139 }
140 
142 {
143  OSL_ENSURE( mrExpData.mxNameMgr, "XclExpRoot::GetNameManager - missing object (wrong BIFF?)" );
144  return *mrExpData.mxNameMgr;
145 }
146 
148 {
149  OSL_ENSURE( mrExpData.mxObjMgr, "XclExpRoot::GetObjectManager - missing object (wrong BIFF?)" );
150  return *mrExpData.mxObjMgr;
151 }
152 
154 {
155  OSL_ENSURE( mrExpData.mxFilterMgr, "XclExpRoot::GetFilterManager - missing object (wrong BIFF?)" );
156  return *mrExpData.mxFilterMgr;
157 }
158 
160 {
161  OSL_ENSURE( mrExpData.mxDxfs, "XclExpRoot::GetDxfs - missing object ( wrong BIFF?)" );
162  return *mrExpData.mxDxfs;
163 }
164 
166 {
167  OSL_ENSURE( mrExpData.mxPTableMgr, "XclExpRoot::GetPivotTableManager - missing object (wrong BIFF?)" );
168  return *mrExpData.mxPTableMgr;
169 }
170 
172 {
174  return *mrExpData.mxXmlPTableMgr;
175 }
176 
178 {
180  return *mrExpData.mxTablesMgr;
181 }
182 
184 {
185  mrExpData.mxTabInfo = std::make_shared<XclExpTabInfo>( GetRoot() );
186  mrExpData.mxAddrConv = std::make_shared<XclExpAddressConverter>( GetRoot() );
187  mrExpData.mxFmlaComp = std::make_shared<XclExpFormulaCompiler>( GetRoot() );
188  mrExpData.mxProgress = std::make_shared<XclExpProgressBar>( GetRoot() );
189 
191 }
192 
194 {
196 
197  if( GetBiff() >= EXC_BIFF5 )
198  {
205  }
206 
207  if( GetBiff() == EXC_BIFF8 )
208  {
209  mrExpData.mxSst = new XclExpSst();
210  mrExpData.mxObjMgr = std::make_shared<XclExpObjectManager>( GetRoot() );
211  mrExpData.mxFilterMgr = std::make_shared<XclExpFilterManager>( GetRoot() );
212  mrExpData.mxPTableMgr = std::make_shared<XclExpPivotTableManager>( GetRoot() );
213  // BIFF8: only one link manager for all sheets
215  mrExpData.mxDxfs = new XclExpDxfs( GetRoot() );
216  }
217 
218  if( GetOutput() == EXC_OUTPUT_XML_2007 )
219  {
220  mrExpData.mxXmlPTableMgr = std::make_shared<XclExpXmlPivotTableManager>(GetRoot());
221  mrExpData.mxTablesMgr = std::make_shared<XclExpTablesManager>(GetRoot());
222 
223  do
224  {
225  ScDocument& rDoc = GetDoc();
226  // Pass the model factory to OpCodeProvider, not the process
227  // service factory, otherwise a FormulaOpCodeMapperObj would be
228  // instantiated instead of a ScFormulaOpCodeMapperObj and the
229  // ScCompiler virtuals not be called! Which would be the case with
230  // the current (2013-01-24) rDoc.GetServiceManager()
231  const SfxObjectShell* pShell = rDoc.GetDocumentShell();
232  if (!pShell)
233  {
234  SAL_WARN( "sc", "XclExpRoot::InitializeGlobals - no object shell");
235  break;
236  }
237  uno::Reference< lang::XComponent > xComponent = pShell->GetModel();
238  if (!xComponent.is())
239  {
240  SAL_WARN( "sc", "XclExpRoot::InitializeGlobals - no component");
241  break;
242  }
243  uno::Reference< lang::XMultiServiceFactory > xModelFactory( xComponent, uno::UNO_QUERY);
244  oox::xls::OpCodeProvider aOpCodeProvider(xModelFactory, false);
245  // Compiler mocks about non-matching ctor or conversion from
246  // Sequence<...> to Sequence<const ...> if directly created or passed,
247  // conversion through Any works around.
248  uno::Any aAny( aOpCodeProvider.getOoxParserMap());
249  uno::Sequence< const sheet::FormulaOpCodeMapEntry > aOpCodeMapping;
250  if (!(aAny >>= aOpCodeMapping))
251  {
252  SAL_WARN( "sc", "XclExpRoot::InitializeGlobals - no OpCodeMap");
253  break;
254  }
255  ScCompiler aCompiler( &rDoc, ScAddress(), rDoc.GetGrammar());
257  } while(false);
258  }
259 
262 }
263 
265 {
266  SetCurrScTab( nScTab );
267  if( GetBiff() == EXC_BIFF5 )
268  {
269  // local link manager per sheet
271  }
272 }
273 
275 {
276  GetPalette().Finalize();
277  GetXFBuffer().Finalize();
278 }
279 
280 XclExpRecordRef XclExpRoot::CreateRecord( sal_uInt16 nRecId ) const
281 {
282  XclExpRecordRef xRec;
283  switch( nRecId )
284  {
285  case EXC_ID_PALETTE: xRec = mrExpData.mxPalette; break;
286  case EXC_ID_FONTLIST: xRec = mrExpData.mxFontBfr; break;
287  case EXC_ID_FORMATLIST: xRec = mrExpData.mxNumFmtBfr; break;
288  case EXC_ID_XFLIST: xRec = mrExpData.mxXFBfr; break;
289  case EXC_ID_SST: xRec = mrExpData.mxSst; break;
290  case EXC_ID_EXTERNSHEET: xRec = GetLocalLinkMgrRef(); break;
291  case EXC_ID_NAME: xRec = mrExpData.mxNameMgr; break;
292  case EXC_ID_DXFS: xRec = mrExpData.mxDxfs; break;
293  }
294  OSL_ENSURE( xRec, "XclExpRoot::CreateRecord - unknown record ID or missing object" );
295  return xRec;
296 }
297 
299 {
300  // We need to encrypt the content when the document structure is protected.
301  const ScDocProtection* pDocProt = GetDoc().GetDocProtection();
302  if (pDocProt && pDocProt->isProtected() && pDocProt->isOptionEnabled(ScDocProtection::STRUCTURE))
303  return true;
304 
305  // Whether password is entered directly into the save dialog.
306  return GetEncryptionData().hasElements();
307 }
308 
309 uno::Sequence< beans::NamedValue > XclExpRoot::GenerateEncryptionData( const OUString& aPass )
310 {
311  uno::Sequence< beans::NamedValue > aEncryptionData;
312 
313  if ( !aPass.isEmpty() && aPass.getLength() < 16 )
314  {
315  rtlRandomPool aRandomPool = rtl_random_createPool ();
316  sal_uInt8 pnDocId[16];
317  rtl_random_getBytes( aRandomPool, pnDocId, 16 );
318 
319  rtl_random_destroyPool( aRandomPool );
320 
321  sal_uInt16 pnPasswd[16] = {};
322  for( sal_Int32 nChar = 0; nChar < aPass.getLength(); ++nChar )
323  pnPasswd[nChar] = aPass[nChar];
324 
326  aCodec.InitKey( pnPasswd, pnDocId );
327  aEncryptionData = aCodec.GetEncryptionData();
328  }
329 
330  return aEncryptionData;
331 }
332 
333 uno::Sequence< beans::NamedValue > XclExpRoot::GetEncryptionData() const
334 {
335  uno::Sequence< beans::NamedValue > aEncryptionData;
336  const SfxUnoAnyItem* pEncryptionDataItem = SfxItemSet::GetItem<SfxUnoAnyItem>(GetMedium().GetItemSet(), SID_ENCRYPTIONDATA, false);
337  if ( pEncryptionDataItem )
338  pEncryptionDataItem->GetValue() >>= aEncryptionData;
339  else
340  {
341  // try to get the encryption data from the password
342  const SfxStringItem* pPasswordItem = SfxItemSet::GetItem<SfxStringItem>(GetMedium().GetItemSet(), SID_PASSWORD, false);
343  if ( pPasswordItem && !pPasswordItem->GetValue().isEmpty() )
344  aEncryptionData = GenerateEncryptionData( pPasswordItem->GetValue() );
345  }
346 
347  return aEncryptionData;
348 }
349 
350 uno::Sequence< beans::NamedValue > XclExpRoot::GenerateDefaultEncryptionData()
351 {
353 }
354 
356 {
358 }
359 
360 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
XclExpFilterManager & GetFilterManager() const
Returns the filter manager.
Definition: xeroot.cxx:153
Stores all XF records (cell formats and cell styles) in the document.
Definition: xestyle.hxx:573
XclExpObjectMgrRef mxObjMgr
Local link manager for a sheet.
Definition: xeroot.hxx:92
XclBiff
An enumeration for all Excel file format types (BIFF types).
Definition: xlconst.hxx:30
Stores global buffers and data needed for Excel export filter.
Definition: xeroot.hxx:60
bool IsSaveRelFSys() const
void InitializeGlobals()
Is called when export filter starts to create the workbook global data (>=BIFF5). ...
Definition: xeroot.cxx:193
The main progress bar for the export filter.
Definition: xehelper.hxx:41
MS Excel binary .xls.
Definition: xlconst.hxx:44
std::shared_ptr< XclExpXmlPivotTableManager > mxXmlPTableMgr
All delta formatting entries.
Definition: xeroot.hxx:97
void InitializeConvert()
Is called when export filter starts to create the Excel document (all BIFF versions).
Definition: xeroot.cxx:183
XclExpRoot(XclExpRootData &rExpRootData)
Definition: xeroot.cxx:69
XclExpAddrConvRef mxAddrConv
Calc->Excel sheet index conversion.
Definition: xeroot.hxx:80
virtual void InitKey(const sal_uInt16 pPassData[16], const sal_uInt8 pDocId[16]) override
void Initialize()
Initializes all segments and sub progress bars.
Definition: xehelper.cxx:77
XclExpLinkManager & GetLocalLinkManager() const
Returns the local link manager for the current sheet.
Definition: xeroot.cxx:135
OStringBuffer maStringBuf
true = Store URLs relative.
Definition: xeroot.hxx:105
const sal_uInt16 EXC_ID_NAME
Definition: xlname.hxx:29
XclExpPivotTableManager & GetPivotTableManager() const
Returns the pivot table manager.
Definition: xeroot.cxx:165
virtual bool isProtected() const override
XclExpFormulaCompiler & GetFormulaCompiler() const
Returns the formula compiler to produce formula token arrays.
Definition: xeroot.cxx:87
static css::uno::Sequence< css::beans::NamedValue > GenerateEncryptionData(const OUString &aPass)
Definition: xeroot.cxx:309
Stores global buffers and data needed elsewhere in the Excel filters.
Definition: xlroot.hxx:61
XclExpNameMgrRef mxNameMgr
All XF records in the file.
Definition: xeroot.hxx:89
XclExpProgressBar & GetProgressBar() const
Returns the export progress bar.
Definition: xeroot.cxx:93
static const OUStringLiteral & GetDefaultPassword()
Returns the default password used for stream encryption.
Definition: xlroot.hxx:177
const sal_uInt16 EXC_ID_DXFS
For internal use only.
Definition: xestyle.hxx:42
css::uno::Reference< css::frame::XModel > GetModel() const
SC_DLLPUBLIC formula::FormulaGrammar::Grammar GetGrammar() const
Definition: document.hxx:988
ScDocument & GetDoc() const
Returns reference to the destination document (import) or source document (export).
Definition: xlroot.cxx:278
The formula compiler to create Excel token arrays from Calc token arrays.
Definition: xeformula.hxx:52
static css::uno::Sequence< css::beans::NamedValue > GenerateDefaultEncryptionData()
Definition: xeroot.cxx:350
XclExpXFBfrRef mxXFBfr
All number formats in the file.
Definition: xeroot.hxx:88
MS Excel 4.0.
Definition: xlconst.hxx:35
const BorderLinePrimitive2D *pCandidateB assert(pCandidateA)
XclExpRootData(XclBiff eBiff, SfxMedium &rMedium, const tools::SvRef< SotStorage > &xRootStrg, ScDocument &rDoc, rtl_TextEncoding eTextEnc)
buffer to avoid massive OUString allocations
Definition: xeroot.cxx:56
const css::uno::Any & GetValue() const
Stores all number formats used in the document.
Definition: xestyle.hxx:270
virtual css::uno::Sequence< css::beans::NamedValue > GetEncryptionData()
const SCTAB SCTAB_GLOBAL
An invalid Calc sheet index, for common use.
Definition: xlconst.hxx:75
XclExpFontBfrRef mxFontBfr
The color buffer.
Definition: xeroot.hxx:86
XclExpDxfs & GetDxfs() const
Returns the differential formatting list.
Definition: xeroot.cxx:159
Provides access to API op-codes for all available formula tokens and to function info structs for all...
XclExpLinkManager & GetGlobalLinkManager() const
Returns the global link manager for defined names.
Definition: xeroot.cxx:129
css::uno::Sequence< css::sheet::FormulaOpCodeMapEntry > getOoxParserMap() const
Returns the op-code map that is used by the OOXML formula parser.
SC_DLLPUBLIC ScDocProtection * GetDocProtection() const
Definition: documen3.cxx:1847
XclExpRootData & mrExpData
Definition: xeroot.hxx:189
MS Excel 5.0, MS Excel 7.0 (95)
Definition: xlconst.hxx:36
XclOutput GetOutput() const
Returns the current output format of the importer/exporter.
Definition: xlroot.hxx:142
XclExpRootData::XclExpLinkMgrRef const & GetLocalLinkMgrRef() const
Returns the local or global link manager, depending on current context.
Definition: xeroot.cxx:355
XclExpAddressConverter & GetAddressConverter() const
Returns the address converter.
Definition: xeroot.cxx:81
const sal_uInt16 EXC_ID_FONTLIST
Definition: xestyle.hxx:39
Manager that stores all internal defined names (NAME records) of the document.
Definition: xename.hxx:32
XclExpFilterMgrRef mxFilterMgr
All drawing objects.
Definition: xeroot.hxx:93
XclExpXmlPivotTableManager & GetXmlPivotTableManager()
Definition: xeroot.cxx:171
XclExpPalette & GetPalette() const
Returns the color buffer.
Definition: xeroot.cxx:105
void Finalize()
Reduces the XF record list to the maximum allowed number of records.
Definition: xestyle.cxx:2458
The main class for pivot table export.
Definition: xepivot.hxx:406
XclExpNumFmtBuffer & GetNumFmtBuffer() const
Returns the number format buffer.
Definition: xeroot.cxx:117
const OUString & GetValue() const
Stores all used colors in the document.
Definition: xestyle.hxx:76
Stores the correct Excel sheet index for each Calc sheet.
Definition: xelink.hxx:62
SfxItemSet * GetItemSet() const
XclExpTablesManager & GetTablesManager()
Definition: xeroot.cxx:177
XclExpNameManager & GetNameManager() const
Returns the buffer that contains internal defined names.
Definition: xeroot.cxx:141
XclExpTabInfo & GetTabInfo() const
Returns the buffer for Calc->Excel sheet index conversion.
Definition: xeroot.cxx:75
bool mbRelUrl
mapping between op-codes and names
Definition: xeroot.hxx:103
bool IsSaveRelINet() const
XclExpRecordRef CreateRecord(sal_uInt16 nRecId) const
Returns the reference to a record (or record list) representing a root object.
Definition: xeroot.cxx:280
void InitializeSave()
Is called before export filter starts to write the records to the stream.
Definition: xeroot.cxx:274
void Finalize()
Reduces the color list to the maximum count of the current BIFF version.
Definition: xestyle.cxx:773
const XclExpRoot & GetRoot() const
Returns this root instance - for code readability in derived classes.
Definition: xeroot.hxx:119
XclExpSst & GetSst() const
Returns the shared string table.
Definition: xeroot.cxx:99
const sal_uInt16 EXC_ID_XFLIST
For internal use only.
Definition: xestyle.hxx:41
Stores all data for database ranges (tables in Excel speak).
Definition: xedbdata.hxx:53
const sal_uInt16 EXC_ID_SST
Definition: xlcontent.hxx:45
void SetCurrScTab(SCTAB nScTab)
Sets the current Calc sheet index.
Definition: xlroot.hxx:258
SfxMedium & mrMedium
Current Output format.
Definition: xlroot.hxx:77
Provides functions to convert Calc cell addresses to Excel cell addresses.
Definition: xehelper.hxx:79
XclExpNumFmtBfrRef mxNumFmtBfr
All fonts in the file.
Definition: xeroot.hxx:87
void Initialize()
Inserts predefined built-in styles and user-defined styles.
Definition: xestyle.cxx:2416
void * rtlRandomPool
XclExpDxfsRef mxDxfs
All pivot tables and pivot caches.
Definition: xeroot.hxx:95
std::shared_ptr< XclExpTablesManager > mxTablesMgr
Definition: xeroot.hxx:98
const sal_uInt16 EXC_ID_PALETTE
Definition: xlstyle.hxx:200
Stores all data for internal/external references (the link table).
Definition: xelink.hxx:146
XclExpSstRef mxSst
The export progress bar.
Definition: xeroot.hxx:84
unsigned char sal_uInt8
bool IsRemote() const
static OpCodeMapPtr CreateOpCodeMap(const css::uno::Sequence< const css::sheet::FormulaOpCodeMapEntry > &rMapping, bool bEnglish)
XclExpPTableMgrRef mxPTableMgr
Manager for filtered areas in all sheets.
Definition: xeroot.hxx:94
Sheet filter manager.
Definition: excrecds.hxx:423
Stores the data of all fonts used in the document.
Definition: xestyle.hxx:208
css::uno::Sequence< css::beans::NamedValue > GetEncryptionData() const
Definition: xeroot.cxx:333
void InitializeTable(SCTAB nScTab)
Is called when export filter starts to create data for a single sheet (all BIFF versions).
Definition: xeroot.cxx:264
XclExpObjectManager & GetObjectManager() const
Returns the drawing object manager.
Definition: xeroot.cxx:147
XclBiff GetBiff() const
Returns the current BIFF version of the importer/exporter.
Definition: xlroot.hxx:140
void Initialize()
Creates NAME records for built-in and user defined names.
Definition: xename.cxx:797
const sal_uInt16 EXC_ID_FORMATLIST
For internal use only.
Definition: xestyle.hxx:40
bool IsDocumentEncrypted() const
Definition: xeroot.cxx:298
XclExpPaletteRef mxPalette
The shared string table.
Definition: xeroot.hxx:85
SfxObjectShell * GetDocumentShell() const
Definition: document.hxx:1061
#define SAL_WARN(area, stream)
XclExpTabInfoRef mxTabInfo
Definition: xeroot.hxx:79
XclExpLinkMgrRef mxGlobLinkMgr
Internal defined names.
Definition: xeroot.hxx:90
virtual ~XclExpRootData() override
Definition: xeroot.cxx:65
XclExpProgressRef mxProgress
The formula compiler.
Definition: xeroot.hxx:82
bool isOptionEnabled(Option eOption) const
XclExpFmlaCompRef mxFmlaComp
The address converter.
Definition: xeroot.hxx:81
bool IsInGlobals() const
Returns the current Calc sheet index.
Definition: xlroot.hxx:158
XclExpXFBuffer & GetXFBuffer() const
Returns the cell formatting attributes buffer.
Definition: xeroot.cxx:123
XclExpFontBuffer & GetFontBuffer() const
Returns the font buffer.
Definition: xeroot.cxx:111
Provides export of the SST (shared string table) record.
Definition: xecontent.hxx:52
Access to global data for a filter object (imported or exported document) from other classes...
Definition: xlroot.hxx:126
SfxMedium & GetMedium() const
Returns the medium to import from.
Definition: xlroot.hxx:168
ScCompiler::OpCodeMapPtr mxOpCodeMap
Definition: xeroot.hxx:101
sal_Int16 SCTAB
Definition: types.hxx:23
XclExpLinkMgrRef mxLocLinkMgr
Global link manager for defined names.
Definition: xeroot.hxx:91