Branch data Line data Source code
1 : : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : : /*************************************************************************
3 : : *
4 : : * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 : : *
6 : : * Copyright 2000, 2010 Oracle and/or its affiliates.
7 : : *
8 : : * OpenOffice.org - a multi-platform office productivity suite
9 : : *
10 : : * This file is part of OpenOffice.org.
11 : : *
12 : : * OpenOffice.org is free software: you can redistribute it and/or modify
13 : : * it under the terms of the GNU Lesser General Public License version 3
14 : : * only, as published by the Free Software Foundation.
15 : : *
16 : : * OpenOffice.org is distributed in the hope that it will be useful,
17 : : * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 : : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 : : * GNU Lesser General Public License version 3 for more details
20 : : * (a copy is included in the LICENSE file that accompanied this code).
21 : : *
22 : : * You should have received a copy of the GNU Lesser General Public License
23 : : * version 3 along with OpenOffice.org. If not, see
24 : : * <http://www.openoffice.org/license.html>
25 : : * for a copy of the LGPLv3 License.
26 : : *
27 : : ************************************************************************/
28 : :
29 : : #ifndef SC_XMLIMPRT_HXX
30 : : #define SC_XMLIMPRT_HXX
31 : :
32 : : #include <rsc/rscsfx.hxx>
33 : : #include <xmloff/xmlictxt.hxx>
34 : : #include <xmloff/xmlimp.hxx>
35 : : #include <xmloff/xmltkmap.hxx>
36 : : #include <xmloff/xmlaustp.hxx>
37 : : #include <xmloff/xmlstyle.hxx>
38 : : #include <com/sun/star/frame/XModel.hpp>
39 : : #include <com/sun/star/util/DateTime.hpp>
40 : : #include "xmlsubti.hxx"
41 : : #include "global.hxx"
42 : : #include "formula/grammar.hxx"
43 : :
44 : : #include "xmlstyle.hxx"
45 : : #include "XMLDetectiveContext.hxx"
46 : : #include <com/sun/star/sheet/ValidationAlertStyle.hpp>
47 : : #include <com/sun/star/sheet/ValidationType.hpp>
48 : : #include <com/sun/star/sheet/ConditionOperator.hpp>
49 : : #include <com/sun/star/table/CellAddress.hpp>
50 : : #include <com/sun/star/beans/XPropertySet.hpp>
51 : : #include <com/sun/star/util/XNumberFormatTypes.hpp>
52 : : #include <com/sun/star/sheet/XSheetCellRangeContainer.hpp>
53 : :
54 : : #include <vector>
55 : : #include <boost/unordered_map.hpp>
56 : : #include <boost/ptr_container/ptr_list.hpp>
57 : : #include <boost/ptr_container/ptr_map.hpp>
58 : :
59 : : class ScMyStyleNumberFormats;
60 : : class XMLNumberFormatAttributesExportHelper;
61 : :
62 : : enum ScXMLDocTokens
63 : : {
64 : : XML_TOK_DOC_FONTDECLS,
65 : : XML_TOK_DOC_STYLES,
66 : : XML_TOK_DOC_AUTOSTYLES,
67 : : XML_TOK_DOC_MASTERSTYLES,
68 : : XML_TOK_DOC_META,
69 : : XML_TOK_DOC_SCRIPTS,
70 : : XML_TOK_DOC_BODY,
71 : : XML_TOK_DOC_SETTINGS,
72 : : XML_TOK_OFFICE_END=XML_TOK_UNKNOWN
73 : : };
74 : :
75 : : enum ScXMLStylesTokens
76 : : {
77 : : XML_TOK_STYLES_STYLE
78 : : };
79 : :
80 : : enum ScXMLStylesAttrTokens
81 : : {
82 : : XML_TOK_STYLES_STYLE_NAME,
83 : : XML_TOK_STYLES_STYLE_FAMILY,
84 : : XML_TOK_STYLES_STYLE_PARENT_STYLE_NAME
85 : : };
86 : :
87 : : enum ScXMLStyleTokens
88 : : {
89 : : XML_TOK_STYLE_PROPERTIES
90 : : };
91 : :
92 : : enum ScXMLBodyTokens
93 : : {
94 : : XML_TOK_BODY_TRACKED_CHANGES,
95 : : XML_TOK_BODY_CALCULATION_SETTINGS,
96 : : XML_TOK_BODY_CONTENT_VALIDATIONS,
97 : : XML_TOK_BODY_LABEL_RANGES,
98 : : XML_TOK_BODY_TABLE,
99 : : XML_TOK_BODY_NAMED_EXPRESSIONS,
100 : : XML_TOK_BODY_DATABASE_RANGES,
101 : : XML_TOK_BODY_DATABASE_RANGE,
102 : : XML_TOK_BODY_DATA_PILOT_TABLES,
103 : : XML_TOK_BODY_CONSOLIDATION,
104 : : XML_TOK_BODY_DDE_LINKS
105 : : };
106 : :
107 : : enum ScXMLContentValidationsElemTokens
108 : : {
109 : : XML_TOK_CONTENT_VALIDATION
110 : : };
111 : :
112 : : enum ScXMLContentValidationElemTokens
113 : : {
114 : : XML_TOK_CONTENT_VALIDATION_ELEM_HELP_MESSAGE,
115 : : XML_TOK_CONTENT_VALIDATION_ELEM_ERROR_MESSAGE,
116 : : XML_TOK_CONTENT_VALIDATION_ELEM_ERROR_MACRO,
117 : : XML_TOK_CONTENT_VALIDATION_ELEM_EVENT_LISTENERS
118 : : };
119 : :
120 : : enum ScXMLContentValidationAttrTokens
121 : : {
122 : : XML_TOK_CONTENT_VALIDATION_NAME,
123 : : XML_TOK_CONTENT_VALIDATION_CONDITION,
124 : : XML_TOK_CONTENT_VALIDATION_BASE_CELL_ADDRESS,
125 : : XML_TOK_CONTENT_VALIDATION_ALLOW_EMPTY_CELL,
126 : : XML_TOK_CONTENT_VALIDATION_DISPLAY_LIST
127 : : };
128 : :
129 : : enum ScXMLContentValidationMessageElemTokens
130 : : {
131 : : XML_TOK_P
132 : : };
133 : :
134 : : enum ScXMLContentValidationHelpMessageAttrTokens
135 : : {
136 : : XML_TOK_HELP_MESSAGE_ATTR_TITLE,
137 : : XML_TOK_HELP_MESSAGE_ATTR_DISPLAY
138 : : };
139 : :
140 : : enum ScXMLContentValidationErrorMessageAttrTokens
141 : : {
142 : : XML_TOK_ERROR_MESSAGE_ATTR_TITLE,
143 : : XML_TOK_ERROR_MESSAGE_ATTR_DISPLAY,
144 : : XML_TOK_ERROR_MESSAGE_ATTR_MESSAGE_TYPE
145 : : };
146 : :
147 : : enum ScXMLContentValidationErrorMacroAttrTokens
148 : : {
149 : : XML_TOK_ERROR_MACRO_ATTR_NAME,
150 : : XML_TOK_ERROR_MACRO_ATTR_EXECUTE
151 : : };
152 : :
153 : : enum ScXMLCondFormatsTokens
154 : : {
155 : : XML_TOK_CONDFORMATS_CONDFORMAT
156 : : };
157 : :
158 : : enum ScXMLCondFormatTokens
159 : : {
160 : : XML_TOK_CONDFORMAT_COLORSCALE,
161 : : XML_TOK_CONDFORMAT_DATABAR,
162 : : XML_TOK_CONDFORMAT_CONDITION
163 : : };
164 : :
165 : : enum ScXMLCondFormatAttrTokens
166 : : {
167 : : XML_TOK_CONDFORMAT_TARGET_RANGE
168 : : };
169 : :
170 : : enum ScXMLConditionAttrTokens
171 : : {
172 : : XML_TOK_CONDITION_VALUE,
173 : : XML_TOK_CONDITION_APPLY_STYLE_NAME,
174 : : XML_TOK_CONDITION_BASE_CELL_ADDRESS
175 : : };
176 : :
177 : : enum ScXMLColorScaleFormatTokens
178 : : {
179 : : XML_TOK_COLORSCALE_COLORSCALEENTRY
180 : : };
181 : :
182 : : enum ScXMLColorScaleEntryAttrTokens
183 : : {
184 : : XML_TOK_COLORSCALEENTRY_TYPE,
185 : : XML_TOK_COLORSCALEENTRY_VALUE,
186 : : XML_TOK_COLORSCALEENTRY_COLOR
187 : : };
188 : :
189 : : enum ScXMLDataBarFormatTokens
190 : : {
191 : : XML_TOK_DATABAR_DATABARENTRY
192 : : };
193 : :
194 : : enum ScXMLDataBarAttrTokens
195 : : {
196 : : XML_TOK_DATABAR_POSITIVE_COLOR,
197 : : XML_TOK_DATABAR_NEGATIVE_COLOR,
198 : : XML_TOK_DATABAR_GRADIENT,
199 : : XML_TOK_DATABAR_AXISPOSITION,
200 : : XML_TOK_DATABAR_SHOWVALUE,
201 : : XML_TOK_DATABAR_AXISCOLOR
202 : : };
203 : :
204 : : enum ScXMLDataBarEntryAttrTokens
205 : : {
206 : : XML_TOK_DATABARENTRY_TYPE,
207 : : XML_TOK_DATABARENTRY_VALUE
208 : : };
209 : :
210 : : enum ScXMLLabelRangesElemTokens
211 : : {
212 : : XML_TOK_LABEL_RANGE_ELEM
213 : : };
214 : :
215 : : enum ScXMLLabelRangeAttrTokens
216 : : {
217 : : XML_TOK_LABEL_RANGE_ATTR_LABEL_RANGE,
218 : : XML_TOK_LABEL_RANGE_ATTR_DATA_RANGE,
219 : : XML_TOK_LABEL_RANGE_ATTR_ORIENTATION
220 : : };
221 : :
222 : : enum ScXMLTableTokens
223 : : {
224 : : XML_TOK_TABLE_NAMED_EXPRESSIONS,
225 : : XML_TOK_TABLE_COL_GROUP,
226 : : XML_TOK_TABLE_HEADER_COLS,
227 : : XML_TOK_TABLE_COLS,
228 : : XML_TOK_TABLE_COL,
229 : : XML_TOK_TABLE_ROW_GROUP,
230 : : XML_TOK_TABLE_HEADER_ROWS,
231 : : XML_TOK_TABLE_PROTECTION,
232 : : XML_TOK_TABLE_ROWS,
233 : : XML_TOK_TABLE_ROW,
234 : : XML_TOK_TABLE_SOURCE,
235 : : XML_TOK_TABLE_SCENARIO,
236 : : XML_TOK_TABLE_SHAPES,
237 : : XML_TOK_TABLE_FORMS,
238 : : XML_TOK_TABLE_EVENT_LISTENERS,
239 : : XML_TOK_TABLE_EVENT_LISTENERS_EXT,
240 : : XML_TOK_TABLE_CONDFORMATS
241 : : };
242 : :
243 : : enum ScXMLTokenProtectionTokens
244 : : {
245 : : XML_TOK_TABLE_SELECT_PROTECTED_CELLS,
246 : : XML_TOK_TABLE_SELECT_UNPROTECTED_CELLS
247 : : };
248 : :
249 : : enum ScXMLTableRowsTokens
250 : : {
251 : : XML_TOK_TABLE_ROWS_ROW_GROUP,
252 : : XML_TOK_TABLE_ROWS_HEADER_ROWS,
253 : : XML_TOK_TABLE_ROWS_ROWS,
254 : : XML_TOK_TABLE_ROWS_ROW
255 : : };
256 : :
257 : : enum ScXMLTableColsTokens
258 : : {
259 : : XML_TOK_TABLE_COLS_COL_GROUP,
260 : : XML_TOK_TABLE_COLS_HEADER_COLS,
261 : : XML_TOK_TABLE_COLS_COLS,
262 : : XML_TOK_TABLE_COLS_COL
263 : : };
264 : :
265 : : enum ScXMLTableAttrTokens
266 : : {
267 : : XML_TOK_TABLE_NAME,
268 : : XML_TOK_TABLE_STYLE_NAME,
269 : : XML_TOK_TABLE_PROTECTED,
270 : : XML_TOK_TABLE_PRINT_RANGES,
271 : : XML_TOK_TABLE_PASSWORD,
272 : : XML_TOK_TABLE_PASSHASH,
273 : : XML_TOK_TABLE_PASSHASH_2,
274 : : XML_TOK_TABLE_PRINT
275 : : };
276 : :
277 : : enum ScXMLTableScenarioAttrTokens
278 : : {
279 : : XML_TOK_TABLE_SCENARIO_ATTR_DISPLAY_BORDER,
280 : : XML_TOK_TABLE_SCENARIO_ATTR_BORDER_COLOR,
281 : : XML_TOK_TABLE_SCENARIO_ATTR_COPY_BACK,
282 : : XML_TOK_TABLE_SCENARIO_ATTR_COPY_STYLES,
283 : : XML_TOK_TABLE_SCENARIO_ATTR_COPY_FORMULAS,
284 : : XML_TOK_TABLE_SCENARIO_ATTR_IS_ACTIVE,
285 : : XML_TOK_TABLE_SCENARIO_ATTR_SCENARIO_RANGES,
286 : : XML_TOK_TABLE_SCENARIO_ATTR_COMMENT,
287 : : XML_TOK_TABLE_SCENARIO_ATTR_PROTECTED
288 : : };
289 : :
290 : : enum ScXMLTableColAttrTokens
291 : : {
292 : : XML_TOK_TABLE_COL_ATTR_STYLE_NAME,
293 : : XML_TOK_TABLE_COL_ATTR_REPEATED,
294 : : XML_TOK_TABLE_COL_ATTR_VISIBILITY,
295 : : XML_TOK_TABLE_COL_ATTR_DEFAULT_CELL_STYLE_NAME
296 : : };
297 : :
298 : : enum ScXMLTableRowTokens
299 : : {
300 : : XML_TOK_TABLE_ROW_CELL,
301 : : XML_TOK_TABLE_ROW_COVERED_CELL
302 : : };
303 : :
304 : : enum ScXMLTableRowAttrTokens
305 : : {
306 : : XML_TOK_TABLE_ROW_ATTR_STYLE_NAME,
307 : : XML_TOK_TABLE_ROW_ATTR_VISIBILITY,
308 : : XML_TOK_TABLE_ROW_ATTR_REPEATED,
309 : : XML_TOK_TABLE_ROW_ATTR_DEFAULT_CELL_STYLE_NAME
310 : : // XML_TOK_TABLE_ROW_ATTR_USE_OPTIMAL_HEIGHT
311 : : };
312 : :
313 : : enum ScXMLTableRowCellTokens
314 : : {
315 : : XML_TOK_TABLE_ROW_CELL_P,
316 : : XML_TOK_TABLE_ROW_CELL_TABLE,
317 : : XML_TOK_TABLE_ROW_CELL_ANNOTATION,
318 : : XML_TOK_TABLE_ROW_CELL_DETECTIVE,
319 : : XML_TOK_TABLE_ROW_CELL_CELL_RANGE_SOURCE
320 : : };
321 : :
322 : : enum ScXMLTableRowCellAttrTokens
323 : : {
324 : : XML_TOK_TABLE_ROW_CELL_ATTR_STYLE_NAME,
325 : : XML_TOK_TABLE_ROW_CELL_ATTR_CONTENT_VALIDATION_NAME,
326 : : XML_TOK_TABLE_ROW_CELL_ATTR_SPANNED_ROWS,
327 : : XML_TOK_TABLE_ROW_CELL_ATTR_SPANNED_COLS,
328 : : XML_TOK_TABLE_ROW_CELL_ATTR_SPANNED_MATRIX_COLS,
329 : : XML_TOK_TABLE_ROW_CELL_ATTR_SPANNED_MATRIX_ROWS,
330 : : XML_TOK_TABLE_ROW_CELL_ATTR_REPEATED,
331 : : XML_TOK_TABLE_ROW_CELL_ATTR_VALUE_TYPE,
332 : : XML_TOK_TABLE_ROW_CELL_ATTR_VALUE,
333 : : XML_TOK_TABLE_ROW_CELL_ATTR_DATE_VALUE,
334 : : XML_TOK_TABLE_ROW_CELL_ATTR_TIME_VALUE,
335 : : XML_TOK_TABLE_ROW_CELL_ATTR_STRING_VALUE,
336 : : XML_TOK_TABLE_ROW_CELL_ATTR_BOOLEAN_VALUE,
337 : : XML_TOK_TABLE_ROW_CELL_ATTR_FORMULA,
338 : : XML_TOK_TABLE_ROW_CELL_ATTR_CURRENCY
339 : : };
340 : :
341 : : enum ScXMLAnnotationAttrTokens
342 : : {
343 : : XML_TOK_TABLE_ANNOTATION_ATTR_AUTHOR,
344 : : XML_TOK_TABLE_ANNOTATION_ATTR_CREATE_DATE,
345 : : XML_TOK_TABLE_ANNOTATION_ATTR_CREATE_DATE_STRING,
346 : : XML_TOK_TABLE_ANNOTATION_ATTR_DISPLAY,
347 : : XML_TOK_TABLE_ANNOTATION_ATTR_X,
348 : : XML_TOK_TABLE_ANNOTATION_ATTR_Y
349 : : };
350 : :
351 : : enum ScXMLDetectiveElemTokens
352 : : {
353 : : XML_TOK_DETECTIVE_ELEM_HIGHLIGHTED,
354 : : XML_TOK_DETECTIVE_ELEM_OPERATION
355 : : };
356 : :
357 : : enum ScXMLDetectiveHighlightedAttrTokens
358 : : {
359 : : XML_TOK_DETECTIVE_HIGHLIGHTED_ATTR_CELL_RANGE,
360 : : XML_TOK_DETECTIVE_HIGHLIGHTED_ATTR_DIRECTION,
361 : : XML_TOK_DETECTIVE_HIGHLIGHTED_ATTR_CONTAINS_ERROR,
362 : : XML_TOK_DETECTIVE_HIGHLIGHTED_ATTR_MARKED_INVALID
363 : : };
364 : :
365 : : enum ScXMLDetectiveOperationAttrTokens
366 : : {
367 : : XML_TOK_DETECTIVE_OPERATION_ATTR_NAME,
368 : : XML_TOK_DETECTIVE_OPERATION_ATTR_INDEX
369 : : };
370 : :
371 : : enum ScXMLCellRangeSourceAttrTokens
372 : : {
373 : : XML_TOK_TABLE_CELL_RANGE_SOURCE_ATTR_NAME,
374 : : XML_TOK_TABLE_CELL_RANGE_SOURCE_ATTR_HREF,
375 : : XML_TOK_TABLE_CELL_RANGE_SOURCE_ATTR_FILTER_NAME,
376 : : XML_TOK_TABLE_CELL_RANGE_SOURCE_ATTR_FILTER_OPTIONS,
377 : : XML_TOK_TABLE_CELL_RANGE_SOURCE_ATTR_LAST_COLUMN,
378 : : XML_TOK_TABLE_CELL_RANGE_SOURCE_ATTR_LAST_ROW,
379 : : XML_TOK_TABLE_CELL_RANGE_SOURCE_ATTR_REFRESH_DELAY
380 : : };
381 : :
382 : : enum ScXMLNamedExpressionsTokens
383 : : {
384 : : XML_TOK_NAMED_EXPRESSIONS_NAMED_RANGE,
385 : : XML_TOK_NAMED_EXPRESSIONS_NAMED_EXPRESSION
386 : : };
387 : :
388 : : enum ScXMLNamedRangeAttrTokens
389 : : {
390 : : XML_TOK_NAMED_RANGE_ATTR_NAME,
391 : : XML_TOK_NAMED_RANGE_ATTR_CELL_RANGE_ADDRESS,
392 : : XML_TOK_NAMED_RANGE_ATTR_BASE_CELL_ADDRESS,
393 : : XML_TOK_NAMED_RANGE_ATTR_RANGE_USABLE_AS
394 : : };
395 : :
396 : : enum ScXMLNamedExpressionAttrTokens
397 : : {
398 : : XML_TOK_NAMED_EXPRESSION_ATTR_NAME,
399 : : XML_TOK_NAMED_EXPRESSION_ATTR_BASE_CELL_ADDRESS,
400 : : XML_TOK_NAMED_EXPRESSION_ATTR_EXPRESSION
401 : : };
402 : :
403 : : enum ScXMLDatabaseRangesTokens
404 : : {
405 : : XML_TOK_DATABASE_RANGE
406 : : };
407 : :
408 : : enum ScXMLDatabaseRangeTokens
409 : : {
410 : : XML_TOK_DATABASE_RANGE_SOURCE_SQL,
411 : : XML_TOK_DATABASE_RANGE_SOURCE_TABLE,
412 : : XML_TOK_DATABASE_RANGE_SOURCE_QUERY,
413 : : XML_TOK_FILTER,
414 : : XML_TOK_SORT,
415 : : XML_TOK_DATABASE_RANGE_SUBTOTAL_RULES
416 : : };
417 : :
418 : : enum ScXMLDatabaseRangeAttrTokens
419 : : {
420 : : XML_TOK_DATABASE_RANGE_ATTR_NAME,
421 : : XML_TOK_DATABASE_RANGE_ATTR_IS_SELECTION,
422 : : XML_TOK_DATABASE_RANGE_ATTR_ON_UPDATE_KEEP_STYLES,
423 : : XML_TOK_DATABASE_RANGE_ATTR_ON_UPDATE_KEEP_SIZE,
424 : : XML_TOK_DATABASE_RANGE_ATTR_HAS_PERSISTENT_DATA,
425 : : XML_TOK_DATABASE_RANGE_ATTR_ORIENTATION,
426 : : XML_TOK_DATABASE_RANGE_ATTR_CONTAINS_HEADER,
427 : : XML_TOK_DATABASE_RANGE_ATTR_DISPLAY_FILTER_BUTTONS,
428 : : XML_TOK_DATABASE_RANGE_ATTR_TARGET_RANGE_ADDRESS,
429 : : XML_TOK_DATABASE_RANGE_ATTR_REFRESH_DELAY
430 : : };
431 : :
432 : : enum ScXMLDatabaseRangeSourceSQLAttrTokens
433 : : {
434 : : XML_TOK_SOURCE_SQL_ATTR_DATABASE_NAME,
435 : : XML_TOK_SOURCE_SQL_ATTR_HREF,
436 : : XML_TOK_SOURCE_SQL_ATTR_CONNECTION_RESOURCE,
437 : : XML_TOK_SOURCE_SQL_ATTR_SQL_STATEMENT,
438 : : XML_TOK_SOURCE_SQL_ATTR_PARSE_SQL_STATEMENT
439 : : };
440 : :
441 : : enum ScXMLDatabaseRangeSourceTableAttrTokens
442 : : {
443 : : XML_TOK_SOURCE_TABLE_ATTR_DATABASE_NAME,
444 : : XML_TOK_SOURCE_TABLE_ATTR_HREF,
445 : : XML_TOK_SOURCE_TABLE_ATTR_CONNECTION_RESOURCE,
446 : : XML_TOK_SOURCE_TABLE_ATTR_TABLE_NAME
447 : : };
448 : :
449 : : enum ScXMLDatabaseRangeSourceQueryAttrTokens
450 : : {
451 : : XML_TOK_SOURCE_QUERY_ATTR_DATABASE_NAME,
452 : : XML_TOK_SOURCE_QUERY_ATTR_HREF,
453 : : XML_TOK_SOURCE_QUERY_ATTR_CONNECTION_RESOURCE,
454 : : XML_TOK_SOURCE_QUERY_ATTR_QUERY_NAME
455 : : };
456 : :
457 : : enum ScXMLFilterTokens
458 : : {
459 : : XML_TOK_FILTER_AND,
460 : : XML_TOK_FILTER_OR,
461 : : XML_TOK_FILTER_CONDITION
462 : : };
463 : :
464 : : enum ScXMLFilterAttrTokens
465 : : {
466 : : XML_TOK_FILTER_ATTR_TARGET_RANGE_ADDRESS,
467 : : XML_TOK_FILTER_ATTR_CONDITION_SOURCE_RANGE_ADDRESS,
468 : : XML_TOK_FILTER_ATTR_CONDITION_SOURCE,
469 : : XML_TOK_FILTER_ATTR_DISPLAY_DUPLICATES
470 : : };
471 : :
472 : : enum ScXMLFilterConditionElemTokens
473 : : {
474 : : XML_TOK_CONDITION_FILTER_SET_ITEM
475 : : };
476 : :
477 : : enum ScXMLFilterConditionAttrTokens
478 : : {
479 : : XML_TOK_CONDITION_ATTR_FIELD_NUMBER,
480 : : XML_TOK_CONDITION_ATTR_CASE_SENSITIVE,
481 : : XML_TOK_CONDITION_ATTR_DATA_TYPE,
482 : : XML_TOK_CONDITION_ATTR_VALUE,
483 : : XML_TOK_CONDITION_ATTR_OPERATOR
484 : : };
485 : :
486 : : enum ScXMLFilterSetItemAttrTokens
487 : : {
488 : : XML_TOK_FILTER_SET_ITEM_ATTR_VALUE
489 : : };
490 : :
491 : : enum ScXMLSortTokens
492 : : {
493 : : XML_TOK_SORT_SORT_BY
494 : : };
495 : :
496 : : enum ScXMLSortAttrTokens
497 : : {
498 : : XML_TOK_SORT_ATTR_BIND_STYLES_TO_CONTENT,
499 : : XML_TOK_SORT_ATTR_TARGET_RANGE_ADDRESS,
500 : : XML_TOK_SORT_ATTR_CASE_SENSITIVE,
501 : : XML_TOK_SORT_ATTR_LANGUAGE,
502 : : XML_TOK_SORT_ATTR_COUNTRY,
503 : : XML_TOK_SORT_ATTR_ALGORITHM
504 : : };
505 : :
506 : : enum ScXMLSortSortByAttrTokens
507 : : {
508 : : XML_TOK_SORT_BY_ATTR_FIELD_NUMBER,
509 : : XML_TOK_SORT_BY_ATTR_DATA_TYPE,
510 : : XML_TOK_SORT_BY_ATTR_ORDER
511 : : };
512 : :
513 : : enum ScXMLDatabaseRangeSubTotalRulesTokens
514 : : {
515 : : XML_TOK_SUBTOTAL_RULES_SORT_GROUPS,
516 : : XML_TOK_SUBTOTAL_RULES_SUBTOTAL_RULE
517 : : };
518 : :
519 : : enum ScXMLDatabaseRangeSubTotalRulesAttrTokens
520 : : {
521 : : XML_TOK_SUBTOTAL_RULES_ATTR_BIND_STYLES_TO_CONTENT,
522 : : XML_TOK_SUBTOTAL_RULES_ATTR_CASE_SENSITIVE,
523 : : XML_TOK_SUBTOTAL_RULES_ATTR_PAGE_BREAKS_ON_GROUP_CHANGE
524 : : };
525 : :
526 : : enum ScXMLSubTotalRulesSortGroupsAttrTokens
527 : : {
528 : : XML_TOK_SORT_GROUPS_ATTR_DATA_TYPE,
529 : : XML_TOK_SORT_GROUPS_ATTR_ORDER
530 : : };
531 : :
532 : : enum ScXMLSubTotalRulesSubTotalRuleTokens
533 : : {
534 : : XML_TOK_SUBTOTAL_RULE_SUBTOTAL_FIELD
535 : : };
536 : :
537 : : enum ScXMLSubTotalRulesSubTotalRuleAttrTokens
538 : : {
539 : : XML_TOK_SUBTOTAL_RULE_ATTR_GROUP_BY_FIELD_NUMBER
540 : : };
541 : :
542 : : enum ScXMLSubTotalRuleSubTotalField
543 : : {
544 : : XML_TOK_SUBTOTAL_FIELD_ATTR_FIELD_NUMBER,
545 : : XML_TOK_SUBTOTAL_FIELD_ATTR_FUNCTION
546 : : };
547 : :
548 : : enum ScXMLDataPilotTablesElemTokens
549 : : {
550 : : XML_TOK_DATA_PILOT_TABLE
551 : : };
552 : :
553 : : enum ScXMLDataPilotTableAttrTokens
554 : : {
555 : : XML_TOK_DATA_PILOT_TABLE_ATTR_NAME,
556 : : XML_TOK_DATA_PILOT_TABLE_ATTR_APPLICATION_DATA,
557 : : XML_TOK_DATA_PILOT_TABLE_ATTR_GRAND_TOTAL,
558 : : XML_TOK_DATA_PILOT_TABLE_ATTR_IGNORE_EMPTY_ROWS,
559 : : XML_TOK_DATA_PILOT_TABLE_ATTR_IDENTIFY_CATEGORIES,
560 : : XML_TOK_DATA_PILOT_TABLE_ATTR_TARGET_RANGE_ADDRESS,
561 : : XML_TOK_DATA_PILOT_TABLE_ATTR_BUTTONS,
562 : : XML_TOK_DATA_PILOT_TABLE_ATTR_SHOW_FILTER_BUTTON,
563 : : XML_TOK_DATA_PILOT_TABLE_ATTR_DRILL_DOWN,
564 : : XML_TOK_DATA_PILOT_TABLE_ATTR_HEADER_GRID_LAYOUT
565 : : };
566 : :
567 : : enum ScXMLDataPilotTableElemTokens
568 : : {
569 : : XML_TOK_DATA_PILOT_TABLE_ELEM_SOURCE_SQL,
570 : : XML_TOK_DATA_PILOT_TABLE_ELEM_SOURCE_TABLE,
571 : : XML_TOK_DATA_PILOT_TABLE_ELEM_GRAND_TOTAL,
572 : : XML_TOK_DATA_PILOT_TABLE_ELEM_GRAND_TOTAL_EXT,
573 : : XML_TOK_DATA_PILOT_TABLE_ELEM_SOURCE_QUERY,
574 : : XML_TOK_DATA_PILOT_TABLE_ELEM_SOURCE_SERVICE,
575 : : XML_TOK_DATA_PILOT_TABLE_ELEM_SOURCE_CELL_RANGE,
576 : : XML_TOK_DATA_PILOT_TABLE_ELEM_DATA_PILOT_FIELD
577 : : };
578 : :
579 : : enum ScXMLDataPilotTableSourceServiceAttrTokens
580 : : {
581 : : XML_TOK_SOURCE_SERVICE_ATTR_NAME,
582 : : XML_TOK_SOURCE_SERVICE_ATTR_SOURCE_NAME,
583 : : XML_TOK_SOURCE_SERVICE_ATTR_OBJECT_NAME,
584 : : XML_TOK_SOURCE_SERVICE_ATTR_USER_NAME,
585 : : XML_TOK_SOURCE_SERVICE_ATTR_PASSWORD
586 : : };
587 : :
588 : : enum ScXMLDataPilotGrandTotalAttrTokens
589 : : {
590 : : XML_TOK_DATA_PILOT_GRAND_TOTAL_ATTR_DISPLAY,
591 : : XML_TOK_DATA_PILOT_GRAND_TOTAL_ATTR_ORIENTATION,
592 : : XML_TOK_DATA_PILOT_GRAND_TOTAL_ATTR_DISPLAY_NAME,
593 : : XML_TOK_DATA_PILOT_GRAND_TOTAL_ATTR_DISPLAY_NAME_EXT
594 : : };
595 : :
596 : : enum ScXMLDataPilotTableSourceCellRangeElemTokens
597 : : {
598 : : XML_TOK_SOURCE_CELL_RANGE_ELEM_FILTER
599 : : };
600 : :
601 : : enum ScXMLDataPilotTableSourceCellRangeAttrTokens
602 : : {
603 : : XML_TOK_SOURCE_CELL_RANGE_ATTR_CELL_RANGE_ADDRESS,
604 : : XML_TOK_SOURCE_CELL_RANGE_ATTR_NAME
605 : : };
606 : :
607 : : enum ScXMLDataPilotFieldAttrTokens
608 : : {
609 : : XML_TOK_DATA_PILOT_FIELD_ATTR_SOURCE_FIELD_NAME,
610 : : XML_TOK_DATA_PILOT_FIELD_ATTR_DISPLAY_NAME,
611 : : XML_TOK_DATA_PILOT_FIELD_ATTR_DISPLAY_NAME_EXT,
612 : : XML_TOK_DATA_PILOT_FIELD_ATTR_IS_DATA_LAYOUT_FIELD,
613 : : XML_TOK_DATA_PILOT_FIELD_ATTR_FUNCTION,
614 : : XML_TOK_DATA_PILOT_FIELD_ATTR_ORIENTATION,
615 : : XML_TOK_DATA_PILOT_FIELD_ATTR_SELECTED_PAGE,
616 : : XML_TOK_DATA_PILOT_FIELD_ATTR_USED_HIERARCHY
617 : : };
618 : :
619 : : enum ScXMLDataPilotFieldElemTokens
620 : : {
621 : : XML_TOK_DATA_PILOT_FIELD_ELEM_DATA_PILOT_LEVEL,
622 : : XML_TOK_DATA_PILOT_FIELD_ELEM_DATA_PILOT_REFERENCE,
623 : : XML_TOK_DATA_PILOT_FIELD_ELEM_DATA_PILOT_GROUPS
624 : : };
625 : :
626 : : enum ScXMLDataPilotLevelAttrTokens
627 : : {
628 : : XML_TOK_DATA_PILOT_LEVEL_ATTR_SHOW_EMPTY
629 : : };
630 : :
631 : : enum ScXMLDataPilotLevelElemTokens
632 : : {
633 : : XML_TOK_DATA_PILOT_LEVEL_ELEM_DATA_PILOT_SUBTOTALS,
634 : : XML_TOK_DATA_PILOT_LEVEL_ELEM_DATA_PILOT_MEMBERS,
635 : : XML_TOK_DATA_PILOT_FIELD_ELEM_DATA_PILOT_DISPLAY_INFO,
636 : : XML_TOK_DATA_PILOT_FIELD_ELEM_DATA_PILOT_SORT_INFO,
637 : : XML_TOK_DATA_PILOT_FIELD_ELEM_DATA_PILOT_LAYOUT_INFO
638 : : };
639 : :
640 : : enum ScXMLDataPilotSubTotalsElemTokens
641 : : {
642 : : XML_TOK_DATA_PILOT_SUBTOTALS_ELEM_DATA_PILOT_SUBTOTAL
643 : : };
644 : :
645 : : enum ScXMLDataPilotSubTotalAttrTokens
646 : : {
647 : : XML_TOK_DATA_PILOT_SUBTOTAL_ATTR_FUNCTION,
648 : : XML_TOK_DATA_PILOT_SUBTOTAL_ATTR_DISPLAY_NAME,
649 : : XML_TOK_DATA_PILOT_SUBTOTAL_ATTR_DISPLAY_NAME_EXT
650 : : };
651 : :
652 : : enum ScXMLDataPilotMembersElemTokens
653 : : {
654 : : XML_TOK_DATA_PILOT_MEMBERS_ELEM_DATA_PILOT_MEMBER
655 : : };
656 : :
657 : : enum ScXMLDataPilotMemberAttrTokens
658 : : {
659 : : XML_TOK_DATA_PILOT_MEMBER_ATTR_NAME,
660 : : XML_TOK_DATA_PILOT_MEMBER_ATTR_DISPLAY_NAME,
661 : : XML_TOK_DATA_PILOT_MEMBER_ATTR_DISPLAY_NAME_EXT,
662 : : XML_TOK_DATA_PILOT_MEMBER_ATTR_DISPLAY,
663 : : XML_TOK_DATA_PILOT_MEMBER_ATTR_SHOW_DETAILS
664 : : };
665 : :
666 : : enum ScXMLConsolidationAttrTokens
667 : : {
668 : : XML_TOK_CONSOLIDATION_ATTR_FUNCTION,
669 : : XML_TOK_CONSOLIDATION_ATTR_SOURCE_RANGES,
670 : : XML_TOK_CONSOLIDATION_ATTR_TARGET_ADDRESS,
671 : : XML_TOK_CONSOLIDATION_ATTR_USE_LABEL,
672 : : XML_TOK_CONSOLIDATION_ATTR_LINK_TO_SOURCE
673 : : };
674 : :
675 : :
676 : : class SvXMLTokenMap;
677 : : class XMLShapeImportHelper;
678 : : class ScXMLChangeTrackingImportHelper;
679 : : class SolarMutexGuard;
680 : :
681 : : struct tScMyCellRange
682 : : {
683 : : SCTAB Sheet;
684 : : sal_Int32 StartColumn, EndColumn;
685 : : sal_Int32 StartRow, EndRow;
686 : : };
687 : :
688 : 148 : struct ScMyNamedExpression
689 : : {
690 : : rtl::OUString sName;
691 : : rtl::OUString sContent;
692 : : rtl::OUString sContentNmsp;
693 : : rtl::OUString sBaseCellAddress;
694 : : rtl::OUString sRangeType;
695 : : formula::FormulaGrammar::Grammar eGrammar;
696 : : bool bIsExpression;
697 : : };
698 : :
699 : : typedef ::boost::ptr_list<ScMyNamedExpression> ScMyNamedExpressions;
700 : :
701 : 0 : struct ScMyLabelRange
702 : : {
703 : : rtl::OUString sLabelRangeStr;
704 : : rtl::OUString sDataRangeStr;
705 : : bool bColumnOrientation;
706 : : };
707 : :
708 : : typedef std::list<const ScMyLabelRange*> ScMyLabelRanges;
709 : :
710 : 156 : struct ScMyImportValidation
711 : : {
712 : : rtl::OUString sName;
713 : : rtl::OUString sImputTitle;
714 : : rtl::OUString sImputMessage;
715 : : rtl::OUString sErrorTitle;
716 : : rtl::OUString sErrorMessage;
717 : : rtl::OUString sFormula1;
718 : : rtl::OUString sFormula2;
719 : : rtl::OUString sFormulaNmsp1;
720 : : rtl::OUString sFormulaNmsp2;
721 : : rtl::OUString sBaseCellAddress; // string is used directly
722 : : com::sun::star::sheet::ValidationAlertStyle aAlertStyle;
723 : : com::sun::star::sheet::ValidationType aValidationType;
724 : : com::sun::star::sheet::ConditionOperator aOperator;
725 : : formula::FormulaGrammar::Grammar eGrammar1;
726 : : formula::FormulaGrammar::Grammar eGrammar2;
727 : : sal_Int16 nShowList;
728 : : bool bShowErrorMessage;
729 : : bool bShowImputMessage;
730 : : bool bIgnoreBlanks;
731 : : };
732 : :
733 : : typedef std::vector<ScMyImportValidation> ScMyImportValidations;
734 : : typedef std::list<SvXMLImportContext*> ScMyViewContextList;
735 : : class ScMyStylesImportHelper;
736 : :
737 : : class ScXMLImport: public SvXMLImport
738 : : {
739 : : typedef ::boost::unordered_map< ::rtl::OUString, sal_Int16, ::rtl::OUStringHash > CellTypeMap;
740 : : typedef ::boost::ptr_map<SCTAB, ScMyNamedExpressions> SheetNamedExpMap;
741 : :
742 : : CellTypeMap aCellTypeMap;
743 : :
744 : : ScDocument* pDoc;
745 : : ScXMLChangeTrackingImportHelper* pChangeTrackingImportHelper;
746 : : ScMyViewContextList aViewContextList;
747 : : ScMyStylesImportHelper* pStylesImportHelper;
748 : : rtl::OUString sNumberFormat;
749 : : rtl::OUString sLocale;
750 : : rtl::OUString sCellStyle;
751 : : rtl::OUString sStandardFormat;
752 : : rtl::OUString sType;
753 : :
754 : : UniReference < XMLPropertyHandlerFactory > xScPropHdlFactory;
755 : : UniReference < XMLPropertySetMapper > xCellStylesPropertySetMapper;
756 : : UniReference < XMLPropertySetMapper > xColumnStylesPropertySetMapper;
757 : : UniReference < XMLPropertySetMapper > xRowStylesPropertySetMapper;
758 : : UniReference < XMLPropertySetMapper > xTableStylesPropertySetMapper;
759 : :
760 : : SvXMLTokenMap *pDocElemTokenMap;
761 : : SvXMLTokenMap *pStylesElemTokenMap;
762 : : SvXMLTokenMap *pStylesAttrTokenMap;
763 : : SvXMLTokenMap *pStyleElemTokenMap;
764 : : SvXMLTokenMap *pBodyElemTokenMap;
765 : : SvXMLTokenMap *pContentValidationsElemTokenMap;
766 : : SvXMLTokenMap *pContentValidationElemTokenMap;
767 : : SvXMLTokenMap *pContentValidationAttrTokenMap;
768 : : SvXMLTokenMap *pContentValidationMessageElemTokenMap;
769 : : SvXMLTokenMap *pContentValidationHelpMessageAttrTokenMap;
770 : : SvXMLTokenMap *pContentValidationErrorMessageAttrTokenMap;
771 : : SvXMLTokenMap *pContentValidationErrorMacroAttrTokenMap;
772 : : SvXMLTokenMap *pCondFormatsTokenMap;
773 : : SvXMLTokenMap *pCondFormatTokenMap;
774 : : SvXMLTokenMap *pCondFormatAttrMap;
775 : : SvXMLTokenMap *pConditionAttrMap;
776 : : SvXMLTokenMap *pColorScaleTokenMap;
777 : : SvXMLTokenMap *pColorScaleEntryAttrTokenMap;
778 : : SvXMLTokenMap *pDataBarTokenMap;
779 : : SvXMLTokenMap *pDataBarAttrMap;
780 : : SvXMLTokenMap *pDataBarEntryAttrMap;
781 : : SvXMLTokenMap *pLabelRangesElemTokenMap;
782 : : SvXMLTokenMap *pLabelRangeAttrTokenMap;
783 : : SvXMLTokenMap *pTableElemTokenMap;
784 : : SvXMLTokenMap *pTableProtectionElemTokenMap;
785 : : SvXMLTokenMap *pTableRowsElemTokenMap;
786 : : SvXMLTokenMap *pTableColsElemTokenMap;
787 : : SvXMLTokenMap *pTableScenarioAttrTokenMap;
788 : : SvXMLTokenMap *pTableAttrTokenMap;
789 : : SvXMLTokenMap *pTableColAttrTokenMap;
790 : : SvXMLTokenMap *pTableRowElemTokenMap;
791 : : SvXMLTokenMap *pTableRowAttrTokenMap;
792 : : SvXMLTokenMap *pTableRowCellElemTokenMap;
793 : : SvXMLTokenMap *pTableRowCellAttrTokenMap;
794 : : SvXMLTokenMap *pTableAnnotationAttrTokenMap;
795 : : SvXMLTokenMap *pDetectiveElemTokenMap;
796 : : SvXMLTokenMap *pDetectiveHighlightedAttrTokenMap;
797 : : SvXMLTokenMap *pDetectiveOperationAttrTokenMap;
798 : : SvXMLTokenMap *pTableCellRangeSourceAttrTokenMap;
799 : : SvXMLTokenMap *pNamedExpressionsElemTokenMap;
800 : : SvXMLTokenMap *pNamedRangeAttrTokenMap;
801 : : SvXMLTokenMap *pNamedExpressionAttrTokenMap;
802 : : SvXMLTokenMap *pDatabaseRangesElemTokenMap;
803 : : SvXMLTokenMap *pDatabaseRangeElemTokenMap;
804 : : SvXMLTokenMap *pDatabaseRangeAttrTokenMap;
805 : : SvXMLTokenMap *pDatabaseRangeSourceSQLAttrTokenMap;
806 : : SvXMLTokenMap *pDatabaseRangeSourceTableAttrTokenMap;
807 : : SvXMLTokenMap *pDatabaseRangeSourceQueryAttrTokenMap;
808 : : SvXMLTokenMap *pFilterElemTokenMap;
809 : : SvXMLTokenMap *pFilterAttrTokenMap;
810 : : SvXMLTokenMap *pFilterConditionElemTokenMap;
811 : : SvXMLTokenMap *pFilterConditionAttrTokenMap;
812 : : SvXMLTokenMap *pFilterSetItemAttrTokenMap;
813 : : SvXMLTokenMap *pSortElemTokenMap;
814 : : SvXMLTokenMap *pSortAttrTokenMap;
815 : : SvXMLTokenMap *pSortSortByAttrTokenMap;
816 : : SvXMLTokenMap *pDatabaseRangeSubTotalRulesElemTokenMap;
817 : : SvXMLTokenMap *pDatabaseRangeSubTotalRulesAttrTokenMap;
818 : : SvXMLTokenMap *pSubTotalRulesSortGroupsAttrTokenMap;
819 : : SvXMLTokenMap *pSubTotalRulesSubTotalRuleElemTokenMap;
820 : : SvXMLTokenMap *pSubTotalRulesSubTotalRuleAttrTokenMap;
821 : : SvXMLTokenMap *pSubTotalRuleSubTotalFieldAttrTokenMap;
822 : : SvXMLTokenMap *pDataPilotTablesElemTokenMap;
823 : : SvXMLTokenMap *pDataPilotTableAttrTokenMap;
824 : : SvXMLTokenMap *pDataPilotTableElemTokenMap;
825 : : SvXMLTokenMap *pDataPilotTableSourceServiceAttrTokenMap;
826 : : SvXMLTokenMap *pDataPilotGrandTotalAttrTokenMap;
827 : : SvXMLTokenMap *pDataPilotTableSourceCellRangeElemTokenMap;
828 : : SvXMLTokenMap *pDataPilotTableSourceCellRangeAttrTokenMap;
829 : : SvXMLTokenMap *pDataPilotFieldAttrTokenMap;
830 : : SvXMLTokenMap *pDataPilotFieldElemTokenMap;
831 : : SvXMLTokenMap *pDataPilotLevelAttrTokenMap;
832 : : SvXMLTokenMap *pDataPilotLevelElemTokenMap;
833 : : SvXMLTokenMap *pDataPilotSubTotalsElemTokenMap;
834 : : SvXMLTokenMap *pDataPilotSubTotalAttrTokenMap;
835 : : SvXMLTokenMap *pDataPilotMembersElemTokenMap;
836 : : SvXMLTokenMap *pDataPilotMemberAttrTokenMap;
837 : : SvXMLTokenMap *pConsolidationAttrTokenMap;
838 : :
839 : : ScMyTables aTables;
840 : :
841 : : ScMyNamedExpressions* pMyNamedExpressions;
842 : : SheetNamedExpMap maSheetNamedExpressions;
843 : :
844 : : ScMyLabelRanges* pMyLabelRanges;
845 : : ScMyImportValidations* pValidations;
846 : : ScMyImpDetectiveOpArray* pDetectiveOpArray;
847 : : SolarMutexGuard* pSolarMutexGuard;
848 : :
849 : : std::vector<rtl::OUString> aTableStyles;
850 : : XMLNumberFormatAttributesExportHelper* pNumberFormatAttributesExportHelper;
851 : : ScMyStyleNumberFormats* pStyleNumberFormats;
852 : : com::sun::star::uno::Reference <com::sun::star::util::XNumberFormats> xNumberFormats;
853 : : com::sun::star::uno::Reference <com::sun::star::util::XNumberFormatTypes> xNumberFormatTypes;
854 : :
855 : : com::sun::star::uno::Reference <com::sun::star::sheet::XSheetCellRangeContainer> xSheetCellRanges;
856 : :
857 : : rtl::OUString sEmpty;
858 : : rtl::OUString sPrevStyleName;
859 : : rtl::OUString sPrevCurrency;
860 : : sal_uInt32 nSolarMutexLocked;
861 : : sal_Int32 nProgressCount;
862 : : sal_uInt16 nStyleFamilyMask;// Mask of styles to load
863 : : sal_Int16 nPrevCellType;
864 : : bool bLoadDoc; // Load doc or styles only
865 : : bool bRemoveLastChar;
866 : : bool bNullDateSetted;
867 : : bool bSelfImportingXMLSet;
868 : : bool bLatinDefaultStyle; // latin-only number format in default style?
869 : : bool bFromWrapper; // called from ScDocShell / ScXMLImportWrapper?
870 : : bool mbHasNewCondFormatData;
871 : :
872 : :
873 : : protected:
874 : :
875 : : // This method is called after the namespace map has been updated, but
876 : : // before a context for the current element has been pushed.
877 : : virtual SvXMLImportContext *CreateContext(sal_uInt16 nPrefix,
878 : : const ::rtl::OUString& rLocalName,
879 : : const ::com::sun::star::uno::Reference<
880 : : ::com::sun::star::xml::sax::XAttributeList>& xAttrList );
881 : : virtual XMLShapeImportHelper* CreateShapeImport();
882 : :
883 : : public:
884 : : // #110680#
885 : : ScXMLImport(
886 : : const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xServiceFactory,
887 : : const sal_uInt16 nImportFlag);
888 : :
889 : : ~ScXMLImport() throw();
890 : :
891 : : // namespace office
892 : : // NB: in contrast to other CreateFooContexts, this particular one handles
893 : : // the root element (i.e. office:document-meta)
894 : : SvXMLImportContext *CreateMetaContext(
895 : : const ::rtl::OUString& rLocalName );
896 : : SvXMLImportContext *CreateFontDeclsContext(const sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName,
897 : : const com::sun::star::uno::Reference<com::sun::star::xml::sax::XAttributeList>& xAttrList);
898 : : SvXMLImportContext *CreateScriptContext(
899 : : const ::rtl::OUString& rLocalName );
900 : : SvXMLImportContext *CreateStylesContext(const ::rtl::OUString& rLocalName,
901 : : const com::sun::star::uno::Reference<com::sun::star::xml::sax::XAttributeList>& xAttrList, bool bAutoStyles );
902 : : SvXMLImportContext *CreateBodyContext(
903 : : const ::rtl::OUString& rLocalName,
904 : : const ::com::sun::star::uno::Reference<com::sun::star::xml::sax::XAttributeList>& xAttrList );
905 : :
906 : : virtual void SetStatistics(
907 : : const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::NamedValue> & i_rStats);
908 : :
909 : 16211 : inline ScDocument* GetDocument() { return pDoc; }
910 : 105 : inline const ScDocument* GetDocument() const { return pDoc; }
911 : :
912 : 65650 : ScMyTables& GetTables() { return aTables; }
913 : :
914 : : sal_uInt16 GetStyleFamilyMask() const { return nStyleFamilyMask; }
915 : 186 : bool IsStylesOnlyMode() const { return !bLoadDoc; }
916 : :
917 : 3959 : bool IsLatinDefaultStyle() const { return bLatinDefaultStyle; }
918 : :
919 : : sal_Int16 GetCellType(const ::rtl::OUString& rStrValue) const;
920 : :
921 : 130 : UniReference < XMLPropertySetMapper > GetCellStylesPropertySetMapper() const { return xCellStylesPropertySetMapper; }
922 : 93 : UniReference < XMLPropertySetMapper > GetColumnStylesPropertySetMapper() const { return xColumnStylesPropertySetMapper; }
923 : 93 : UniReference < XMLPropertySetMapper > GetRowStylesPropertySetMapper() const { return xRowStylesPropertySetMapper; }
924 : 93 : UniReference < XMLPropertySetMapper > GetTableStylesPropertySetMapper() const { return xTableStylesPropertySetMapper; }
925 : :
926 : : const SvXMLTokenMap& GetDocElemTokenMap();
927 : : const SvXMLTokenMap& GetBodyElemTokenMap();
928 : : const SvXMLTokenMap& GetContentValidationsElemTokenMap();
929 : : const SvXMLTokenMap& GetContentValidationElemTokenMap();
930 : : const SvXMLTokenMap& GetContentValidationAttrTokenMap();
931 : : const SvXMLTokenMap& GetContentValidationMessageElemTokenMap();
932 : : const SvXMLTokenMap& GetContentValidationHelpMessageAttrTokenMap();
933 : : const SvXMLTokenMap& GetContentValidationErrorMessageAttrTokenMap();
934 : : const SvXMLTokenMap& GetContentValidationErrorMacroAttrTokenMap();
935 : : const SvXMLTokenMap& GetCondFormatsTokenMap();
936 : : const SvXMLTokenMap& GetCondFormatTokenMap();
937 : : const SvXMLTokenMap& GetCondFormatAttrMap();
938 : : const SvXMLTokenMap& GetConditionAttrMap();
939 : : const SvXMLTokenMap& GetColorScaleTokenMap();
940 : : const SvXMLTokenMap& GetColorScaleEntryAttrMap();
941 : : const SvXMLTokenMap& GetDataBarTokenMap();
942 : : const SvXMLTokenMap& GetDataBarAttrMap();
943 : : const SvXMLTokenMap& GetDataBarEntryAttrMap();
944 : : const SvXMLTokenMap& GetLabelRangesElemTokenMap();
945 : : const SvXMLTokenMap& GetLabelRangeAttrTokenMap();
946 : : const SvXMLTokenMap& GetTableElemTokenMap();
947 : : const SvXMLTokenMap& GetTableProtectionAttrTokenMap();
948 : : const SvXMLTokenMap& GetTableRowsElemTokenMap();
949 : : const SvXMLTokenMap& GetTableColsElemTokenMap();
950 : : const SvXMLTokenMap& GetTableAttrTokenMap();
951 : : const SvXMLTokenMap& GetTableScenarioAttrTokenMap();
952 : : const SvXMLTokenMap& GetTableColAttrTokenMap();
953 : : const SvXMLTokenMap& GetTableRowElemTokenMap();
954 : : const SvXMLTokenMap& GetTableRowAttrTokenMap();
955 : : const SvXMLTokenMap& GetTableRowCellElemTokenMap();
956 : : const SvXMLTokenMap& GetTableRowCellAttrTokenMap();
957 : : const SvXMLTokenMap& GetTableAnnotationAttrTokenMap();
958 : : const SvXMLTokenMap& GetDetectiveElemTokenMap();
959 : : const SvXMLTokenMap& GetDetectiveHighlightedAttrTokenMap();
960 : : const SvXMLTokenMap& GetDetectiveOperationAttrTokenMap();
961 : : const SvXMLTokenMap& GetTableCellRangeSourceAttrTokenMap();
962 : : const SvXMLTokenMap& GetNamedExpressionsElemTokenMap();
963 : : const SvXMLTokenMap& GetNamedRangeAttrTokenMap();
964 : : const SvXMLTokenMap& GetNamedExpressionAttrTokenMap();
965 : : const SvXMLTokenMap& GetDatabaseRangesElemTokenMap();
966 : : const SvXMLTokenMap& GetDatabaseRangeElemTokenMap();
967 : : const SvXMLTokenMap& GetDatabaseRangeAttrTokenMap();
968 : : const SvXMLTokenMap& GetDatabaseRangeSourceSQLAttrTokenMap();
969 : : const SvXMLTokenMap& GetDatabaseRangeSourceTableAttrTokenMap();
970 : : const SvXMLTokenMap& GetDatabaseRangeSourceQueryAttrTokenMap();
971 : : const SvXMLTokenMap& GetFilterElemTokenMap();
972 : : const SvXMLTokenMap& GetFilterAttrTokenMap();
973 : : const SvXMLTokenMap& GetFilterConditionElemTokenMap();
974 : : const SvXMLTokenMap& GetFilterConditionAttrTokenMap();
975 : : const SvXMLTokenMap& GetFilterSetItemAttrTokenMap();
976 : : const SvXMLTokenMap& GetSortElemTokenMap();
977 : : const SvXMLTokenMap& GetSortAttrTokenMap();
978 : : const SvXMLTokenMap& GetSortSortByAttrTokenMap();
979 : : const SvXMLTokenMap& GetDatabaseRangeSubTotalRulesElemTokenMap();
980 : : const SvXMLTokenMap& GetDatabaseRangeSubTotalRulesAttrTokenMap();
981 : : const SvXMLTokenMap& GetSubTotalRulesSortGroupsAttrTokenMap();
982 : : const SvXMLTokenMap& GetSubTotalRulesSubTotalRuleElemTokenMap();
983 : : const SvXMLTokenMap& GetSubTotalRulesSubTotalRuleAttrTokenMap();
984 : : const SvXMLTokenMap& GetSubTotalRuleSubTotalFieldAttrTokenMap();
985 : : const SvXMLTokenMap& GetDataPilotTablesElemTokenMap();
986 : : const SvXMLTokenMap& GetDataPilotTableAttrTokenMap();
987 : : const SvXMLTokenMap& GetDataPilotTableElemTokenMap();
988 : : const SvXMLTokenMap& GetDataPilotTableSourceServiceAttrTokenMap();
989 : : const SvXMLTokenMap& GetDataPilotGrandTotalAttrTokenMap();
990 : : const SvXMLTokenMap& GetDataPilotTableSourceCellRangeElemTokenMap();
991 : : const SvXMLTokenMap& GetDataPilotTableSourceCellRangeAttrTokenMap();
992 : : const SvXMLTokenMap& GetDataPilotFieldAttrTokenMap();
993 : : const SvXMLTokenMap& GetDataPilotFieldElemTokenMap();
994 : : const SvXMLTokenMap& GetDataPilotLevelAttrTokenMap();
995 : : const SvXMLTokenMap& GetDataPilotLevelElemTokenMap();
996 : : const SvXMLTokenMap& GetDataPilotSubTotalsElemTokenMap();
997 : : const SvXMLTokenMap& GetDataPilotSubTotalAttrTokenMap();
998 : : const SvXMLTokenMap& GetDataPilotMembersElemTokenMap();
999 : : const SvXMLTokenMap& GetDataPilotMemberAttrTokenMap();
1000 : : const SvXMLTokenMap& GetConsolidationAttrTokenMap();
1001 : :
1002 : 56 : void AddNamedExpression(ScMyNamedExpression* pMyNamedExpression)
1003 : : {
1004 [ + + ]: 56 : if (!pMyNamedExpressions)
1005 [ + - ]: 17 : pMyNamedExpressions = new ScMyNamedExpressions();
1006 : 56 : pMyNamedExpressions->push_back(pMyNamedExpression);
1007 : 56 : }
1008 : :
1009 : 93 : ScMyNamedExpressions* GetNamedExpressions() { return pMyNamedExpressions; }
1010 : :
1011 : : void AddNamedExpression(SCTAB nTab, ScMyNamedExpression* pNamedExp);
1012 : :
1013 : 0 : void AddLabelRange(const ScMyLabelRange* pMyLabelRange) {
1014 [ # # ]: 0 : if (!pMyLabelRanges)
1015 [ # # ]: 0 : pMyLabelRanges = new ScMyLabelRanges();
1016 : 0 : pMyLabelRanges->push_back(pMyLabelRange); }
1017 : 93 : ScMyLabelRanges* GetLabelRanges() { return pMyLabelRanges; }
1018 : :
1019 : 6 : void AddValidation(const ScMyImportValidation& rValidation) {
1020 [ + + ]: 6 : if (!pValidations)
1021 [ + - ]: 3 : pValidations = new ScMyImportValidations();
1022 : 6 : pValidations->push_back(rValidation); }
1023 : : bool GetValidation(const rtl::OUString& sName, ScMyImportValidation& aValidation);
1024 : :
1025 : 93 : inline ScMyImpDetectiveOpArray* GetDetectiveOpArray() {
1026 [ + - ]: 93 : if (!pDetectiveOpArray)
1027 [ + - ]: 93 : pDetectiveOpArray = new ScMyImpDetectiveOpArray();
1028 : 93 : return pDetectiveOpArray; }
1029 : :
1030 : 10487 : void SetRemoveLastChar(bool bValue) { bRemoveLastChar = bValue; }
1031 : 978 : bool GetRemoveLastChar() { return bRemoveLastChar; }
1032 : :
1033 : : ScXMLChangeTrackingImportHelper* GetChangeTrackingImportHelper();
1034 : : void AddViewContext(SvXMLImportContext* pContext) { aViewContextList.push_back(pContext); }
1035 : : void InsertStyles();
1036 : :
1037 : : void SetChangeTrackingViewSettings(const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>& rChangeProps);
1038 : : virtual void SetViewSettings(const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>& aViewProps);
1039 : : virtual void SetConfigurationSettings(const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>& aConfigProps);
1040 : :
1041 : 224 : void SetTableStyle(const rtl::OUString& rValue) { aTableStyles.push_back(rValue); }
1042 : : std::vector<rtl::OUString> GetTableStyle() { return aTableStyles; }
1043 : 28005 : ScMyStylesImportHelper* GetStylesImportHelper() { return pStylesImportHelper; }
1044 : : sal_Int32 SetCurrencySymbol(const sal_Int32 nKey, const rtl::OUString& rCurrency);
1045 : : bool IsCurrencySymbol(const sal_Int32 nNumberFormat, const rtl::OUString& sCurrencySymbol, const rtl::OUString& sBankSymbol);
1046 : : void SetType(com::sun::star::uno::Reference <com::sun::star::beans::XPropertySet>& rProperties,
1047 : : sal_Int32& rNumberFormat,
1048 : : const sal_Int16 nCellType,
1049 : : const rtl::OUString& rCurrency);
1050 : :
1051 : : void ProgressBarIncrement(bool bEditCell, sal_Int32 nInc = 1);
1052 : :
1053 : 3 : void SetNewCondFormatData() { mbHasNewCondFormatData = true; }
1054 : 863 : bool HasNewCondFormatData() { return mbHasNewCondFormatData; }
1055 : :
1056 : : private:
1057 : : void AddStyleRange(const com::sun::star::table::CellRangeAddress& rCellRange);
1058 : : void SetStyleToRanges();
1059 : :
1060 : : void ExamineDefaultStyle();
1061 : : public:
1062 : : void SetStyleToRange(const ScRange& rRange, const rtl::OUString* pStyleName,
1063 : : const sal_Int16 nCellType, const rtl::OUString* pCurrency);
1064 : : bool SetNullDateOnUnitConverter();
1065 : : XMLNumberFormatAttributesExportHelper* GetNumberFormatAttributesExportHelper();
1066 : : ScMyStyleNumberFormats* GetStyleNumberFormats();
1067 : :
1068 : : void SetStylesToRangesFinished();
1069 : :
1070 : : // XImporter
1071 : : virtual void SAL_CALL setTargetDocument( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent >& xDoc ) throw(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
1072 : :
1073 : : // XServiceInfo
1074 : : virtual ::rtl::OUString SAL_CALL getImplementationName( ) throw(::com::sun::star::uno::RuntimeException);
1075 : :
1076 : : virtual void SAL_CALL startDocument(void)
1077 : : throw( ::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException );
1078 : : virtual void SAL_CALL endDocument(void)
1079 : : throw( ::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException );
1080 : :
1081 : : virtual void DisposingModel();
1082 : :
1083 : : /**
1084 : : * Use this class to manage solar mutex locking instead of calling
1085 : : * LockSolarMutex() and UnlockSolarMutex() directly.
1086 : : */
1087 : : class MutexGuard
1088 : : {
1089 : : public:
1090 : : explicit MutexGuard(ScXMLImport& rImport);
1091 : : ~MutexGuard();
1092 : : private:
1093 : : ScXMLImport& mrImport;
1094 : : };
1095 : : void LockSolarMutex();
1096 : : void UnlockSolarMutex();
1097 : :
1098 : : sal_Int32 GetByteOffset();
1099 : :
1100 : : void SetRangeOverflowType(sal_uInt32 nType);
1101 : :
1102 : : sal_Int32 GetRangeType(const rtl::OUString sRangeType) const;
1103 : : void SetNamedRanges();
1104 : : void SetSheetNamedRanges();
1105 : : void SetLabelRanges();
1106 : : void AddDefaultNote( const com::sun::star::table::CellAddress& aCell );
1107 : :
1108 : : /** Extracts the formula string, the formula grammar namespace URL, and a
1109 : : grammar enum value from the passed formula attribute value.
1110 : :
1111 : : @param rFormula
1112 : : (out-parameter) Returns the plain formula string with the leading
1113 : : equality sign if existing.
1114 : :
1115 : : @param rFormulaNmsp
1116 : : (out-parameter) Returns the URL of the formula grammar namespace if
1117 : : the attribute value contains the prefix of an unknown namespace.
1118 : :
1119 : : @param reGrammar
1120 : : (out-parameter) Returns the exact formula grammar if the formula
1121 : : is in a supported ODF format (e.g. FormulaGrammar::GRAM_PODF for
1122 : : ODF 1.0/1.1 formulas, or FormulaGrammar::GRAM_ODFF for ODF 1.2
1123 : : formulas a.k.a. OpenFormula). Returns the default storage grammar,
1124 : : if the attribute value does not contain a namespace prefix. Returns
1125 : : the special value FormulaGrammar::GRAM_EXTERNAL, if an unknown
1126 : : namespace could be extracted from the formula which will be
1127 : : contained in the parameter rFormulaNmsp then.
1128 : :
1129 : : @param rAttrValue
1130 : : The value of the processed formula attribute.
1131 : :
1132 : : @param bRestrictToExternalNmsp
1133 : : If set to true, only namespaces of external formula grammars will
1134 : : be recognized. Internal namespace prefixes (e.g. 'oooc:' or 'of:'
1135 : : will be considered to be part of the formula, e.g. an expression
1136 : : with range operator.
1137 : : */
1138 : : void ExtractFormulaNamespaceGrammar(
1139 : : ::rtl::OUString& rFormula,
1140 : : ::rtl::OUString& rFormulaNmsp,
1141 : : ::formula::FormulaGrammar::Grammar& reGrammar,
1142 : : const ::rtl::OUString& rAttrValue,
1143 : : bool bRestrictToExternalNmsp = false ) const;
1144 : : };
1145 : :
1146 : : #endif
1147 : :
1148 : : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|