1use serde::{Deserialize, Serialize};
6
7use super::common::XlsxExtLst;
8
9#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
11#[serde(rename = "pivotTableDefinition")]
12pub struct XlsxPivotTableDefinition {
13 #[serde(rename = "@xmlns", default, skip_serializing_if = "Option::is_none")]
14 pub xmlns: Option<String>,
15 #[serde(rename = "@name")]
16 pub name: String,
17 #[serde(rename = "@cacheId")]
18 pub cache_id: i64,
19 #[serde(
20 rename = "@applyNumberFormats",
21 default,
22 skip_serializing_if = "Option::is_none"
23 )]
24 pub apply_number_formats: Option<bool>,
25 #[serde(
26 rename = "@applyBorderFormats",
27 default,
28 skip_serializing_if = "Option::is_none"
29 )]
30 pub apply_border_formats: Option<bool>,
31 #[serde(
32 rename = "@applyFontFormats",
33 default,
34 skip_serializing_if = "Option::is_none"
35 )]
36 pub apply_font_formats: Option<bool>,
37 #[serde(
38 rename = "@applyPatternFormats",
39 default,
40 skip_serializing_if = "Option::is_none"
41 )]
42 pub apply_pattern_formats: Option<bool>,
43 #[serde(
44 rename = "@applyAlignmentFormats",
45 default,
46 skip_serializing_if = "Option::is_none"
47 )]
48 pub apply_alignment_formats: Option<bool>,
49 #[serde(
50 rename = "@applyWidthHeightFormats",
51 default,
52 skip_serializing_if = "Option::is_none"
53 )]
54 pub apply_width_height_formats: Option<bool>,
55 #[serde(
56 rename = "@dataOnRows",
57 default,
58 skip_serializing_if = "Option::is_none"
59 )]
60 pub data_on_rows: Option<bool>,
61 #[serde(
62 rename = "@dataPosition",
63 default,
64 skip_serializing_if = "Option::is_none"
65 )]
66 pub data_position: Option<i64>,
67 #[serde(rename = "@dataCaption")]
68 pub data_caption: String,
69 #[serde(
70 rename = "@grandTotalCaption",
71 default,
72 skip_serializing_if = "Option::is_none"
73 )]
74 pub grand_total_caption: Option<String>,
75 #[serde(
76 rename = "@errorCaption",
77 default,
78 skip_serializing_if = "Option::is_none"
79 )]
80 pub error_caption: Option<String>,
81 #[serde(
82 rename = "@showError",
83 default,
84 skip_serializing_if = "Option::is_none"
85 )]
86 pub show_error: Option<bool>,
87 #[serde(
88 rename = "@missingCaption",
89 default,
90 skip_serializing_if = "Option::is_none"
91 )]
92 pub missing_caption: Option<String>,
93 #[serde(
94 rename = "@showMissing",
95 default,
96 skip_serializing_if = "Option::is_none"
97 )]
98 pub show_missing: Option<bool>,
99 #[serde(
100 rename = "@pageStyle",
101 default,
102 skip_serializing_if = "Option::is_none"
103 )]
104 pub page_style: Option<String>,
105 #[serde(
106 rename = "@pivotTableStyle",
107 default,
108 skip_serializing_if = "Option::is_none"
109 )]
110 pub pivot_table_style: Option<String>,
111 #[serde(
112 rename = "@vacatedStyle",
113 default,
114 skip_serializing_if = "Option::is_none"
115 )]
116 pub vacated_style: Option<String>,
117 #[serde(rename = "@tag", default, skip_serializing_if = "Option::is_none")]
118 pub tag: Option<String>,
119 #[serde(
120 rename = "@updatedVersion",
121 default,
122 skip_serializing_if = "Option::is_none"
123 )]
124 pub updated_version: Option<i64>,
125 #[serde(
126 rename = "@minRefreshableVersion",
127 default,
128 skip_serializing_if = "Option::is_none"
129 )]
130 pub min_refreshable_version: Option<i64>,
131 #[serde(
132 rename = "@asteriskTotals",
133 default,
134 skip_serializing_if = "Option::is_none"
135 )]
136 pub asterisk_totals: Option<bool>,
137 #[serde(
138 rename = "@showItems",
139 default,
140 skip_serializing_if = "Option::is_none"
141 )]
142 pub show_items: Option<bool>,
143 #[serde(rename = "@editData", default, skip_serializing_if = "Option::is_none")]
144 pub edit_data: Option<bool>,
145 #[serde(
146 rename = "@disableFieldList",
147 default,
148 skip_serializing_if = "Option::is_none"
149 )]
150 pub disable_field_list: Option<bool>,
151 #[serde(
152 rename = "@showCalcMbrs",
153 default,
154 skip_serializing_if = "Option::is_none"
155 )]
156 pub show_calc_mbrs: Option<bool>,
157 #[serde(
158 rename = "@visualTotals",
159 default,
160 skip_serializing_if = "Option::is_none"
161 )]
162 pub visual_totals: Option<bool>,
163 #[serde(
164 rename = "@showMultipleLabel",
165 default,
166 skip_serializing_if = "Option::is_none"
167 )]
168 pub show_multiple_label: Option<bool>,
169 #[serde(
170 rename = "@showDataDropDown",
171 default,
172 skip_serializing_if = "Option::is_none"
173 )]
174 pub show_data_drop_down: Option<bool>,
175 #[serde(
176 rename = "@showDrill",
177 default,
178 skip_serializing_if = "Option::is_none"
179 )]
180 pub show_drill: Option<bool>,
181 #[serde(
182 rename = "@printDrill",
183 default,
184 skip_serializing_if = "Option::is_none"
185 )]
186 pub print_drill: Option<bool>,
187 #[serde(
188 rename = "@showMemberPropertyTips",
189 default,
190 skip_serializing_if = "Option::is_none"
191 )]
192 pub show_member_property_tips: Option<bool>,
193 #[serde(
194 rename = "@showDataTips",
195 default,
196 skip_serializing_if = "Option::is_none"
197 )]
198 pub show_data_tips: Option<bool>,
199 #[serde(
200 rename = "@enableWizard",
201 default,
202 skip_serializing_if = "Option::is_none"
203 )]
204 pub enable_wizard: Option<bool>,
205 #[serde(
206 rename = "@enableDrill",
207 default,
208 skip_serializing_if = "Option::is_none"
209 )]
210 pub enable_drill: Option<bool>,
211 #[serde(
212 rename = "@enableFieldProperties",
213 default,
214 skip_serializing_if = "Option::is_none"
215 )]
216 pub enable_field_properties: Option<bool>,
217 #[serde(
218 rename = "@preserveFormatting",
219 default,
220 skip_serializing_if = "Option::is_none"
221 )]
222 pub preserve_formatting: Option<bool>,
223 #[serde(
224 rename = "@useAutoFormatting",
225 default,
226 skip_serializing_if = "Option::is_none"
227 )]
228 pub use_auto_formatting: Option<bool>,
229 #[serde(rename = "@pageWrap", default, skip_serializing_if = "Option::is_none")]
230 pub page_wrap: Option<i64>,
231 #[serde(
232 rename = "@pageOverThenDown",
233 default,
234 skip_serializing_if = "Option::is_none"
235 )]
236 pub page_over_then_down: Option<bool>,
237 #[serde(
238 rename = "@subtotalHiddenItems",
239 default,
240 skip_serializing_if = "Option::is_none"
241 )]
242 pub subtotal_hidden_items: Option<bool>,
243 #[serde(
244 rename = "@rowGrandTotals",
245 default,
246 skip_serializing_if = "Option::is_none"
247 )]
248 pub row_grand_totals: Option<bool>,
249 #[serde(
250 rename = "@colGrandTotals",
251 default,
252 skip_serializing_if = "Option::is_none"
253 )]
254 pub col_grand_totals: Option<bool>,
255 #[serde(
256 rename = "@fieldPrintTitles",
257 default,
258 skip_serializing_if = "Option::is_none"
259 )]
260 pub field_print_titles: Option<bool>,
261 #[serde(
262 rename = "@itemPrintTitles",
263 default,
264 skip_serializing_if = "Option::is_none"
265 )]
266 pub item_print_titles: Option<bool>,
267 #[serde(
268 rename = "@mergeItem",
269 default,
270 skip_serializing_if = "Option::is_none"
271 )]
272 pub merge_item: Option<bool>,
273 #[serde(
274 rename = "@showDropZones",
275 default,
276 skip_serializing_if = "Option::is_none"
277 )]
278 pub show_drop_zones: Option<bool>,
279 #[serde(
280 rename = "@createdVersion",
281 default,
282 skip_serializing_if = "Option::is_none"
283 )]
284 pub created_version: Option<i64>,
285 #[serde(rename = "@indent", default, skip_serializing_if = "Option::is_none")]
286 pub indent: Option<i64>,
287 #[serde(
288 rename = "@showEmptyRow",
289 default,
290 skip_serializing_if = "Option::is_none"
291 )]
292 pub show_empty_row: Option<bool>,
293 #[serde(
294 rename = "@showEmptyCol",
295 default,
296 skip_serializing_if = "Option::is_none"
297 )]
298 pub show_empty_col: Option<bool>,
299 #[serde(
300 rename = "@showHeaders",
301 default,
302 skip_serializing_if = "Option::is_none"
303 )]
304 pub show_headers: Option<bool>,
305 #[serde(rename = "@compact", default, skip_serializing_if = "Option::is_none")]
306 pub compact: Option<bool>,
307 #[serde(rename = "@outline", default, skip_serializing_if = "Option::is_none")]
308 pub outline: Option<bool>,
309 #[serde(
310 rename = "@outlineData",
311 default,
312 skip_serializing_if = "Option::is_none"
313 )]
314 pub outline_data: Option<bool>,
315 #[serde(
316 rename = "@compactData",
317 default,
318 skip_serializing_if = "Option::is_none"
319 )]
320 pub compact_data: Option<bool>,
321 #[serde(
322 rename = "@published",
323 default,
324 skip_serializing_if = "Option::is_none"
325 )]
326 pub published: Option<bool>,
327 #[serde(
328 rename = "@gridDropZones",
329 default,
330 skip_serializing_if = "Option::is_none"
331 )]
332 pub grid_drop_zones: Option<bool>,
333 #[serde(
334 rename = "@immersive",
335 default,
336 skip_serializing_if = "Option::is_none"
337 )]
338 pub immersive: Option<bool>,
339 #[serde(
340 rename = "@multipleFieldFilters",
341 default,
342 skip_serializing_if = "Option::is_none"
343 )]
344 pub multiple_field_filters: Option<bool>,
345 #[serde(
346 rename = "@chartFormat",
347 default,
348 skip_serializing_if = "Option::is_none"
349 )]
350 pub chart_format: Option<i64>,
351 #[serde(
352 rename = "@rowHeaderCaption",
353 default,
354 skip_serializing_if = "Option::is_none"
355 )]
356 pub row_header_caption: Option<String>,
357 #[serde(
358 rename = "@colHeaderCaption",
359 default,
360 skip_serializing_if = "Option::is_none"
361 )]
362 pub col_header_caption: Option<String>,
363 #[serde(
364 rename = "@fieldListSortAscending",
365 default,
366 skip_serializing_if = "Option::is_none"
367 )]
368 pub field_list_sort_ascending: Option<bool>,
369 #[serde(
370 rename = "@mdxSubqueries",
371 default,
372 skip_serializing_if = "Option::is_none"
373 )]
374 pub mdx_subqueries: Option<bool>,
375 #[serde(
376 rename = "@customListSort",
377 default,
378 skip_serializing_if = "Option::is_none"
379 )]
380 pub custom_list_sort: Option<bool>,
381 #[serde(rename = "location", default, skip_serializing_if = "Option::is_none")]
382 pub location: Option<XlsxLocation>,
383 #[serde(
384 rename = "pivotFields",
385 default,
386 skip_serializing_if = "Option::is_none"
387 )]
388 pub pivot_fields: Option<XlsxPivotFields>,
389 #[serde(rename = "rowFields", default, skip_serializing_if = "Option::is_none")]
390 pub row_fields: Option<XlsxRowFields>,
391 #[serde(rename = "rowItems", default, skip_serializing_if = "Option::is_none")]
392 pub row_items: Option<XlsxRowItems>,
393 #[serde(rename = "colFields", default, skip_serializing_if = "Option::is_none")]
394 pub col_fields: Option<XlsxColFields>,
395 #[serde(rename = "colItems", default, skip_serializing_if = "Option::is_none")]
396 pub col_items: Option<XlsxColItems>,
397 #[serde(
398 rename = "pageFields",
399 default,
400 skip_serializing_if = "Option::is_none"
401 )]
402 pub page_fields: Option<XlsxPageFields>,
403 #[serde(
404 rename = "dataFields",
405 default,
406 skip_serializing_if = "Option::is_none"
407 )]
408 pub data_fields: Option<XlsxDataFields>,
409 #[serde(
410 rename = "conditionalFormats",
411 default,
412 skip_serializing_if = "Option::is_none"
413 )]
414 pub conditional_formats: Option<XlsxConditionalFormats>,
415 #[serde(
416 rename = "pivotTableStyleInfo",
417 default,
418 skip_serializing_if = "Option::is_none"
419 )]
420 pub pivot_table_style_info: Option<XlsxPivotTableStyleInfo>,
421}
422
423#[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize)]
425#[serde(rename = "location")]
426pub struct XlsxLocation {
427 #[serde(rename = "@ref")]
428 pub r#ref: String,
429 #[serde(rename = "@firstHeaderRow")]
430 pub first_header_row: i64,
431 #[serde(rename = "@firstDataRow")]
432 pub first_data_row: i64,
433 #[serde(rename = "@firstDataCol")]
434 pub first_data_col: i64,
435 #[serde(
436 rename = "@rowPageCount",
437 default,
438 skip_serializing_if = "Option::is_none"
439 )]
440 pub row_page_count: Option<i64>,
441 #[serde(
442 rename = "@colPageCount",
443 default,
444 skip_serializing_if = "Option::is_none"
445 )]
446 pub col_page_count: Option<i64>,
447}
448
449#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
451#[serde(rename = "pivotFields")]
452pub struct XlsxPivotFields {
453 #[serde(rename = "@count")]
454 pub count: i64,
455 #[serde(rename = "pivotField", default)]
456 pub pivot_field: Vec<XlsxPivotField>,
457}
458
459#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
461#[serde(rename = "pivotField")]
462pub struct XlsxPivotField {
463 #[serde(rename = "@name", default, skip_serializing_if = "Option::is_none")]
464 pub name: Option<String>,
465 #[serde(rename = "@axis", default, skip_serializing_if = "Option::is_none")]
466 pub axis: Option<String>,
467 #[serde(
468 rename = "@dataField",
469 default,
470 skip_serializing_if = "Option::is_none"
471 )]
472 pub data_field: Option<bool>,
473 #[serde(
474 rename = "@subtotalCaption",
475 default,
476 skip_serializing_if = "Option::is_none"
477 )]
478 pub subtotal_caption: Option<String>,
479 #[serde(
480 rename = "@showDropDowns",
481 default,
482 skip_serializing_if = "Option::is_none"
483 )]
484 pub show_drop_downs: Option<bool>,
485 #[serde(
486 rename = "@hiddenLevel",
487 default,
488 skip_serializing_if = "Option::is_none"
489 )]
490 pub hidden_level: Option<bool>,
491 #[serde(
492 rename = "@uniqueMemberProperty",
493 default,
494 skip_serializing_if = "Option::is_none"
495 )]
496 pub unique_member_property: Option<String>,
497 #[serde(rename = "@compact", default, skip_serializing_if = "Option::is_none")]
498 pub compact: Option<bool>,
499 #[serde(
500 rename = "@allDrilled",
501 default,
502 skip_serializing_if = "Option::is_none"
503 )]
504 pub all_drilled: Option<bool>,
505 #[serde(rename = "@numFmtId", default, skip_serializing_if = "Option::is_none")]
506 pub num_fmt_id: Option<String>,
507 #[serde(rename = "@outline", default, skip_serializing_if = "Option::is_none")]
508 pub outline: Option<bool>,
509 #[serde(
510 rename = "@subtotalTop",
511 default,
512 skip_serializing_if = "Option::is_none"
513 )]
514 pub subtotal_top: Option<bool>,
515 #[serde(
516 rename = "@dragToRow",
517 default,
518 skip_serializing_if = "Option::is_none"
519 )]
520 pub drag_to_row: Option<bool>,
521 #[serde(
522 rename = "@dragToCol",
523 default,
524 skip_serializing_if = "Option::is_none"
525 )]
526 pub drag_to_col: Option<bool>,
527 #[serde(
528 rename = "@multipleItemSelectionAllowed",
529 default,
530 skip_serializing_if = "Option::is_none"
531 )]
532 pub multiple_item_selection_allowed: Option<bool>,
533 #[serde(
534 rename = "@dragToPage",
535 default,
536 skip_serializing_if = "Option::is_none"
537 )]
538 pub drag_to_page: Option<bool>,
539 #[serde(
540 rename = "@dragToData",
541 default,
542 skip_serializing_if = "Option::is_none"
543 )]
544 pub drag_to_data: Option<bool>,
545 #[serde(rename = "@dragOff", default, skip_serializing_if = "Option::is_none")]
546 pub drag_off: Option<bool>,
547 #[serde(rename = "@showAll", default, skip_serializing_if = "Option::is_none")]
548 pub show_all: Option<bool>,
549 #[serde(
550 rename = "@insertBlankRow",
551 default,
552 skip_serializing_if = "Option::is_none"
553 )]
554 pub insert_blank_row: Option<bool>,
555 #[serde(
556 rename = "@serverField",
557 default,
558 skip_serializing_if = "Option::is_none"
559 )]
560 pub server_field: Option<bool>,
561 #[serde(
562 rename = "@insertPageBreak",
563 default,
564 skip_serializing_if = "Option::is_none"
565 )]
566 pub insert_page_break: Option<bool>,
567 #[serde(rename = "@autoShow", default, skip_serializing_if = "Option::is_none")]
568 pub auto_show: Option<bool>,
569 #[serde(
570 rename = "@topAutoShow",
571 default,
572 skip_serializing_if = "Option::is_none"
573 )]
574 pub top_auto_show: Option<bool>,
575 #[serde(
576 rename = "@hideNewItems",
577 default,
578 skip_serializing_if = "Option::is_none"
579 )]
580 pub hide_new_items: Option<bool>,
581 #[serde(
582 rename = "@measureFilter",
583 default,
584 skip_serializing_if = "Option::is_none"
585 )]
586 pub measure_filter: Option<bool>,
587 #[serde(
588 rename = "@includeNewItemsInFilter",
589 default,
590 skip_serializing_if = "Option::is_none"
591 )]
592 pub include_new_items_in_filter: Option<bool>,
593 #[serde(
594 rename = "@itemPageCount",
595 default,
596 skip_serializing_if = "Option::is_none"
597 )]
598 pub item_page_count: Option<i64>,
599 #[serde(rename = "@sortType", default, skip_serializing_if = "Option::is_none")]
600 pub sort_type: Option<String>,
601 #[serde(
602 rename = "@dataSourceSort",
603 default,
604 skip_serializing_if = "Option::is_none"
605 )]
606 pub data_source_sort: Option<bool>,
607 #[serde(
608 rename = "@nonAutoSortDefault",
609 default,
610 skip_serializing_if = "Option::is_none"
611 )]
612 pub non_auto_sort_default: Option<bool>,
613 #[serde(rename = "@rankBy", default, skip_serializing_if = "Option::is_none")]
614 pub rank_by: Option<i64>,
615 #[serde(
616 rename = "@defaultSubtotal",
617 default,
618 skip_serializing_if = "Option::is_none"
619 )]
620 pub default_subtotal: Option<bool>,
621 #[serde(
622 rename = "@sumSubtotal",
623 default,
624 skip_serializing_if = "Option::is_none"
625 )]
626 pub sum_subtotal: Option<bool>,
627 #[serde(
628 rename = "@countASubtotal",
629 default,
630 skip_serializing_if = "Option::is_none"
631 )]
632 pub count_a_subtotal: Option<bool>,
633 #[serde(
634 rename = "@avgSubtotal",
635 default,
636 skip_serializing_if = "Option::is_none"
637 )]
638 pub avg_subtotal: Option<bool>,
639 #[serde(
640 rename = "@maxSubtotal",
641 default,
642 skip_serializing_if = "Option::is_none"
643 )]
644 pub max_subtotal: Option<bool>,
645 #[serde(
646 rename = "@minSubtotal",
647 default,
648 skip_serializing_if = "Option::is_none"
649 )]
650 pub min_subtotal: Option<bool>,
651 #[serde(
652 rename = "@productSubtotal",
653 default,
654 skip_serializing_if = "Option::is_none"
655 )]
656 pub product_subtotal: Option<bool>,
657 #[serde(
658 rename = "@countSubtotal",
659 default,
660 skip_serializing_if = "Option::is_none"
661 )]
662 pub count_subtotal: Option<bool>,
663 #[serde(
664 rename = "@stdDevSubtotal",
665 default,
666 skip_serializing_if = "Option::is_none"
667 )]
668 pub std_dev_subtotal: Option<bool>,
669 #[serde(
670 rename = "@stdDevPSubtotal",
671 default,
672 skip_serializing_if = "Option::is_none"
673 )]
674 pub std_dev_p_subtotal: Option<bool>,
675 #[serde(
676 rename = "@varSubtotal",
677 default,
678 skip_serializing_if = "Option::is_none"
679 )]
680 pub var_subtotal: Option<bool>,
681 #[serde(
682 rename = "@varPSubtotal",
683 default,
684 skip_serializing_if = "Option::is_none"
685 )]
686 pub var_p_subtotal: Option<bool>,
687 #[serde(
688 rename = "@showPropCell",
689 default,
690 skip_serializing_if = "Option::is_none"
691 )]
692 pub show_prop_cell: Option<bool>,
693 #[serde(
694 rename = "@showPropTip",
695 default,
696 skip_serializing_if = "Option::is_none"
697 )]
698 pub show_prop_tip: Option<bool>,
699 #[serde(
700 rename = "@showPropAsCaption",
701 default,
702 skip_serializing_if = "Option::is_none"
703 )]
704 pub show_prop_as_caption: Option<bool>,
705 #[serde(
706 rename = "@defaultAttributeDrillState",
707 default,
708 skip_serializing_if = "Option::is_none"
709 )]
710 pub default_attribute_drill_state: Option<bool>,
711 #[serde(rename = "items", default, skip_serializing_if = "Option::is_none")]
712 pub items: Option<XlsxItems>,
713 #[serde(
714 rename = "autoSortScope",
715 default,
716 skip_serializing_if = "Option::is_none"
717 )]
718 pub auto_sort_scope: Option<XlsxAutoSortScope>,
719 #[serde(rename = "extLst", default, skip_serializing_if = "Option::is_none")]
720 pub ext_lst: Option<XlsxExtLst>,
721}
722
723#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
725#[serde(rename = "items")]
726pub struct XlsxItems {
727 #[serde(rename = "@count")]
728 pub count: i64,
729 #[serde(rename = "item", default)]
730 pub item: Vec<XlsxItem>,
731}
732
733#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
735#[serde(rename = "item")]
736pub struct XlsxItem {
737 #[serde(rename = "@n", default, skip_serializing_if = "Option::is_none")]
738 pub n: Option<String>,
739 #[serde(rename = "@t", default, skip_serializing_if = "Option::is_none")]
740 pub t: Option<String>,
741 #[serde(rename = "@h", default, skip_serializing_if = "Option::is_none")]
742 pub h: Option<bool>,
743 #[serde(rename = "@s", default, skip_serializing_if = "Option::is_none")]
744 pub s: Option<bool>,
745 #[serde(rename = "@sd", default, skip_serializing_if = "Option::is_none")]
746 pub sd: Option<bool>,
747 #[serde(rename = "@f", default, skip_serializing_if = "Option::is_none")]
748 pub f: Option<bool>,
749 #[serde(rename = "@m", default, skip_serializing_if = "Option::is_none")]
750 pub m: Option<bool>,
751 #[serde(rename = "@c", default, skip_serializing_if = "Option::is_none")]
752 pub c: Option<bool>,
753 #[serde(rename = "@x", default, skip_serializing_if = "Option::is_none")]
754 pub x: Option<i64>,
755 #[serde(rename = "@d", default, skip_serializing_if = "Option::is_none")]
756 pub d: Option<bool>,
757 #[serde(rename = "@e", default, skip_serializing_if = "Option::is_none")]
758 pub e: Option<bool>,
759}
760
761#[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize)]
763#[serde(rename = "autoSortScope")]
764pub struct XlsxAutoSortScope {}
765
766#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
768#[serde(rename = "rowFields")]
769pub struct XlsxRowFields {
770 #[serde(rename = "@count")]
771 pub count: i64,
772 #[serde(rename = "field", default)]
773 pub field: Vec<XlsxField>,
774}
775
776#[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize)]
778#[serde(rename = "field")]
779pub struct XlsxField {
780 #[serde(rename = "@x")]
781 pub x: i64,
782}
783
784#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
786#[serde(rename = "rowItems")]
787pub struct XlsxRowItems {
788 #[serde(rename = "@count")]
789 pub count: i64,
790 #[serde(rename = "i", default)]
791 pub i: Vec<XlsxI>,
792}
793
794#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
796#[serde(rename = "i")]
797pub struct XlsxI {
798 #[serde(rename = "x", default)]
799 pub x: Vec<XlsxX>,
800}
801
802#[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize)]
804#[serde(rename = "x")]
805pub struct XlsxX {}
806
807#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
809#[serde(rename = "colFields")]
810pub struct XlsxColFields {
811 #[serde(rename = "@count")]
812 pub count: i64,
813 #[serde(rename = "field", default)]
814 pub field: Vec<XlsxField>,
815}
816
817#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
819#[serde(rename = "colItems")]
820pub struct XlsxColItems {
821 #[serde(rename = "@count")]
822 pub count: i64,
823 #[serde(rename = "i", default)]
824 pub i: Vec<XlsxI>,
825}
826
827#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
829#[serde(rename = "pageFields")]
830pub struct XlsxPageFields {
831 #[serde(rename = "@count")]
832 pub count: i64,
833 #[serde(rename = "pageField", default)]
834 pub page_field: Vec<XlsxPageField>,
835}
836
837#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
839#[serde(rename = "pageField")]
840pub struct XlsxPageField {
841 #[serde(rename = "@fld")]
842 pub fld: i64,
843 #[serde(rename = "@item", default, skip_serializing_if = "Option::is_none")]
844 pub item: Option<i64>,
845 #[serde(rename = "@hier", default, skip_serializing_if = "Option::is_none")]
846 pub hier: Option<i64>,
847 #[serde(rename = "@name", default, skip_serializing_if = "Option::is_none")]
848 pub name: Option<String>,
849 #[serde(rename = "@cap", default, skip_serializing_if = "Option::is_none")]
850 pub cap: Option<String>,
851 #[serde(rename = "extLst", default, skip_serializing_if = "Option::is_none")]
852 pub ext_lst: Option<XlsxExtLst>,
853}
854
855#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
857#[serde(rename = "dataFields")]
858pub struct XlsxDataFields {
859 #[serde(rename = "@count")]
860 pub count: i64,
861 #[serde(rename = "dataField", default)]
862 pub data_field: Vec<XlsxDataField>,
863}
864
865#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
867#[serde(rename = "dataField")]
868pub struct XlsxDataField {
869 #[serde(rename = "@name", default, skip_serializing_if = "Option::is_none")]
870 pub name: Option<String>,
871 #[serde(rename = "@fld")]
872 pub fld: i64,
873 #[serde(rename = "@subtotal", default, skip_serializing_if = "Option::is_none")]
874 pub subtotal: Option<String>,
875 #[serde(
876 rename = "@showDataAs",
877 default,
878 skip_serializing_if = "Option::is_none"
879 )]
880 pub show_data_as: Option<String>,
881 #[serde(
882 rename = "@baseField",
883 default,
884 skip_serializing_if = "Option::is_none"
885 )]
886 pub base_field: Option<i64>,
887 #[serde(rename = "@baseItem", default, skip_serializing_if = "Option::is_none")]
888 pub base_item: Option<i64>,
889 #[serde(rename = "@numFmtId", default, skip_serializing_if = "Option::is_none")]
890 pub num_fmt_id: Option<i64>,
891 #[serde(rename = "extLst", default, skip_serializing_if = "Option::is_none")]
892 pub ext_lst: Option<XlsxExtLst>,
893}
894
895#[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize)]
897#[serde(rename = "x14:dataField")]
898pub struct XlsxX14DataField {
899 #[serde(
900 rename = "@xmlns:x14",
901 default,
902 skip_serializing_if = "Option::is_none"
903 )]
904 pub xmlns_x14: Option<String>,
905 #[serde(
906 rename = "@pivotShowAs",
907 default,
908 skip_serializing_if = "Option::is_none"
909 )]
910 pub pivot_show_as: Option<String>,
911 #[serde(
912 rename = "@sourceField",
913 default,
914 skip_serializing_if = "Option::is_none"
915 )]
916 pub source_field: Option<i64>,
917 #[serde(
918 rename = "@uniqueName",
919 default,
920 skip_serializing_if = "Option::is_none"
921 )]
922 pub unique_name: Option<String>,
923}
924
925#[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize)]
927#[serde(rename = "conditionalFormats")]
928pub struct XlsxConditionalFormats {}
929
930#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
932#[serde(rename = "pivotTableStyleInfo")]
933pub struct XlsxPivotTableStyleInfo {
934 #[serde(rename = "@name")]
935 pub name: String,
936 #[serde(rename = "@showRowHeaders")]
937 pub show_row_headers: bool,
938 #[serde(rename = "@showColHeaders")]
939 pub show_col_headers: bool,
940 #[serde(
941 rename = "@showRowStripes",
942 default,
943 skip_serializing_if = "Option::is_none"
944 )]
945 pub show_row_stripes: Option<bool>,
946 #[serde(
947 rename = "@showColStripes",
948 default,
949 skip_serializing_if = "Option::is_none"
950 )]
951 pub show_col_stripes: Option<bool>,
952 #[serde(
953 rename = "@showLastColumn",
954 default,
955 skip_serializing_if = "Option::is_none"
956 )]
957 pub show_last_column: Option<bool>,
958}
959
960#[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize)]
963#[serde(rename = "dataField")]
964pub struct DecodeX14DataField {
965 #[serde(
966 rename = "@pivotShowAs",
967 default,
968 skip_serializing_if = "Option::is_none"
969 )]
970 pub pivot_show_as: Option<String>,
971 #[serde(
972 rename = "@sourceField",
973 default,
974 skip_serializing_if = "Option::is_none"
975 )]
976 pub source_field: Option<i64>,
977 #[serde(
978 rename = "@uniqueName",
979 default,
980 skip_serializing_if = "Option::is_none"
981 )]
982 pub unique_name: Option<String>,
983}