Line data Source code
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 : #ifndef SC_XMLIMPRT_HXX
21 : #define SC_XMLIMPRT_HXX
22 :
23 : #include <rsc/rscsfx.hxx>
24 : #include <xmloff/xmlictxt.hxx>
25 : #include <xmloff/xmlimp.hxx>
26 : #include <xmloff/xmltkmap.hxx>
27 : #include <xmloff/xmlaustp.hxx>
28 : #include <xmloff/xmlstyle.hxx>
29 : #include <com/sun/star/frame/XModel.hpp>
30 : #include <com/sun/star/util/DateTime.hpp>
31 : #include "xmlsubti.hxx"
32 : #include "global.hxx"
33 : #include "formula/grammar.hxx"
34 :
35 : #include "xmlstyle.hxx"
36 : #include "XMLDetectiveContext.hxx"
37 : #include <com/sun/star/sheet/ValidationAlertStyle.hpp>
38 : #include <com/sun/star/sheet/ValidationType.hpp>
39 : #include <com/sun/star/sheet/ConditionOperator.hpp>
40 : #include <com/sun/star/table/CellAddress.hpp>
41 : #include <com/sun/star/beans/XPropertySet.hpp>
42 : #include <com/sun/star/util/XNumberFormatTypes.hpp>
43 : #include <com/sun/star/sheet/XSheetCellRangeContainer.hpp>
44 :
45 : #include <vector>
46 : #include <boost/unordered_map.hpp>
47 : #include <boost/ptr_container/ptr_list.hpp>
48 : #include <boost/ptr_container/ptr_map.hpp>
49 :
50 : class ScMyStyleNumberFormats;
51 : class XMLNumberFormatAttributesExportHelper;
52 :
53 : enum ScXMLDocTokens
54 : {
55 : XML_TOK_DOC_FONTDECLS,
56 : XML_TOK_DOC_STYLES,
57 : XML_TOK_DOC_AUTOSTYLES,
58 : XML_TOK_DOC_MASTERSTYLES,
59 : XML_TOK_DOC_META,
60 : XML_TOK_DOC_SCRIPTS,
61 : XML_TOK_DOC_BODY,
62 : XML_TOK_DOC_SETTINGS,
63 : XML_TOK_OFFICE_END=XML_TOK_UNKNOWN
64 : };
65 :
66 : enum ScXMLStylesTokens
67 : {
68 : XML_TOK_STYLES_STYLE
69 : };
70 :
71 : enum ScXMLStylesAttrTokens
72 : {
73 : XML_TOK_STYLES_STYLE_NAME,
74 : XML_TOK_STYLES_STYLE_FAMILY,
75 : XML_TOK_STYLES_STYLE_PARENT_STYLE_NAME
76 : };
77 :
78 : enum ScXMLStyleTokens
79 : {
80 : XML_TOK_STYLE_PROPERTIES
81 : };
82 :
83 : enum ScXMLBodyTokens
84 : {
85 : XML_TOK_BODY_TRACKED_CHANGES,
86 : XML_TOK_BODY_CALCULATION_SETTINGS,
87 : XML_TOK_BODY_CONTENT_VALIDATIONS,
88 : XML_TOK_BODY_LABEL_RANGES,
89 : XML_TOK_BODY_TABLE,
90 : XML_TOK_BODY_NAMED_EXPRESSIONS,
91 : XML_TOK_BODY_DATABASE_RANGES,
92 : XML_TOK_BODY_DATABASE_RANGE,
93 : XML_TOK_BODY_DATA_PILOT_TABLES,
94 : XML_TOK_BODY_CONSOLIDATION,
95 : XML_TOK_BODY_DDE_LINKS
96 : };
97 :
98 : enum ScXMLContentValidationsElemTokens
99 : {
100 : XML_TOK_CONTENT_VALIDATION
101 : };
102 :
103 : enum ScXMLContentValidationElemTokens
104 : {
105 : XML_TOK_CONTENT_VALIDATION_ELEM_HELP_MESSAGE,
106 : XML_TOK_CONTENT_VALIDATION_ELEM_ERROR_MESSAGE,
107 : XML_TOK_CONTENT_VALIDATION_ELEM_ERROR_MACRO,
108 : XML_TOK_CONTENT_VALIDATION_ELEM_EVENT_LISTENERS
109 : };
110 :
111 : enum ScXMLContentValidationAttrTokens
112 : {
113 : XML_TOK_CONTENT_VALIDATION_NAME,
114 : XML_TOK_CONTENT_VALIDATION_CONDITION,
115 : XML_TOK_CONTENT_VALIDATION_BASE_CELL_ADDRESS,
116 : XML_TOK_CONTENT_VALIDATION_ALLOW_EMPTY_CELL,
117 : XML_TOK_CONTENT_VALIDATION_DISPLAY_LIST
118 : };
119 :
120 : enum ScXMLContentValidationMessageElemTokens
121 : {
122 : XML_TOK_P
123 : };
124 :
125 : enum ScXMLContentValidationHelpMessageAttrTokens
126 : {
127 : XML_TOK_HELP_MESSAGE_ATTR_TITLE,
128 : XML_TOK_HELP_MESSAGE_ATTR_DISPLAY
129 : };
130 :
131 : enum ScXMLContentValidationErrorMessageAttrTokens
132 : {
133 : XML_TOK_ERROR_MESSAGE_ATTR_TITLE,
134 : XML_TOK_ERROR_MESSAGE_ATTR_DISPLAY,
135 : XML_TOK_ERROR_MESSAGE_ATTR_MESSAGE_TYPE
136 : };
137 :
138 : enum ScXMLContentValidationErrorMacroAttrTokens
139 : {
140 : XML_TOK_ERROR_MACRO_ATTR_NAME,
141 : XML_TOK_ERROR_MACRO_ATTR_EXECUTE
142 : };
143 :
144 : enum ScXMLCondFormatsTokens
145 : {
146 : XML_TOK_CONDFORMATS_CONDFORMAT
147 : };
148 :
149 : enum ScXMLCondFormatTokens
150 : {
151 : XML_TOK_CONDFORMAT_COLORSCALE,
152 : XML_TOK_CONDFORMAT_DATABAR,
153 : XML_TOK_CONDFORMAT_CONDITION,
154 : XML_TOK_CONDFORMAT_ICONSET
155 : };
156 :
157 : enum ScXMLCondFormatAttrTokens
158 : {
159 : XML_TOK_CONDFORMAT_TARGET_RANGE
160 : };
161 :
162 : enum ScXMLConditionAttrTokens
163 : {
164 : XML_TOK_CONDITION_VALUE,
165 : XML_TOK_CONDITION_APPLY_STYLE_NAME,
166 : XML_TOK_CONDITION_BASE_CELL_ADDRESS
167 : };
168 :
169 : enum ScXMLColorScaleFormatTokens
170 : {
171 : XML_TOK_COLORSCALE_COLORSCALEENTRY
172 : };
173 :
174 : enum ScXMLColorScaleEntryAttrTokens
175 : {
176 : XML_TOK_COLORSCALEENTRY_TYPE,
177 : XML_TOK_COLORSCALEENTRY_VALUE,
178 : XML_TOK_COLORSCALEENTRY_COLOR
179 : };
180 :
181 : enum ScXMLFormattingFormatTokens
182 : {
183 : XML_TOK_DATABAR_DATABARENTRY,
184 : XML_TOK_FORMATTING_ENTRY
185 : };
186 :
187 : enum ScXMLDataBarAttrTokens
188 : {
189 : XML_TOK_DATABAR_POSITIVE_COLOR,
190 : XML_TOK_DATABAR_NEGATIVE_COLOR,
191 : XML_TOK_DATABAR_GRADIENT,
192 : XML_TOK_DATABAR_AXISPOSITION,
193 : XML_TOK_DATABAR_SHOWVALUE,
194 : XML_TOK_DATABAR_AXISCOLOR
195 : };
196 :
197 : enum ScXMLDataBarEntryAttrTokens
198 : {
199 : XML_TOK_DATABARENTRY_TYPE,
200 : XML_TOK_DATABARENTRY_VALUE
201 : };
202 :
203 : enum ScXMLIconSetAttrTokens
204 : {
205 : XML_TOK_ICONSET_TYPE
206 : };
207 :
208 : enum ScXMLLabelRangesElemTokens
209 : {
210 : XML_TOK_LABEL_RANGE_ELEM
211 : };
212 :
213 : enum ScXMLLabelRangeAttrTokens
214 : {
215 : XML_TOK_LABEL_RANGE_ATTR_LABEL_RANGE,
216 : XML_TOK_LABEL_RANGE_ATTR_DATA_RANGE,
217 : XML_TOK_LABEL_RANGE_ATTR_ORIENTATION
218 : };
219 :
220 : enum ScXMLTableTokens
221 : {
222 : XML_TOK_TABLE_NAMED_EXPRESSIONS,
223 : XML_TOK_TABLE_COL_GROUP,
224 : XML_TOK_TABLE_HEADER_COLS,
225 : XML_TOK_TABLE_COLS,
226 : XML_TOK_TABLE_COL,
227 : XML_TOK_TABLE_ROW_GROUP,
228 : XML_TOK_TABLE_HEADER_ROWS,
229 : XML_TOK_TABLE_PROTECTION,
230 : XML_TOK_TABLE_ROWS,
231 : XML_TOK_TABLE_ROW,
232 : XML_TOK_TABLE_SOURCE,
233 : XML_TOK_TABLE_SCENARIO,
234 : XML_TOK_TABLE_SHAPES,
235 : XML_TOK_TABLE_FORMS,
236 : XML_TOK_TABLE_EVENT_LISTENERS,
237 : XML_TOK_TABLE_EVENT_LISTENERS_EXT,
238 : XML_TOK_TABLE_CONDFORMATS
239 : };
240 :
241 : enum ScXMLTokenProtectionTokens
242 : {
243 : XML_TOK_TABLE_SELECT_PROTECTED_CELLS,
244 : XML_TOK_TABLE_SELECT_UNPROTECTED_CELLS
245 : };
246 :
247 : enum ScXMLTableRowsTokens
248 : {
249 : XML_TOK_TABLE_ROWS_ROW_GROUP,
250 : XML_TOK_TABLE_ROWS_HEADER_ROWS,
251 : XML_TOK_TABLE_ROWS_ROWS,
252 : XML_TOK_TABLE_ROWS_ROW
253 : };
254 :
255 : enum ScXMLTableColsTokens
256 : {
257 : XML_TOK_TABLE_COLS_COL_GROUP,
258 : XML_TOK_TABLE_COLS_HEADER_COLS,
259 : XML_TOK_TABLE_COLS_COLS,
260 : XML_TOK_TABLE_COLS_COL
261 : };
262 :
263 : enum ScXMLTableAttrTokens
264 : {
265 : XML_TOK_TABLE_NAME,
266 : XML_TOK_TABLE_STYLE_NAME,
267 : XML_TOK_TABLE_PROTECTED,
268 : XML_TOK_TABLE_PRINT_RANGES,
269 : XML_TOK_TABLE_PASSWORD,
270 : XML_TOK_TABLE_PASSHASH,
271 : XML_TOK_TABLE_PASSHASH_2,
272 : XML_TOK_TABLE_PRINT
273 : };
274 :
275 : enum ScXMLTableScenarioAttrTokens
276 : {
277 : XML_TOK_TABLE_SCENARIO_ATTR_DISPLAY_BORDER,
278 : XML_TOK_TABLE_SCENARIO_ATTR_BORDER_COLOR,
279 : XML_TOK_TABLE_SCENARIO_ATTR_COPY_BACK,
280 : XML_TOK_TABLE_SCENARIO_ATTR_COPY_STYLES,
281 : XML_TOK_TABLE_SCENARIO_ATTR_COPY_FORMULAS,
282 : XML_TOK_TABLE_SCENARIO_ATTR_IS_ACTIVE,
283 : XML_TOK_TABLE_SCENARIO_ATTR_SCENARIO_RANGES,
284 : XML_TOK_TABLE_SCENARIO_ATTR_COMMENT,
285 : XML_TOK_TABLE_SCENARIO_ATTR_PROTECTED
286 : };
287 :
288 : enum ScXMLTableColAttrTokens
289 : {
290 : XML_TOK_TABLE_COL_ATTR_STYLE_NAME,
291 : XML_TOK_TABLE_COL_ATTR_REPEATED,
292 : XML_TOK_TABLE_COL_ATTR_VISIBILITY,
293 : XML_TOK_TABLE_COL_ATTR_DEFAULT_CELL_STYLE_NAME
294 : };
295 :
296 : enum ScXMLTableRowTokens
297 : {
298 : XML_TOK_TABLE_ROW_CELL,
299 : XML_TOK_TABLE_ROW_COVERED_CELL
300 : };
301 :
302 : enum ScXMLTableRowAttrTokens
303 : {
304 : XML_TOK_TABLE_ROW_ATTR_STYLE_NAME,
305 : XML_TOK_TABLE_ROW_ATTR_VISIBILITY,
306 : XML_TOK_TABLE_ROW_ATTR_REPEATED,
307 : XML_TOK_TABLE_ROW_ATTR_DEFAULT_CELL_STYLE_NAME
308 : // XML_TOK_TABLE_ROW_ATTR_USE_OPTIMAL_HEIGHT
309 : };
310 :
311 : enum ScXMLTableRowCellTokens
312 : {
313 : XML_TOK_TABLE_ROW_CELL_P,
314 : XML_TOK_TABLE_ROW_CELL_TABLE,
315 : XML_TOK_TABLE_ROW_CELL_ANNOTATION,
316 : XML_TOK_TABLE_ROW_CELL_DETECTIVE,
317 : XML_TOK_TABLE_ROW_CELL_CELL_RANGE_SOURCE
318 : };
319 :
320 : enum ScXMLTableRowCellAttrTokens
321 : {
322 : XML_TOK_TABLE_ROW_CELL_ATTR_STYLE_NAME,
323 : XML_TOK_TABLE_ROW_CELL_ATTR_CONTENT_VALIDATION_NAME,
324 : XML_TOK_TABLE_ROW_CELL_ATTR_SPANNED_ROWS,
325 : XML_TOK_TABLE_ROW_CELL_ATTR_SPANNED_COLS,
326 : XML_TOK_TABLE_ROW_CELL_ATTR_SPANNED_MATRIX_COLS,
327 : XML_TOK_TABLE_ROW_CELL_ATTR_SPANNED_MATRIX_ROWS,
328 : XML_TOK_TABLE_ROW_CELL_ATTR_REPEATED,
329 : XML_TOK_TABLE_ROW_CELL_ATTR_VALUE_TYPE,
330 : XML_TOK_TABLE_ROW_CELL_ATTR_VALUE,
331 : XML_TOK_TABLE_ROW_CELL_ATTR_DATE_VALUE,
332 : XML_TOK_TABLE_ROW_CELL_ATTR_TIME_VALUE,
333 : XML_TOK_TABLE_ROW_CELL_ATTR_STRING_VALUE,
334 : XML_TOK_TABLE_ROW_CELL_ATTR_BOOLEAN_VALUE,
335 : XML_TOK_TABLE_ROW_CELL_ATTR_FORMULA,
336 : XML_TOK_TABLE_ROW_CELL_ATTR_CURRENCY
337 : };
338 :
339 : enum ScXMLAnnotationAttrTokens
340 : {
341 : XML_TOK_TABLE_ANNOTATION_ATTR_AUTHOR,
342 : XML_TOK_TABLE_ANNOTATION_ATTR_CREATE_DATE,
343 : XML_TOK_TABLE_ANNOTATION_ATTR_CREATE_DATE_STRING,
344 : XML_TOK_TABLE_ANNOTATION_ATTR_DISPLAY,
345 : XML_TOK_TABLE_ANNOTATION_ATTR_X,
346 : XML_TOK_TABLE_ANNOTATION_ATTR_Y
347 : };
348 :
349 : enum ScXMLDetectiveElemTokens
350 : {
351 : XML_TOK_DETECTIVE_ELEM_HIGHLIGHTED,
352 : XML_TOK_DETECTIVE_ELEM_OPERATION
353 : };
354 :
355 : enum ScXMLDetectiveHighlightedAttrTokens
356 : {
357 : XML_TOK_DETECTIVE_HIGHLIGHTED_ATTR_CELL_RANGE,
358 : XML_TOK_DETECTIVE_HIGHLIGHTED_ATTR_DIRECTION,
359 : XML_TOK_DETECTIVE_HIGHLIGHTED_ATTR_CONTAINS_ERROR,
360 : XML_TOK_DETECTIVE_HIGHLIGHTED_ATTR_MARKED_INVALID
361 : };
362 :
363 : enum ScXMLDetectiveOperationAttrTokens
364 : {
365 : XML_TOK_DETECTIVE_OPERATION_ATTR_NAME,
366 : XML_TOK_DETECTIVE_OPERATION_ATTR_INDEX
367 : };
368 :
369 : enum ScXMLCellRangeSourceAttrTokens
370 : {
371 : XML_TOK_TABLE_CELL_RANGE_SOURCE_ATTR_NAME,
372 : XML_TOK_TABLE_CELL_RANGE_SOURCE_ATTR_HREF,
373 : XML_TOK_TABLE_CELL_RANGE_SOURCE_ATTR_FILTER_NAME,
374 : XML_TOK_TABLE_CELL_RANGE_SOURCE_ATTR_FILTER_OPTIONS,
375 : XML_TOK_TABLE_CELL_RANGE_SOURCE_ATTR_LAST_COLUMN,
376 : XML_TOK_TABLE_CELL_RANGE_SOURCE_ATTR_LAST_ROW,
377 : XML_TOK_TABLE_CELL_RANGE_SOURCE_ATTR_REFRESH_DELAY
378 : };
379 :
380 : enum ScXMLNamedExpressionsTokens
381 : {
382 : XML_TOK_NAMED_EXPRESSIONS_NAMED_RANGE,
383 : XML_TOK_NAMED_EXPRESSIONS_NAMED_EXPRESSION
384 : };
385 :
386 : enum ScXMLNamedRangeAttrTokens
387 : {
388 : XML_TOK_NAMED_RANGE_ATTR_NAME,
389 : XML_TOK_NAMED_RANGE_ATTR_CELL_RANGE_ADDRESS,
390 : XML_TOK_NAMED_RANGE_ATTR_BASE_CELL_ADDRESS,
391 : XML_TOK_NAMED_RANGE_ATTR_RANGE_USABLE_AS
392 : };
393 :
394 : enum ScXMLNamedExpressionAttrTokens
395 : {
396 : XML_TOK_NAMED_EXPRESSION_ATTR_NAME,
397 : XML_TOK_NAMED_EXPRESSION_ATTR_BASE_CELL_ADDRESS,
398 : XML_TOK_NAMED_EXPRESSION_ATTR_EXPRESSION
399 : };
400 :
401 : enum ScXMLDatabaseRangesTokens
402 : {
403 : XML_TOK_DATABASE_RANGE
404 : };
405 :
406 : enum ScXMLDatabaseRangeTokens
407 : {
408 : XML_TOK_DATABASE_RANGE_SOURCE_SQL,
409 : XML_TOK_DATABASE_RANGE_SOURCE_TABLE,
410 : XML_TOK_DATABASE_RANGE_SOURCE_QUERY,
411 : XML_TOK_FILTER,
412 : XML_TOK_SORT,
413 : XML_TOK_DATABASE_RANGE_SUBTOTAL_RULES
414 : };
415 :
416 : enum ScXMLDatabaseRangeAttrTokens
417 : {
418 : XML_TOK_DATABASE_RANGE_ATTR_NAME,
419 : XML_TOK_DATABASE_RANGE_ATTR_IS_SELECTION,
420 : XML_TOK_DATABASE_RANGE_ATTR_ON_UPDATE_KEEP_STYLES,
421 : XML_TOK_DATABASE_RANGE_ATTR_ON_UPDATE_KEEP_SIZE,
422 : XML_TOK_DATABASE_RANGE_ATTR_HAS_PERSISTENT_DATA,
423 : XML_TOK_DATABASE_RANGE_ATTR_ORIENTATION,
424 : XML_TOK_DATABASE_RANGE_ATTR_CONTAINS_HEADER,
425 : XML_TOK_DATABASE_RANGE_ATTR_DISPLAY_FILTER_BUTTONS,
426 : XML_TOK_DATABASE_RANGE_ATTR_TARGET_RANGE_ADDRESS,
427 : XML_TOK_DATABASE_RANGE_ATTR_REFRESH_DELAY
428 : };
429 :
430 : enum ScXMLDatabaseRangeSourceSQLAttrTokens
431 : {
432 : XML_TOK_SOURCE_SQL_ATTR_DATABASE_NAME,
433 : XML_TOK_SOURCE_SQL_ATTR_HREF,
434 : XML_TOK_SOURCE_SQL_ATTR_CONNECTION_RESOURCE,
435 : XML_TOK_SOURCE_SQL_ATTR_SQL_STATEMENT,
436 : XML_TOK_SOURCE_SQL_ATTR_PARSE_SQL_STATEMENT
437 : };
438 :
439 : enum ScXMLDatabaseRangeSourceTableAttrTokens
440 : {
441 : XML_TOK_SOURCE_TABLE_ATTR_DATABASE_NAME,
442 : XML_TOK_SOURCE_TABLE_ATTR_HREF,
443 : XML_TOK_SOURCE_TABLE_ATTR_CONNECTION_RESOURCE,
444 : XML_TOK_SOURCE_TABLE_ATTR_TABLE_NAME
445 : };
446 :
447 : enum ScXMLDatabaseRangeSourceQueryAttrTokens
448 : {
449 : XML_TOK_SOURCE_QUERY_ATTR_DATABASE_NAME,
450 : XML_TOK_SOURCE_QUERY_ATTR_HREF,
451 : XML_TOK_SOURCE_QUERY_ATTR_CONNECTION_RESOURCE,
452 : XML_TOK_SOURCE_QUERY_ATTR_QUERY_NAME
453 : };
454 :
455 : enum ScXMLFilterTokens
456 : {
457 : XML_TOK_FILTER_AND,
458 : XML_TOK_FILTER_OR,
459 : XML_TOK_FILTER_CONDITION
460 : };
461 :
462 : enum ScXMLFilterAttrTokens
463 : {
464 : XML_TOK_FILTER_ATTR_TARGET_RANGE_ADDRESS,
465 : XML_TOK_FILTER_ATTR_CONDITION_SOURCE_RANGE_ADDRESS,
466 : XML_TOK_FILTER_ATTR_CONDITION_SOURCE,
467 : XML_TOK_FILTER_ATTR_DISPLAY_DUPLICATES
468 : };
469 :
470 : enum ScXMLFilterConditionElemTokens
471 : {
472 : XML_TOK_CONDITION_FILTER_SET_ITEM
473 : };
474 :
475 : enum ScXMLFilterConditionAttrTokens
476 : {
477 : XML_TOK_CONDITION_ATTR_FIELD_NUMBER,
478 : XML_TOK_CONDITION_ATTR_CASE_SENSITIVE,
479 : XML_TOK_CONDITION_ATTR_DATA_TYPE,
480 : XML_TOK_CONDITION_ATTR_VALUE,
481 : XML_TOK_CONDITION_ATTR_OPERATOR
482 : };
483 :
484 : enum ScXMLFilterSetItemAttrTokens
485 : {
486 : XML_TOK_FILTER_SET_ITEM_ATTR_VALUE
487 : };
488 :
489 : enum ScXMLSortTokens
490 : {
491 : XML_TOK_SORT_SORT_BY
492 : };
493 :
494 : enum ScXMLSortAttrTokens
495 : {
496 : XML_TOK_SORT_ATTR_BIND_STYLES_TO_CONTENT,
497 : XML_TOK_SORT_ATTR_TARGET_RANGE_ADDRESS,
498 : XML_TOK_SORT_ATTR_CASE_SENSITIVE,
499 : XML_TOK_SORT_ATTR_LANGUAGE,
500 : XML_TOK_SORT_ATTR_COUNTRY,
501 : XML_TOK_SORT_ATTR_ALGORITHM
502 : };
503 :
504 : enum ScXMLSortSortByAttrTokens
505 : {
506 : XML_TOK_SORT_BY_ATTR_FIELD_NUMBER,
507 : XML_TOK_SORT_BY_ATTR_DATA_TYPE,
508 : XML_TOK_SORT_BY_ATTR_ORDER
509 : };
510 :
511 : enum ScXMLDatabaseRangeSubTotalRulesTokens
512 : {
513 : XML_TOK_SUBTOTAL_RULES_SORT_GROUPS,
514 : XML_TOK_SUBTOTAL_RULES_SUBTOTAL_RULE
515 : };
516 :
517 : enum ScXMLDatabaseRangeSubTotalRulesAttrTokens
518 : {
519 : XML_TOK_SUBTOTAL_RULES_ATTR_BIND_STYLES_TO_CONTENT,
520 : XML_TOK_SUBTOTAL_RULES_ATTR_CASE_SENSITIVE,
521 : XML_TOK_SUBTOTAL_RULES_ATTR_PAGE_BREAKS_ON_GROUP_CHANGE
522 : };
523 :
524 : enum ScXMLSubTotalRulesSortGroupsAttrTokens
525 : {
526 : XML_TOK_SORT_GROUPS_ATTR_DATA_TYPE,
527 : XML_TOK_SORT_GROUPS_ATTR_ORDER
528 : };
529 :
530 : enum ScXMLSubTotalRulesSubTotalRuleTokens
531 : {
532 : XML_TOK_SUBTOTAL_RULE_SUBTOTAL_FIELD
533 : };
534 :
535 : enum ScXMLSubTotalRulesSubTotalRuleAttrTokens
536 : {
537 : XML_TOK_SUBTOTAL_RULE_ATTR_GROUP_BY_FIELD_NUMBER
538 : };
539 :
540 : enum ScXMLSubTotalRuleSubTotalField
541 : {
542 : XML_TOK_SUBTOTAL_FIELD_ATTR_FIELD_NUMBER,
543 : XML_TOK_SUBTOTAL_FIELD_ATTR_FUNCTION
544 : };
545 :
546 : enum ScXMLDataPilotTablesElemTokens
547 : {
548 : XML_TOK_DATA_PILOT_TABLE
549 : };
550 :
551 : enum ScXMLDataPilotTableAttrTokens
552 : {
553 : XML_TOK_DATA_PILOT_TABLE_ATTR_NAME,
554 : XML_TOK_DATA_PILOT_TABLE_ATTR_APPLICATION_DATA,
555 : XML_TOK_DATA_PILOT_TABLE_ATTR_GRAND_TOTAL,
556 : XML_TOK_DATA_PILOT_TABLE_ATTR_IGNORE_EMPTY_ROWS,
557 : XML_TOK_DATA_PILOT_TABLE_ATTR_IDENTIFY_CATEGORIES,
558 : XML_TOK_DATA_PILOT_TABLE_ATTR_TARGET_RANGE_ADDRESS,
559 : XML_TOK_DATA_PILOT_TABLE_ATTR_BUTTONS,
560 : XML_TOK_DATA_PILOT_TABLE_ATTR_SHOW_FILTER_BUTTON,
561 : XML_TOK_DATA_PILOT_TABLE_ATTR_DRILL_DOWN,
562 : XML_TOK_DATA_PILOT_TABLE_ATTR_HEADER_GRID_LAYOUT
563 : };
564 :
565 : enum ScXMLDataPilotTableElemTokens
566 : {
567 : XML_TOK_DATA_PILOT_TABLE_ELEM_SOURCE_SQL,
568 : XML_TOK_DATA_PILOT_TABLE_ELEM_SOURCE_TABLE,
569 : XML_TOK_DATA_PILOT_TABLE_ELEM_GRAND_TOTAL,
570 : XML_TOK_DATA_PILOT_TABLE_ELEM_GRAND_TOTAL_EXT,
571 : XML_TOK_DATA_PILOT_TABLE_ELEM_SOURCE_QUERY,
572 : XML_TOK_DATA_PILOT_TABLE_ELEM_SOURCE_SERVICE,
573 : XML_TOK_DATA_PILOT_TABLE_ELEM_SOURCE_CELL_RANGE,
574 : XML_TOK_DATA_PILOT_TABLE_ELEM_DATA_PILOT_FIELD
575 : };
576 :
577 : enum ScXMLDataPilotTableSourceServiceAttrTokens
578 : {
579 : XML_TOK_SOURCE_SERVICE_ATTR_NAME,
580 : XML_TOK_SOURCE_SERVICE_ATTR_SOURCE_NAME,
581 : XML_TOK_SOURCE_SERVICE_ATTR_OBJECT_NAME,
582 : XML_TOK_SOURCE_SERVICE_ATTR_USER_NAME,
583 : XML_TOK_SOURCE_SERVICE_ATTR_PASSWORD
584 : };
585 :
586 : enum ScXMLDataPilotGrandTotalAttrTokens
587 : {
588 : XML_TOK_DATA_PILOT_GRAND_TOTAL_ATTR_DISPLAY,
589 : XML_TOK_DATA_PILOT_GRAND_TOTAL_ATTR_ORIENTATION,
590 : XML_TOK_DATA_PILOT_GRAND_TOTAL_ATTR_DISPLAY_NAME,
591 : XML_TOK_DATA_PILOT_GRAND_TOTAL_ATTR_DISPLAY_NAME_EXT
592 : };
593 :
594 : enum ScXMLDataPilotTableSourceCellRangeElemTokens
595 : {
596 : XML_TOK_SOURCE_CELL_RANGE_ELEM_FILTER
597 : };
598 :
599 : enum ScXMLDataPilotTableSourceCellRangeAttrTokens
600 : {
601 : XML_TOK_SOURCE_CELL_RANGE_ATTR_CELL_RANGE_ADDRESS,
602 : XML_TOK_SOURCE_CELL_RANGE_ATTR_NAME
603 : };
604 :
605 : enum ScXMLDataPilotFieldAttrTokens
606 : {
607 : XML_TOK_DATA_PILOT_FIELD_ATTR_SOURCE_FIELD_NAME,
608 : XML_TOK_DATA_PILOT_FIELD_ATTR_DISPLAY_NAME,
609 : XML_TOK_DATA_PILOT_FIELD_ATTR_DISPLAY_NAME_EXT,
610 : XML_TOK_DATA_PILOT_FIELD_ATTR_IS_DATA_LAYOUT_FIELD,
611 : XML_TOK_DATA_PILOT_FIELD_ATTR_FUNCTION,
612 : XML_TOK_DATA_PILOT_FIELD_ATTR_ORIENTATION,
613 : XML_TOK_DATA_PILOT_FIELD_ATTR_SELECTED_PAGE,
614 : XML_TOK_DATA_PILOT_FIELD_ATTR_USED_HIERARCHY
615 : };
616 :
617 : enum ScXMLDataPilotFieldElemTokens
618 : {
619 : XML_TOK_DATA_PILOT_FIELD_ELEM_DATA_PILOT_LEVEL,
620 : XML_TOK_DATA_PILOT_FIELD_ELEM_DATA_PILOT_REFERENCE,
621 : XML_TOK_DATA_PILOT_FIELD_ELEM_DATA_PILOT_GROUPS
622 : };
623 :
624 : enum ScXMLDataPilotLevelAttrTokens
625 : {
626 : XML_TOK_DATA_PILOT_LEVEL_ATTR_SHOW_EMPTY
627 : };
628 :
629 : enum ScXMLDataPilotLevelElemTokens
630 : {
631 : XML_TOK_DATA_PILOT_LEVEL_ELEM_DATA_PILOT_SUBTOTALS,
632 : XML_TOK_DATA_PILOT_LEVEL_ELEM_DATA_PILOT_MEMBERS,
633 : XML_TOK_DATA_PILOT_FIELD_ELEM_DATA_PILOT_DISPLAY_INFO,
634 : XML_TOK_DATA_PILOT_FIELD_ELEM_DATA_PILOT_SORT_INFO,
635 : XML_TOK_DATA_PILOT_FIELD_ELEM_DATA_PILOT_LAYOUT_INFO
636 : };
637 :
638 : enum ScXMLDataPilotSubTotalsElemTokens
639 : {
640 : XML_TOK_DATA_PILOT_SUBTOTALS_ELEM_DATA_PILOT_SUBTOTAL
641 : };
642 :
643 : enum ScXMLDataPilotSubTotalAttrTokens
644 : {
645 : XML_TOK_DATA_PILOT_SUBTOTAL_ATTR_FUNCTION,
646 : XML_TOK_DATA_PILOT_SUBTOTAL_ATTR_DISPLAY_NAME,
647 : XML_TOK_DATA_PILOT_SUBTOTAL_ATTR_DISPLAY_NAME_EXT
648 : };
649 :
650 : enum ScXMLDataPilotMembersElemTokens
651 : {
652 : XML_TOK_DATA_PILOT_MEMBERS_ELEM_DATA_PILOT_MEMBER
653 : };
654 :
655 : enum ScXMLDataPilotMemberAttrTokens
656 : {
657 : XML_TOK_DATA_PILOT_MEMBER_ATTR_NAME,
658 : XML_TOK_DATA_PILOT_MEMBER_ATTR_DISPLAY_NAME,
659 : XML_TOK_DATA_PILOT_MEMBER_ATTR_DISPLAY_NAME_EXT,
660 : XML_TOK_DATA_PILOT_MEMBER_ATTR_DISPLAY,
661 : XML_TOK_DATA_PILOT_MEMBER_ATTR_SHOW_DETAILS
662 : };
663 :
664 : enum ScXMLConsolidationAttrTokens
665 : {
666 : XML_TOK_CONSOLIDATION_ATTR_FUNCTION,
667 : XML_TOK_CONSOLIDATION_ATTR_SOURCE_RANGES,
668 : XML_TOK_CONSOLIDATION_ATTR_TARGET_ADDRESS,
669 : XML_TOK_CONSOLIDATION_ATTR_USE_LABEL,
670 : XML_TOK_CONSOLIDATION_ATTR_LINK_TO_SOURCE
671 : };
672 :
673 :
674 : class SvXMLTokenMap;
675 : class XMLShapeImportHelper;
676 : class ScXMLChangeTrackingImportHelper;
677 : class SolarMutexGuard;
678 :
679 : struct tScMyCellRange
680 : {
681 : SCTAB Sheet;
682 : sal_Int32 StartColumn, EndColumn;
683 : sal_Int32 StartRow, EndRow;
684 : };
685 :
686 28 : struct ScMyNamedExpression
687 : {
688 : rtl::OUString sName;
689 : rtl::OUString sContent;
690 : rtl::OUString sContentNmsp;
691 : rtl::OUString sBaseCellAddress;
692 : rtl::OUString sRangeType;
693 : formula::FormulaGrammar::Grammar eGrammar;
694 : bool bIsExpression;
695 : };
696 :
697 : typedef ::boost::ptr_list<ScMyNamedExpression> ScMyNamedExpressions;
698 :
699 0 : struct ScMyLabelRange
700 : {
701 : rtl::OUString sLabelRangeStr;
702 : rtl::OUString sDataRangeStr;
703 : bool bColumnOrientation;
704 : };
705 :
706 : typedef std::list<const ScMyLabelRange*> ScMyLabelRanges;
707 :
708 52 : struct ScMyImportValidation
709 : {
710 : rtl::OUString sName;
711 : rtl::OUString sImputTitle;
712 : rtl::OUString sImputMessage;
713 : rtl::OUString sErrorTitle;
714 : rtl::OUString sErrorMessage;
715 : rtl::OUString sFormula1;
716 : rtl::OUString sFormula2;
717 : rtl::OUString sFormulaNmsp1;
718 : rtl::OUString sFormulaNmsp2;
719 : rtl::OUString sBaseCellAddress; // string is used directly
720 : com::sun::star::sheet::ValidationAlertStyle aAlertStyle;
721 : com::sun::star::sheet::ValidationType aValidationType;
722 : com::sun::star::sheet::ConditionOperator aOperator;
723 : formula::FormulaGrammar::Grammar eGrammar1;
724 : formula::FormulaGrammar::Grammar eGrammar2;
725 : sal_Int16 nShowList;
726 : bool bShowErrorMessage;
727 : bool bShowImputMessage;
728 : bool bIgnoreBlanks;
729 : };
730 :
731 : typedef std::vector<ScMyImportValidation> ScMyImportValidations;
732 : typedef std::list<SvXMLImportContext*> ScMyViewContextList;
733 : class ScMyStylesImportHelper;
734 :
735 : class ScXMLImport: public SvXMLImport
736 : {
737 : typedef ::boost::unordered_map< ::rtl::OUString, sal_Int16, ::rtl::OUStringHash > CellTypeMap;
738 : typedef ::boost::ptr_map<SCTAB, ScMyNamedExpressions> SheetNamedExpMap;
739 :
740 : CellTypeMap aCellTypeMap;
741 :
742 : ScDocument* pDoc;
743 : ScXMLChangeTrackingImportHelper* pChangeTrackingImportHelper;
744 : ScMyViewContextList aViewContextList;
745 : ScMyStylesImportHelper* pStylesImportHelper;
746 : rtl::OUString sNumberFormat;
747 : rtl::OUString sLocale;
748 : rtl::OUString sCellStyle;
749 : rtl::OUString sStandardFormat;
750 : rtl::OUString sType;
751 :
752 : UniReference < XMLPropertyHandlerFactory > xScPropHdlFactory;
753 : UniReference < XMLPropertySetMapper > xCellStylesPropertySetMapper;
754 : UniReference < XMLPropertySetMapper > xColumnStylesPropertySetMapper;
755 : UniReference < XMLPropertySetMapper > xRowStylesPropertySetMapper;
756 : UniReference < XMLPropertySetMapper > xTableStylesPropertySetMapper;
757 :
758 : SvXMLTokenMap *pDocElemTokenMap;
759 : SvXMLTokenMap *pStylesElemTokenMap;
760 : SvXMLTokenMap *pStylesAttrTokenMap;
761 : SvXMLTokenMap *pStyleElemTokenMap;
762 : SvXMLTokenMap *pBodyElemTokenMap;
763 : SvXMLTokenMap *pContentValidationsElemTokenMap;
764 : SvXMLTokenMap *pContentValidationElemTokenMap;
765 : SvXMLTokenMap *pContentValidationAttrTokenMap;
766 : SvXMLTokenMap *pContentValidationMessageElemTokenMap;
767 : SvXMLTokenMap *pContentValidationHelpMessageAttrTokenMap;
768 : SvXMLTokenMap *pContentValidationErrorMessageAttrTokenMap;
769 : SvXMLTokenMap *pContentValidationErrorMacroAttrTokenMap;
770 : SvXMLTokenMap *pCondFormatsTokenMap;
771 : SvXMLTokenMap *pCondFormatTokenMap;
772 : SvXMLTokenMap *pCondFormatAttrMap;
773 : SvXMLTokenMap *pConditionAttrMap;
774 : SvXMLTokenMap *pColorScaleTokenMap;
775 : SvXMLTokenMap *pColorScaleEntryAttrTokenMap;
776 : SvXMLTokenMap *pDataBarTokenMap;
777 : SvXMLTokenMap *pDataBarAttrMap;
778 : SvXMLTokenMap *pFormattingEntryAttrMap;
779 : SvXMLTokenMap *pIconSetAttrMap;
780 : SvXMLTokenMap *pLabelRangesElemTokenMap;
781 : SvXMLTokenMap *pLabelRangeAttrTokenMap;
782 : SvXMLTokenMap *pTableElemTokenMap;
783 : SvXMLTokenMap *pTableProtectionElemTokenMap;
784 : SvXMLTokenMap *pTableRowsElemTokenMap;
785 : SvXMLTokenMap *pTableColsElemTokenMap;
786 : SvXMLTokenMap *pTableScenarioAttrTokenMap;
787 : SvXMLTokenMap *pTableAttrTokenMap;
788 : SvXMLTokenMap *pTableColAttrTokenMap;
789 : SvXMLTokenMap *pTableRowElemTokenMap;
790 : SvXMLTokenMap *pTableRowAttrTokenMap;
791 : SvXMLTokenMap *pTableRowCellElemTokenMap;
792 : SvXMLTokenMap *pTableRowCellAttrTokenMap;
793 : SvXMLTokenMap *pTableAnnotationAttrTokenMap;
794 : SvXMLTokenMap *pDetectiveElemTokenMap;
795 : SvXMLTokenMap *pDetectiveHighlightedAttrTokenMap;
796 : SvXMLTokenMap *pDetectiveOperationAttrTokenMap;
797 : SvXMLTokenMap *pTableCellRangeSourceAttrTokenMap;
798 : SvXMLTokenMap *pNamedExpressionsElemTokenMap;
799 : SvXMLTokenMap *pNamedRangeAttrTokenMap;
800 : SvXMLTokenMap *pNamedExpressionAttrTokenMap;
801 : SvXMLTokenMap *pDatabaseRangesElemTokenMap;
802 : SvXMLTokenMap *pDatabaseRangeElemTokenMap;
803 : SvXMLTokenMap *pDatabaseRangeAttrTokenMap;
804 : SvXMLTokenMap *pDatabaseRangeSourceSQLAttrTokenMap;
805 : SvXMLTokenMap *pDatabaseRangeSourceTableAttrTokenMap;
806 : SvXMLTokenMap *pDatabaseRangeSourceQueryAttrTokenMap;
807 : SvXMLTokenMap *pFilterElemTokenMap;
808 : SvXMLTokenMap *pFilterAttrTokenMap;
809 : SvXMLTokenMap *pFilterConditionElemTokenMap;
810 : SvXMLTokenMap *pFilterConditionAttrTokenMap;
811 : SvXMLTokenMap *pFilterSetItemAttrTokenMap;
812 : SvXMLTokenMap *pSortElemTokenMap;
813 : SvXMLTokenMap *pSortAttrTokenMap;
814 : SvXMLTokenMap *pSortSortByAttrTokenMap;
815 : SvXMLTokenMap *pDatabaseRangeSubTotalRulesElemTokenMap;
816 : SvXMLTokenMap *pDatabaseRangeSubTotalRulesAttrTokenMap;
817 : SvXMLTokenMap *pSubTotalRulesSortGroupsAttrTokenMap;
818 : SvXMLTokenMap *pSubTotalRulesSubTotalRuleElemTokenMap;
819 : SvXMLTokenMap *pSubTotalRulesSubTotalRuleAttrTokenMap;
820 : SvXMLTokenMap *pSubTotalRuleSubTotalFieldAttrTokenMap;
821 : SvXMLTokenMap *pDataPilotTablesElemTokenMap;
822 : SvXMLTokenMap *pDataPilotTableAttrTokenMap;
823 : SvXMLTokenMap *pDataPilotTableElemTokenMap;
824 : SvXMLTokenMap *pDataPilotTableSourceServiceAttrTokenMap;
825 : SvXMLTokenMap *pDataPilotGrandTotalAttrTokenMap;
826 : SvXMLTokenMap *pDataPilotTableSourceCellRangeElemTokenMap;
827 : SvXMLTokenMap *pDataPilotTableSourceCellRangeAttrTokenMap;
828 : SvXMLTokenMap *pDataPilotFieldAttrTokenMap;
829 : SvXMLTokenMap *pDataPilotFieldElemTokenMap;
830 : SvXMLTokenMap *pDataPilotLevelAttrTokenMap;
831 : SvXMLTokenMap *pDataPilotLevelElemTokenMap;
832 : SvXMLTokenMap *pDataPilotSubTotalsElemTokenMap;
833 : SvXMLTokenMap *pDataPilotSubTotalAttrTokenMap;
834 : SvXMLTokenMap *pDataPilotMembersElemTokenMap;
835 : SvXMLTokenMap *pDataPilotMemberAttrTokenMap;
836 : SvXMLTokenMap *pConsolidationAttrTokenMap;
837 :
838 : ScMyTables aTables;
839 :
840 : ScMyNamedExpressions* pMyNamedExpressions;
841 : SheetNamedExpMap maSheetNamedExpressions;
842 :
843 : ScMyLabelRanges* pMyLabelRanges;
844 : ScMyImportValidations* pValidations;
845 : ScMyImpDetectiveOpArray* pDetectiveOpArray;
846 : SolarMutexGuard* pSolarMutexGuard;
847 :
848 : std::vector<rtl::OUString> aTableStyles;
849 : XMLNumberFormatAttributesExportHelper* pNumberFormatAttributesExportHelper;
850 : ScMyStyleNumberFormats* pStyleNumberFormats;
851 : com::sun::star::uno::Reference <com::sun::star::util::XNumberFormats> xNumberFormats;
852 : com::sun::star::uno::Reference <com::sun::star::util::XNumberFormatTypes> xNumberFormatTypes;
853 :
854 : com::sun::star::uno::Reference <com::sun::star::sheet::XSheetCellRangeContainer> xSheetCellRanges;
855 :
856 : rtl::OUString sEmpty;
857 : rtl::OUString sPrevStyleName;
858 : rtl::OUString sPrevCurrency;
859 : sal_uInt32 nSolarMutexLocked;
860 : sal_Int32 nProgressCount;
861 : sal_uInt16 nStyleFamilyMask;// Mask of styles to load
862 : sal_Int16 nPrevCellType;
863 : bool bLoadDoc; // Load doc or styles only
864 : bool bRemoveLastChar;
865 : bool bNullDateSetted;
866 : bool bSelfImportingXMLSet;
867 : bool bLatinDefaultStyle; // latin-only number format in default style?
868 : bool bFromWrapper; // called from ScDocShell / ScXMLImportWrapper?
869 : bool mbHasNewCondFormatData;
870 :
871 :
872 : protected:
873 :
874 : // This method is called after the namespace map has been updated, but
875 : // before a context for the current element has been pushed.
876 : virtual SvXMLImportContext *CreateContext(sal_uInt16 nPrefix,
877 : const ::rtl::OUString& rLocalName,
878 : const ::com::sun::star::uno::Reference<
879 : ::com::sun::star::xml::sax::XAttributeList>& xAttrList );
880 : virtual XMLShapeImportHelper* CreateShapeImport();
881 :
882 : public:
883 : // #110680#
884 : ScXMLImport(
885 : const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xServiceFactory,
886 : const sal_uInt16 nImportFlag);
887 :
888 : ~ScXMLImport() throw();
889 :
890 : // namespace office
891 : // NB: in contrast to other CreateFooContexts, this particular one handles
892 : // the root element (i.e. office:document-meta)
893 : SvXMLImportContext *CreateMetaContext(
894 : const ::rtl::OUString& rLocalName );
895 : SvXMLImportContext *CreateFontDeclsContext(const sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName,
896 : const com::sun::star::uno::Reference<com::sun::star::xml::sax::XAttributeList>& xAttrList);
897 : SvXMLImportContext *CreateScriptContext(
898 : const ::rtl::OUString& rLocalName );
899 : SvXMLImportContext *CreateStylesContext(const ::rtl::OUString& rLocalName,
900 : const com::sun::star::uno::Reference<com::sun::star::xml::sax::XAttributeList>& xAttrList, bool bAutoStyles );
901 : SvXMLImportContext *CreateBodyContext(
902 : const ::rtl::OUString& rLocalName,
903 : const ::com::sun::star::uno::Reference<com::sun::star::xml::sax::XAttributeList>& xAttrList );
904 :
905 : virtual void SetStatistics(
906 : const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::NamedValue> & i_rStats);
907 :
908 4494 : inline ScDocument* GetDocument() { return pDoc; }
909 24 : inline const ScDocument* GetDocument() const { return pDoc; }
910 :
911 19899 : ScMyTables& GetTables() { return aTables; }
912 :
913 : sal_uInt16 GetStyleFamilyMask() const { return nStyleFamilyMask; }
914 44 : bool IsStylesOnlyMode() const { return !bLoadDoc; }
915 :
916 1162 : bool IsLatinDefaultStyle() const { return bLatinDefaultStyle; }
917 :
918 : sal_Int16 GetCellType(const ::rtl::OUString& rStrValue) const;
919 :
920 32 : UniReference < XMLPropertySetMapper > GetCellStylesPropertySetMapper() const { return xCellStylesPropertySetMapper; }
921 22 : UniReference < XMLPropertySetMapper > GetColumnStylesPropertySetMapper() const { return xColumnStylesPropertySetMapper; }
922 22 : UniReference < XMLPropertySetMapper > GetRowStylesPropertySetMapper() const { return xRowStylesPropertySetMapper; }
923 22 : UniReference < XMLPropertySetMapper > GetTableStylesPropertySetMapper() const { return xTableStylesPropertySetMapper; }
924 :
925 : const SvXMLTokenMap& GetDocElemTokenMap();
926 : const SvXMLTokenMap& GetBodyElemTokenMap();
927 : const SvXMLTokenMap& GetContentValidationsElemTokenMap();
928 : const SvXMLTokenMap& GetContentValidationElemTokenMap();
929 : const SvXMLTokenMap& GetContentValidationAttrTokenMap();
930 : const SvXMLTokenMap& GetContentValidationMessageElemTokenMap();
931 : const SvXMLTokenMap& GetContentValidationHelpMessageAttrTokenMap();
932 : const SvXMLTokenMap& GetContentValidationErrorMessageAttrTokenMap();
933 : const SvXMLTokenMap& GetContentValidationErrorMacroAttrTokenMap();
934 : const SvXMLTokenMap& GetCondFormatsTokenMap();
935 : const SvXMLTokenMap& GetCondFormatTokenMap();
936 : const SvXMLTokenMap& GetCondFormatAttrMap();
937 : const SvXMLTokenMap& GetConditionAttrMap();
938 : const SvXMLTokenMap& GetColorScaleTokenMap();
939 : const SvXMLTokenMap& GetColorScaleEntryAttrMap();
940 : const SvXMLTokenMap& GetFormattingTokenMap();
941 : const SvXMLTokenMap& GetDataBarAttrMap();
942 : const SvXMLTokenMap& GetDataBarEntryAttrMap();
943 : const SvXMLTokenMap& GetIconSetAttrMap();
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 8 : void AddNamedExpression(ScMyNamedExpression* pMyNamedExpression)
1003 : {
1004 8 : if (!pMyNamedExpressions)
1005 3 : pMyNamedExpressions = new ScMyNamedExpressions();
1006 8 : pMyNamedExpressions->push_back(pMyNamedExpression);
1007 8 : }
1008 :
1009 22 : 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 22 : ScMyLabelRanges* GetLabelRanges() { return pMyLabelRanges; }
1018 :
1019 2 : void AddValidation(const ScMyImportValidation& rValidation) {
1020 2 : if (!pValidations)
1021 1 : pValidations = new ScMyImportValidations();
1022 2 : pValidations->push_back(rValidation); }
1023 : bool GetValidation(const rtl::OUString& sName, ScMyImportValidation& aValidation);
1024 :
1025 22 : inline ScMyImpDetectiveOpArray* GetDetectiveOpArray() {
1026 22 : if (!pDetectiveOpArray)
1027 22 : pDetectiveOpArray = new ScMyImpDetectiveOpArray();
1028 22 : return pDetectiveOpArray; }
1029 :
1030 3234 : void SetRemoveLastChar(bool bValue) { bRemoveLastChar = bValue; }
1031 323 : 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 50 : void SetTableStyle(const rtl::OUString& rValue) { aTableStyles.push_back(rValue); }
1042 : std::vector<rtl::OUString> GetTableStyle() { return aTableStyles; }
1043 8206 : 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 0 : void SetNewCondFormatData() { mbHasNewCondFormatData = true; }
1054 3 : 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: */
|