1use serde::{Deserialize, Serialize};
5
6pub mod ns {
8 pub const O: &str = "urn:schemas-microsoft-com:office:office";
10 pub const S: &str = "http://schemas.openxmlformats.org/officeDocument/2006/sharedTypes";
12 pub const V: &str = "urn:schemas-microsoft-com:vml";
14 pub const W10: &str = "urn:schemas-microsoft-com:office:word";
16 pub const X: &str = "urn:schemas-microsoft-com:office:excel";
18 pub const R: &str = "http://schemas.openxmlformats.org/officeDocument/2006/relationships";
20 pub const SML: &str = "http://schemas.openxmlformats.org/spreadsheetml/2006/main";
22 pub const XDR: &str = "http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing";
24}
25
26pub type Language = String;
27
28pub type HexColorRgb = Vec<u8>;
29
30pub type Panose = Vec<u8>;
31
32#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
33pub enum CalendarType {
34 #[serde(rename = "gregorian")]
35 Gregorian,
36 #[serde(rename = "gregorianUs")]
37 GregorianUs,
38 #[serde(rename = "gregorianMeFrench")]
39 GregorianMeFrench,
40 #[serde(rename = "gregorianArabic")]
41 GregorianArabic,
42 #[serde(rename = "hijri")]
43 Hijri,
44 #[serde(rename = "hebrew")]
45 Hebrew,
46 #[serde(rename = "taiwan")]
47 Taiwan,
48 #[serde(rename = "japan")]
49 Japan,
50 #[serde(rename = "thai")]
51 Thai,
52 #[serde(rename = "korea")]
53 Korea,
54 #[serde(rename = "saka")]
55 Saka,
56 #[serde(rename = "gregorianXlitEnglish")]
57 GregorianXlitEnglish,
58 #[serde(rename = "gregorianXlitFrench")]
59 GregorianXlitFrench,
60 #[serde(rename = "none")]
61 None,
62}
63
64impl std::fmt::Display for CalendarType {
65 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
66 match self {
67 Self::Gregorian => write!(f, "gregorian"),
68 Self::GregorianUs => write!(f, "gregorianUs"),
69 Self::GregorianMeFrench => write!(f, "gregorianMeFrench"),
70 Self::GregorianArabic => write!(f, "gregorianArabic"),
71 Self::Hijri => write!(f, "hijri"),
72 Self::Hebrew => write!(f, "hebrew"),
73 Self::Taiwan => write!(f, "taiwan"),
74 Self::Japan => write!(f, "japan"),
75 Self::Thai => write!(f, "thai"),
76 Self::Korea => write!(f, "korea"),
77 Self::Saka => write!(f, "saka"),
78 Self::GregorianXlitEnglish => write!(f, "gregorianXlitEnglish"),
79 Self::GregorianXlitFrench => write!(f, "gregorianXlitFrench"),
80 Self::None => write!(f, "none"),
81 }
82 }
83}
84
85impl std::str::FromStr for CalendarType {
86 type Err = String;
87
88 fn from_str(s: &str) -> Result<Self, Self::Err> {
89 match s {
90 "gregorian" => Ok(Self::Gregorian),
91 "gregorianUs" => Ok(Self::GregorianUs),
92 "gregorianMeFrench" => Ok(Self::GregorianMeFrench),
93 "gregorianArabic" => Ok(Self::GregorianArabic),
94 "hijri" => Ok(Self::Hijri),
95 "hebrew" => Ok(Self::Hebrew),
96 "taiwan" => Ok(Self::Taiwan),
97 "japan" => Ok(Self::Japan),
98 "thai" => Ok(Self::Thai),
99 "korea" => Ok(Self::Korea),
100 "saka" => Ok(Self::Saka),
101 "gregorianXlitEnglish" => Ok(Self::GregorianXlitEnglish),
102 "gregorianXlitFrench" => Ok(Self::GregorianXlitFrench),
103 "none" => Ok(Self::None),
104 _ => Err(format!("unknown CalendarType value: {}", s)),
105 }
106 }
107}
108
109#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
110pub enum STAlgClass {
111 #[serde(rename = "hash")]
112 Hash,
113 #[serde(rename = "custom")]
114 Custom,
115}
116
117impl std::fmt::Display for STAlgClass {
118 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
119 match self {
120 Self::Hash => write!(f, "hash"),
121 Self::Custom => write!(f, "custom"),
122 }
123 }
124}
125
126impl std::str::FromStr for STAlgClass {
127 type Err = String;
128
129 fn from_str(s: &str) -> Result<Self, Self::Err> {
130 match s {
131 "hash" => Ok(Self::Hash),
132 "custom" => Ok(Self::Custom),
133 _ => Err(format!("unknown STAlgClass value: {}", s)),
134 }
135 }
136}
137
138#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
139pub enum STCryptProv {
140 #[serde(rename = "rsaAES")]
141 RsaAES,
142 #[serde(rename = "rsaFull")]
143 RsaFull,
144 #[serde(rename = "custom")]
145 Custom,
146}
147
148impl std::fmt::Display for STCryptProv {
149 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
150 match self {
151 Self::RsaAES => write!(f, "rsaAES"),
152 Self::RsaFull => write!(f, "rsaFull"),
153 Self::Custom => write!(f, "custom"),
154 }
155 }
156}
157
158impl std::str::FromStr for STCryptProv {
159 type Err = String;
160
161 fn from_str(s: &str) -> Result<Self, Self::Err> {
162 match s {
163 "rsaAES" => Ok(Self::RsaAES),
164 "rsaFull" => Ok(Self::RsaFull),
165 "custom" => Ok(Self::Custom),
166 _ => Err(format!("unknown STCryptProv value: {}", s)),
167 }
168 }
169}
170
171#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
172pub enum STAlgType {
173 #[serde(rename = "typeAny")]
174 TypeAny,
175 #[serde(rename = "custom")]
176 Custom,
177}
178
179impl std::fmt::Display for STAlgType {
180 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
181 match self {
182 Self::TypeAny => write!(f, "typeAny"),
183 Self::Custom => write!(f, "custom"),
184 }
185 }
186}
187
188impl std::str::FromStr for STAlgType {
189 type Err = String;
190
191 fn from_str(s: &str) -> Result<Self, Self::Err> {
192 match s {
193 "typeAny" => Ok(Self::TypeAny),
194 "custom" => Ok(Self::Custom),
195 _ => Err(format!("unknown STAlgType value: {}", s)),
196 }
197 }
198}
199
200pub type STColorType = String;
201
202pub type Guid = String;
203
204pub type OnOff = String;
205
206#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
207pub enum STOnOff1 {
208 #[serde(rename = "on")]
209 On,
210 #[serde(rename = "off")]
211 Off,
212}
213
214impl std::fmt::Display for STOnOff1 {
215 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
216 match self {
217 Self::On => write!(f, "on"),
218 Self::Off => write!(f, "off"),
219 }
220 }
221}
222
223impl std::str::FromStr for STOnOff1 {
224 type Err = String;
225
226 fn from_str(s: &str) -> Result<Self, Self::Err> {
227 match s {
228 "on" => Ok(Self::On),
229 "off" => Ok(Self::Off),
230 _ => Err(format!("unknown STOnOff1 value: {}", s)),
231 }
232 }
233}
234
235pub type STString = String;
236
237pub type STXmlName = String;
238
239#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
240pub enum TrueFalse {
241 #[serde(rename = "t")]
242 T,
243 #[serde(rename = "f")]
244 F,
245 #[serde(rename = "true")]
246 True,
247 #[serde(rename = "false")]
248 False,
249}
250
251impl std::fmt::Display for TrueFalse {
252 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
253 match self {
254 Self::T => write!(f, "t"),
255 Self::F => write!(f, "f"),
256 Self::True => write!(f, "true"),
257 Self::False => write!(f, "false"),
258 }
259 }
260}
261
262impl std::str::FromStr for TrueFalse {
263 type Err = String;
264
265 fn from_str(s: &str) -> Result<Self, Self::Err> {
266 match s {
267 "t" => Ok(Self::T),
268 "f" => Ok(Self::F),
269 "true" => Ok(Self::True),
270 "false" => Ok(Self::False),
271 _ => Err(format!("unknown TrueFalse value: {}", s)),
272 }
273 }
274}
275
276#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
277pub enum STTrueFalseBlank {
278 #[serde(rename = "t")]
279 T,
280 #[serde(rename = "f")]
281 F,
282 #[serde(rename = "true")]
283 True,
284 #[serde(rename = "false")]
285 False,
286 #[serde(rename = "")]
287 Empty,
288}
289
290impl std::fmt::Display for STTrueFalseBlank {
291 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
292 match self {
293 Self::T => write!(f, "t"),
294 Self::F => write!(f, "f"),
295 Self::True => write!(f, "true"),
296 Self::False => write!(f, "false"),
297 Self::Empty => write!(f, ""),
298 }
299 }
300}
301
302impl std::str::FromStr for STTrueFalseBlank {
303 type Err = String;
304
305 fn from_str(s: &str) -> Result<Self, Self::Err> {
306 match s {
307 "t" => Ok(Self::T),
308 "f" => Ok(Self::F),
309 "true" => Ok(Self::True),
310 "false" => Ok(Self::False),
311 "" => Ok(Self::Empty),
312 "True" => Ok(Self::True),
313 "False" => Ok(Self::False),
314 _ => Err(format!("unknown STTrueFalseBlank value: {}", s)),
315 }
316 }
317}
318
319pub type STUnsignedDecimalNumber = u64;
320
321pub type STTwipsMeasure = String;
322
323#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
324pub enum VerticalAlignRun {
325 #[serde(rename = "baseline")]
326 Baseline,
327 #[serde(rename = "superscript")]
328 Superscript,
329 #[serde(rename = "subscript")]
330 Subscript,
331}
332
333impl std::fmt::Display for VerticalAlignRun {
334 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
335 match self {
336 Self::Baseline => write!(f, "baseline"),
337 Self::Superscript => write!(f, "superscript"),
338 Self::Subscript => write!(f, "subscript"),
339 }
340 }
341}
342
343impl std::str::FromStr for VerticalAlignRun {
344 type Err = String;
345
346 fn from_str(s: &str) -> Result<Self, Self::Err> {
347 match s {
348 "baseline" => Ok(Self::Baseline),
349 "superscript" => Ok(Self::Superscript),
350 "subscript" => Ok(Self::Subscript),
351 _ => Err(format!("unknown VerticalAlignRun value: {}", s)),
352 }
353 }
354}
355
356pub type XmlString = String;
357
358#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
359pub enum STXAlign {
360 #[serde(rename = "left")]
361 Left,
362 #[serde(rename = "center")]
363 Center,
364 #[serde(rename = "right")]
365 Right,
366 #[serde(rename = "inside")]
367 Inside,
368 #[serde(rename = "outside")]
369 Outside,
370}
371
372impl std::fmt::Display for STXAlign {
373 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
374 match self {
375 Self::Left => write!(f, "left"),
376 Self::Center => write!(f, "center"),
377 Self::Right => write!(f, "right"),
378 Self::Inside => write!(f, "inside"),
379 Self::Outside => write!(f, "outside"),
380 }
381 }
382}
383
384impl std::str::FromStr for STXAlign {
385 type Err = String;
386
387 fn from_str(s: &str) -> Result<Self, Self::Err> {
388 match s {
389 "left" => Ok(Self::Left),
390 "center" => Ok(Self::Center),
391 "right" => Ok(Self::Right),
392 "inside" => Ok(Self::Inside),
393 "outside" => Ok(Self::Outside),
394 _ => Err(format!("unknown STXAlign value: {}", s)),
395 }
396 }
397}
398
399#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
400pub enum STYAlign {
401 #[serde(rename = "inline")]
402 Inline,
403 #[serde(rename = "top")]
404 Top,
405 #[serde(rename = "center")]
406 Center,
407 #[serde(rename = "bottom")]
408 Bottom,
409 #[serde(rename = "inside")]
410 Inside,
411 #[serde(rename = "outside")]
412 Outside,
413}
414
415impl std::fmt::Display for STYAlign {
416 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
417 match self {
418 Self::Inline => write!(f, "inline"),
419 Self::Top => write!(f, "top"),
420 Self::Center => write!(f, "center"),
421 Self::Bottom => write!(f, "bottom"),
422 Self::Inside => write!(f, "inside"),
423 Self::Outside => write!(f, "outside"),
424 }
425 }
426}
427
428impl std::str::FromStr for STYAlign {
429 type Err = String;
430
431 fn from_str(s: &str) -> Result<Self, Self::Err> {
432 match s {
433 "inline" => Ok(Self::Inline),
434 "top" => Ok(Self::Top),
435 "center" => Ok(Self::Center),
436 "bottom" => Ok(Self::Bottom),
437 "inside" => Ok(Self::Inside),
438 "outside" => Ok(Self::Outside),
439 _ => Err(format!("unknown STYAlign value: {}", s)),
440 }
441 }
442}
443
444#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
445pub enum STConformanceClass {
446 #[serde(rename = "strict")]
447 Strict,
448 #[serde(rename = "transitional")]
449 Transitional,
450}
451
452impl std::fmt::Display for STConformanceClass {
453 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
454 match self {
455 Self::Strict => write!(f, "strict"),
456 Self::Transitional => write!(f, "transitional"),
457 }
458 }
459}
460
461impl std::str::FromStr for STConformanceClass {
462 type Err = String;
463
464 fn from_str(s: &str) -> Result<Self, Self::Err> {
465 match s {
466 "strict" => Ok(Self::Strict),
467 "transitional" => Ok(Self::Transitional),
468 _ => Err(format!("unknown STConformanceClass value: {}", s)),
469 }
470 }
471}
472
473pub type STUniversalMeasure = String;
474
475pub type STPositiveUniversalMeasure = String;
476
477pub type STPercentage = String;
478
479pub type STFixedPercentage = String;
480
481pub type STPositivePercentage = String;
482
483pub type STPositiveFixedPercentage = String;
484
485pub type STRelationshipId = String;
486
487#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
488pub enum FilterOperator {
489 #[serde(rename = "equal")]
490 Equal,
491 #[serde(rename = "lessThan")]
492 LessThan,
493 #[serde(rename = "lessThanOrEqual")]
494 LessThanOrEqual,
495 #[serde(rename = "notEqual")]
496 NotEqual,
497 #[serde(rename = "greaterThanOrEqual")]
498 GreaterThanOrEqual,
499 #[serde(rename = "greaterThan")]
500 GreaterThan,
501}
502
503impl std::fmt::Display for FilterOperator {
504 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
505 match self {
506 Self::Equal => write!(f, "equal"),
507 Self::LessThan => write!(f, "lessThan"),
508 Self::LessThanOrEqual => write!(f, "lessThanOrEqual"),
509 Self::NotEqual => write!(f, "notEqual"),
510 Self::GreaterThanOrEqual => write!(f, "greaterThanOrEqual"),
511 Self::GreaterThan => write!(f, "greaterThan"),
512 }
513 }
514}
515
516impl std::str::FromStr for FilterOperator {
517 type Err = String;
518
519 fn from_str(s: &str) -> Result<Self, Self::Err> {
520 match s {
521 "equal" => Ok(Self::Equal),
522 "lessThan" => Ok(Self::LessThan),
523 "lessThanOrEqual" => Ok(Self::LessThanOrEqual),
524 "notEqual" => Ok(Self::NotEqual),
525 "greaterThanOrEqual" => Ok(Self::GreaterThanOrEqual),
526 "greaterThan" => Ok(Self::GreaterThan),
527 _ => Err(format!("unknown FilterOperator value: {}", s)),
528 }
529 }
530}
531
532#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
533pub enum DynamicFilterType {
534 #[serde(rename = "null")]
535 Null,
536 #[serde(rename = "aboveAverage")]
537 AboveAverage,
538 #[serde(rename = "belowAverage")]
539 BelowAverage,
540 #[serde(rename = "tomorrow")]
541 Tomorrow,
542 #[serde(rename = "today")]
543 Today,
544 #[serde(rename = "yesterday")]
545 Yesterday,
546 #[serde(rename = "nextWeek")]
547 NextWeek,
548 #[serde(rename = "thisWeek")]
549 ThisWeek,
550 #[serde(rename = "lastWeek")]
551 LastWeek,
552 #[serde(rename = "nextMonth")]
553 NextMonth,
554 #[serde(rename = "thisMonth")]
555 ThisMonth,
556 #[serde(rename = "lastMonth")]
557 LastMonth,
558 #[serde(rename = "nextQuarter")]
559 NextQuarter,
560 #[serde(rename = "thisQuarter")]
561 ThisQuarter,
562 #[serde(rename = "lastQuarter")]
563 LastQuarter,
564 #[serde(rename = "nextYear")]
565 NextYear,
566 #[serde(rename = "thisYear")]
567 ThisYear,
568 #[serde(rename = "lastYear")]
569 LastYear,
570 #[serde(rename = "yearToDate")]
571 YearToDate,
572 #[serde(rename = "Q1")]
573 Q1,
574 #[serde(rename = "Q2")]
575 Q2,
576 #[serde(rename = "Q3")]
577 Q3,
578 #[serde(rename = "Q4")]
579 Q4,
580 #[serde(rename = "M1")]
581 M1,
582 #[serde(rename = "M2")]
583 M2,
584 #[serde(rename = "M3")]
585 M3,
586 #[serde(rename = "M4")]
587 M4,
588 #[serde(rename = "M5")]
589 M5,
590 #[serde(rename = "M6")]
591 M6,
592 #[serde(rename = "M7")]
593 M7,
594 #[serde(rename = "M8")]
595 M8,
596 #[serde(rename = "M9")]
597 M9,
598 #[serde(rename = "M10")]
599 M10,
600 #[serde(rename = "M11")]
601 M11,
602 #[serde(rename = "M12")]
603 M12,
604}
605
606impl std::fmt::Display for DynamicFilterType {
607 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
608 match self {
609 Self::Null => write!(f, "null"),
610 Self::AboveAverage => write!(f, "aboveAverage"),
611 Self::BelowAverage => write!(f, "belowAverage"),
612 Self::Tomorrow => write!(f, "tomorrow"),
613 Self::Today => write!(f, "today"),
614 Self::Yesterday => write!(f, "yesterday"),
615 Self::NextWeek => write!(f, "nextWeek"),
616 Self::ThisWeek => write!(f, "thisWeek"),
617 Self::LastWeek => write!(f, "lastWeek"),
618 Self::NextMonth => write!(f, "nextMonth"),
619 Self::ThisMonth => write!(f, "thisMonth"),
620 Self::LastMonth => write!(f, "lastMonth"),
621 Self::NextQuarter => write!(f, "nextQuarter"),
622 Self::ThisQuarter => write!(f, "thisQuarter"),
623 Self::LastQuarter => write!(f, "lastQuarter"),
624 Self::NextYear => write!(f, "nextYear"),
625 Self::ThisYear => write!(f, "thisYear"),
626 Self::LastYear => write!(f, "lastYear"),
627 Self::YearToDate => write!(f, "yearToDate"),
628 Self::Q1 => write!(f, "Q1"),
629 Self::Q2 => write!(f, "Q2"),
630 Self::Q3 => write!(f, "Q3"),
631 Self::Q4 => write!(f, "Q4"),
632 Self::M1 => write!(f, "M1"),
633 Self::M2 => write!(f, "M2"),
634 Self::M3 => write!(f, "M3"),
635 Self::M4 => write!(f, "M4"),
636 Self::M5 => write!(f, "M5"),
637 Self::M6 => write!(f, "M6"),
638 Self::M7 => write!(f, "M7"),
639 Self::M8 => write!(f, "M8"),
640 Self::M9 => write!(f, "M9"),
641 Self::M10 => write!(f, "M10"),
642 Self::M11 => write!(f, "M11"),
643 Self::M12 => write!(f, "M12"),
644 }
645 }
646}
647
648impl std::str::FromStr for DynamicFilterType {
649 type Err = String;
650
651 fn from_str(s: &str) -> Result<Self, Self::Err> {
652 match s {
653 "null" => Ok(Self::Null),
654 "aboveAverage" => Ok(Self::AboveAverage),
655 "belowAverage" => Ok(Self::BelowAverage),
656 "tomorrow" => Ok(Self::Tomorrow),
657 "today" => Ok(Self::Today),
658 "yesterday" => Ok(Self::Yesterday),
659 "nextWeek" => Ok(Self::NextWeek),
660 "thisWeek" => Ok(Self::ThisWeek),
661 "lastWeek" => Ok(Self::LastWeek),
662 "nextMonth" => Ok(Self::NextMonth),
663 "thisMonth" => Ok(Self::ThisMonth),
664 "lastMonth" => Ok(Self::LastMonth),
665 "nextQuarter" => Ok(Self::NextQuarter),
666 "thisQuarter" => Ok(Self::ThisQuarter),
667 "lastQuarter" => Ok(Self::LastQuarter),
668 "nextYear" => Ok(Self::NextYear),
669 "thisYear" => Ok(Self::ThisYear),
670 "lastYear" => Ok(Self::LastYear),
671 "yearToDate" => Ok(Self::YearToDate),
672 "Q1" => Ok(Self::Q1),
673 "Q2" => Ok(Self::Q2),
674 "Q3" => Ok(Self::Q3),
675 "Q4" => Ok(Self::Q4),
676 "M1" => Ok(Self::M1),
677 "M2" => Ok(Self::M2),
678 "M3" => Ok(Self::M3),
679 "M4" => Ok(Self::M4),
680 "M5" => Ok(Self::M5),
681 "M6" => Ok(Self::M6),
682 "M7" => Ok(Self::M7),
683 "M8" => Ok(Self::M8),
684 "M9" => Ok(Self::M9),
685 "M10" => Ok(Self::M10),
686 "M11" => Ok(Self::M11),
687 "M12" => Ok(Self::M12),
688 _ => Err(format!("unknown DynamicFilterType value: {}", s)),
689 }
690 }
691}
692
693#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
694pub enum IconSetType {
695 #[serde(rename = "3Arrows")]
696 _3Arrows,
697 #[serde(rename = "3ArrowsGray")]
698 _3ArrowsGray,
699 #[serde(rename = "3Flags")]
700 _3Flags,
701 #[serde(rename = "3TrafficLights1")]
702 _3TrafficLights1,
703 #[serde(rename = "3TrafficLights2")]
704 _3TrafficLights2,
705 #[serde(rename = "3Signs")]
706 _3Signs,
707 #[serde(rename = "3Symbols")]
708 _3Symbols,
709 #[serde(rename = "3Symbols2")]
710 _3Symbols2,
711 #[serde(rename = "4Arrows")]
712 _4Arrows,
713 #[serde(rename = "4ArrowsGray")]
714 _4ArrowsGray,
715 #[serde(rename = "4RedToBlack")]
716 _4RedToBlack,
717 #[serde(rename = "4Rating")]
718 _4Rating,
719 #[serde(rename = "4TrafficLights")]
720 _4TrafficLights,
721 #[serde(rename = "5Arrows")]
722 _5Arrows,
723 #[serde(rename = "5ArrowsGray")]
724 _5ArrowsGray,
725 #[serde(rename = "5Rating")]
726 _5Rating,
727 #[serde(rename = "5Quarters")]
728 _5Quarters,
729}
730
731impl std::fmt::Display for IconSetType {
732 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
733 match self {
734 Self::_3Arrows => write!(f, "3Arrows"),
735 Self::_3ArrowsGray => write!(f, "3ArrowsGray"),
736 Self::_3Flags => write!(f, "3Flags"),
737 Self::_3TrafficLights1 => write!(f, "3TrafficLights1"),
738 Self::_3TrafficLights2 => write!(f, "3TrafficLights2"),
739 Self::_3Signs => write!(f, "3Signs"),
740 Self::_3Symbols => write!(f, "3Symbols"),
741 Self::_3Symbols2 => write!(f, "3Symbols2"),
742 Self::_4Arrows => write!(f, "4Arrows"),
743 Self::_4ArrowsGray => write!(f, "4ArrowsGray"),
744 Self::_4RedToBlack => write!(f, "4RedToBlack"),
745 Self::_4Rating => write!(f, "4Rating"),
746 Self::_4TrafficLights => write!(f, "4TrafficLights"),
747 Self::_5Arrows => write!(f, "5Arrows"),
748 Self::_5ArrowsGray => write!(f, "5ArrowsGray"),
749 Self::_5Rating => write!(f, "5Rating"),
750 Self::_5Quarters => write!(f, "5Quarters"),
751 }
752 }
753}
754
755impl std::str::FromStr for IconSetType {
756 type Err = String;
757
758 fn from_str(s: &str) -> Result<Self, Self::Err> {
759 match s {
760 "3Arrows" => Ok(Self::_3Arrows),
761 "3ArrowsGray" => Ok(Self::_3ArrowsGray),
762 "3Flags" => Ok(Self::_3Flags),
763 "3TrafficLights1" => Ok(Self::_3TrafficLights1),
764 "3TrafficLights2" => Ok(Self::_3TrafficLights2),
765 "3Signs" => Ok(Self::_3Signs),
766 "3Symbols" => Ok(Self::_3Symbols),
767 "3Symbols2" => Ok(Self::_3Symbols2),
768 "4Arrows" => Ok(Self::_4Arrows),
769 "4ArrowsGray" => Ok(Self::_4ArrowsGray),
770 "4RedToBlack" => Ok(Self::_4RedToBlack),
771 "4Rating" => Ok(Self::_4Rating),
772 "4TrafficLights" => Ok(Self::_4TrafficLights),
773 "5Arrows" => Ok(Self::_5Arrows),
774 "5ArrowsGray" => Ok(Self::_5ArrowsGray),
775 "5Rating" => Ok(Self::_5Rating),
776 "5Quarters" => Ok(Self::_5Quarters),
777 _ => Err(format!("unknown IconSetType value: {}", s)),
778 }
779 }
780}
781
782#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
783pub enum SortBy {
784 #[serde(rename = "value")]
785 Value,
786 #[serde(rename = "cellColor")]
787 CellColor,
788 #[serde(rename = "fontColor")]
789 FontColor,
790 #[serde(rename = "icon")]
791 Icon,
792}
793
794impl std::fmt::Display for SortBy {
795 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
796 match self {
797 Self::Value => write!(f, "value"),
798 Self::CellColor => write!(f, "cellColor"),
799 Self::FontColor => write!(f, "fontColor"),
800 Self::Icon => write!(f, "icon"),
801 }
802 }
803}
804
805impl std::str::FromStr for SortBy {
806 type Err = String;
807
808 fn from_str(s: &str) -> Result<Self, Self::Err> {
809 match s {
810 "value" => Ok(Self::Value),
811 "cellColor" => Ok(Self::CellColor),
812 "fontColor" => Ok(Self::FontColor),
813 "icon" => Ok(Self::Icon),
814 _ => Err(format!("unknown SortBy value: {}", s)),
815 }
816 }
817}
818
819#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
820pub enum SortMethod {
821 #[serde(rename = "stroke")]
822 Stroke,
823 #[serde(rename = "pinYin")]
824 PinYin,
825 #[serde(rename = "none")]
826 None,
827}
828
829impl std::fmt::Display for SortMethod {
830 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
831 match self {
832 Self::Stroke => write!(f, "stroke"),
833 Self::PinYin => write!(f, "pinYin"),
834 Self::None => write!(f, "none"),
835 }
836 }
837}
838
839impl std::str::FromStr for SortMethod {
840 type Err = String;
841
842 fn from_str(s: &str) -> Result<Self, Self::Err> {
843 match s {
844 "stroke" => Ok(Self::Stroke),
845 "pinYin" => Ok(Self::PinYin),
846 "none" => Ok(Self::None),
847 _ => Err(format!("unknown SortMethod value: {}", s)),
848 }
849 }
850}
851
852#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
853pub enum STDateTimeGrouping {
854 #[serde(rename = "year")]
855 Year,
856 #[serde(rename = "month")]
857 Month,
858 #[serde(rename = "day")]
859 Day,
860 #[serde(rename = "hour")]
861 Hour,
862 #[serde(rename = "minute")]
863 Minute,
864 #[serde(rename = "second")]
865 Second,
866}
867
868impl std::fmt::Display for STDateTimeGrouping {
869 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
870 match self {
871 Self::Year => write!(f, "year"),
872 Self::Month => write!(f, "month"),
873 Self::Day => write!(f, "day"),
874 Self::Hour => write!(f, "hour"),
875 Self::Minute => write!(f, "minute"),
876 Self::Second => write!(f, "second"),
877 }
878 }
879}
880
881impl std::str::FromStr for STDateTimeGrouping {
882 type Err = String;
883
884 fn from_str(s: &str) -> Result<Self, Self::Err> {
885 match s {
886 "year" => Ok(Self::Year),
887 "month" => Ok(Self::Month),
888 "day" => Ok(Self::Day),
889 "hour" => Ok(Self::Hour),
890 "minute" => Ok(Self::Minute),
891 "second" => Ok(Self::Second),
892 _ => Err(format!("unknown STDateTimeGrouping value: {}", s)),
893 }
894 }
895}
896
897pub type CellRef = String;
898
899pub type Reference = String;
900
901pub type STRefA = String;
902
903pub type SquareRef = String;
904
905pub type STFormula = XmlString;
906
907pub type STUnsignedIntHex = Vec<u8>;
908
909pub type STUnsignedShortHex = Vec<u8>;
910
911#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
912pub enum STTextHAlign {
913 #[serde(rename = "left")]
914 Left,
915 #[serde(rename = "center")]
916 Center,
917 #[serde(rename = "right")]
918 Right,
919 #[serde(rename = "justify")]
920 Justify,
921 #[serde(rename = "distributed")]
922 Distributed,
923}
924
925impl std::fmt::Display for STTextHAlign {
926 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
927 match self {
928 Self::Left => write!(f, "left"),
929 Self::Center => write!(f, "center"),
930 Self::Right => write!(f, "right"),
931 Self::Justify => write!(f, "justify"),
932 Self::Distributed => write!(f, "distributed"),
933 }
934 }
935}
936
937impl std::str::FromStr for STTextHAlign {
938 type Err = String;
939
940 fn from_str(s: &str) -> Result<Self, Self::Err> {
941 match s {
942 "left" => Ok(Self::Left),
943 "center" => Ok(Self::Center),
944 "right" => Ok(Self::Right),
945 "justify" => Ok(Self::Justify),
946 "distributed" => Ok(Self::Distributed),
947 _ => Err(format!("unknown STTextHAlign value: {}", s)),
948 }
949 }
950}
951
952#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
953pub enum STTextVAlign {
954 #[serde(rename = "top")]
955 Top,
956 #[serde(rename = "center")]
957 Center,
958 #[serde(rename = "bottom")]
959 Bottom,
960 #[serde(rename = "justify")]
961 Justify,
962 #[serde(rename = "distributed")]
963 Distributed,
964}
965
966impl std::fmt::Display for STTextVAlign {
967 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
968 match self {
969 Self::Top => write!(f, "top"),
970 Self::Center => write!(f, "center"),
971 Self::Bottom => write!(f, "bottom"),
972 Self::Justify => write!(f, "justify"),
973 Self::Distributed => write!(f, "distributed"),
974 }
975 }
976}
977
978impl std::str::FromStr for STTextVAlign {
979 type Err = String;
980
981 fn from_str(s: &str) -> Result<Self, Self::Err> {
982 match s {
983 "top" => Ok(Self::Top),
984 "center" => Ok(Self::Center),
985 "bottom" => Ok(Self::Bottom),
986 "justify" => Ok(Self::Justify),
987 "distributed" => Ok(Self::Distributed),
988 _ => Err(format!("unknown STTextVAlign value: {}", s)),
989 }
990 }
991}
992
993#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
994pub enum STCredMethod {
995 #[serde(rename = "integrated")]
996 Integrated,
997 #[serde(rename = "none")]
998 None,
999 #[serde(rename = "stored")]
1000 Stored,
1001 #[serde(rename = "prompt")]
1002 Prompt,
1003}
1004
1005impl std::fmt::Display for STCredMethod {
1006 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1007 match self {
1008 Self::Integrated => write!(f, "integrated"),
1009 Self::None => write!(f, "none"),
1010 Self::Stored => write!(f, "stored"),
1011 Self::Prompt => write!(f, "prompt"),
1012 }
1013 }
1014}
1015
1016impl std::str::FromStr for STCredMethod {
1017 type Err = String;
1018
1019 fn from_str(s: &str) -> Result<Self, Self::Err> {
1020 match s {
1021 "integrated" => Ok(Self::Integrated),
1022 "none" => Ok(Self::None),
1023 "stored" => Ok(Self::Stored),
1024 "prompt" => Ok(Self::Prompt),
1025 _ => Err(format!("unknown STCredMethod value: {}", s)),
1026 }
1027 }
1028}
1029
1030#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
1031pub enum STHtmlFmt {
1032 #[serde(rename = "none")]
1033 None,
1034 #[serde(rename = "rtf")]
1035 Rtf,
1036 #[serde(rename = "all")]
1037 All,
1038}
1039
1040impl std::fmt::Display for STHtmlFmt {
1041 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1042 match self {
1043 Self::None => write!(f, "none"),
1044 Self::Rtf => write!(f, "rtf"),
1045 Self::All => write!(f, "all"),
1046 }
1047 }
1048}
1049
1050impl std::str::FromStr for STHtmlFmt {
1051 type Err = String;
1052
1053 fn from_str(s: &str) -> Result<Self, Self::Err> {
1054 match s {
1055 "none" => Ok(Self::None),
1056 "rtf" => Ok(Self::Rtf),
1057 "all" => Ok(Self::All),
1058 _ => Err(format!("unknown STHtmlFmt value: {}", s)),
1059 }
1060 }
1061}
1062
1063#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
1064pub enum STParameterType {
1065 #[serde(rename = "prompt")]
1066 Prompt,
1067 #[serde(rename = "value")]
1068 Value,
1069 #[serde(rename = "cell")]
1070 Cell,
1071}
1072
1073impl std::fmt::Display for STParameterType {
1074 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1075 match self {
1076 Self::Prompt => write!(f, "prompt"),
1077 Self::Value => write!(f, "value"),
1078 Self::Cell => write!(f, "cell"),
1079 }
1080 }
1081}
1082
1083impl std::str::FromStr for STParameterType {
1084 type Err = String;
1085
1086 fn from_str(s: &str) -> Result<Self, Self::Err> {
1087 match s {
1088 "prompt" => Ok(Self::Prompt),
1089 "value" => Ok(Self::Value),
1090 "cell" => Ok(Self::Cell),
1091 _ => Err(format!("unknown STParameterType value: {}", s)),
1092 }
1093 }
1094}
1095
1096#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
1097pub enum STFileType {
1098 #[serde(rename = "mac")]
1099 Mac,
1100 #[serde(rename = "win")]
1101 Win,
1102 #[serde(rename = "dos")]
1103 Dos,
1104 #[serde(rename = "lin")]
1105 Lin,
1106 #[serde(rename = "other")]
1107 Other,
1108}
1109
1110impl std::fmt::Display for STFileType {
1111 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1112 match self {
1113 Self::Mac => write!(f, "mac"),
1114 Self::Win => write!(f, "win"),
1115 Self::Dos => write!(f, "dos"),
1116 Self::Lin => write!(f, "lin"),
1117 Self::Other => write!(f, "other"),
1118 }
1119 }
1120}
1121
1122impl std::str::FromStr for STFileType {
1123 type Err = String;
1124
1125 fn from_str(s: &str) -> Result<Self, Self::Err> {
1126 match s {
1127 "mac" => Ok(Self::Mac),
1128 "win" => Ok(Self::Win),
1129 "dos" => Ok(Self::Dos),
1130 "lin" => Ok(Self::Lin),
1131 "other" => Ok(Self::Other),
1132 _ => Err(format!("unknown STFileType value: {}", s)),
1133 }
1134 }
1135}
1136
1137#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
1138pub enum STQualifier {
1139 #[serde(rename = "doubleQuote")]
1140 DoubleQuote,
1141 #[serde(rename = "singleQuote")]
1142 SingleQuote,
1143 #[serde(rename = "none")]
1144 None,
1145}
1146
1147impl std::fmt::Display for STQualifier {
1148 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1149 match self {
1150 Self::DoubleQuote => write!(f, "doubleQuote"),
1151 Self::SingleQuote => write!(f, "singleQuote"),
1152 Self::None => write!(f, "none"),
1153 }
1154 }
1155}
1156
1157impl std::str::FromStr for STQualifier {
1158 type Err = String;
1159
1160 fn from_str(s: &str) -> Result<Self, Self::Err> {
1161 match s {
1162 "doubleQuote" => Ok(Self::DoubleQuote),
1163 "singleQuote" => Ok(Self::SingleQuote),
1164 "none" => Ok(Self::None),
1165 _ => Err(format!("unknown STQualifier value: {}", s)),
1166 }
1167 }
1168}
1169
1170#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
1171pub enum STExternalConnectionType {
1172 #[serde(rename = "general")]
1173 General,
1174 #[serde(rename = "text")]
1175 Text,
1176 #[serde(rename = "MDY")]
1177 MDY,
1178 #[serde(rename = "DMY")]
1179 DMY,
1180 #[serde(rename = "YMD")]
1181 YMD,
1182 #[serde(rename = "MYD")]
1183 MYD,
1184 #[serde(rename = "DYM")]
1185 DYM,
1186 #[serde(rename = "YDM")]
1187 YDM,
1188 #[serde(rename = "skip")]
1189 Skip,
1190 #[serde(rename = "EMD")]
1191 EMD,
1192}
1193
1194impl std::fmt::Display for STExternalConnectionType {
1195 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1196 match self {
1197 Self::General => write!(f, "general"),
1198 Self::Text => write!(f, "text"),
1199 Self::MDY => write!(f, "MDY"),
1200 Self::DMY => write!(f, "DMY"),
1201 Self::YMD => write!(f, "YMD"),
1202 Self::MYD => write!(f, "MYD"),
1203 Self::DYM => write!(f, "DYM"),
1204 Self::YDM => write!(f, "YDM"),
1205 Self::Skip => write!(f, "skip"),
1206 Self::EMD => write!(f, "EMD"),
1207 }
1208 }
1209}
1210
1211impl std::str::FromStr for STExternalConnectionType {
1212 type Err = String;
1213
1214 fn from_str(s: &str) -> Result<Self, Self::Err> {
1215 match s {
1216 "general" => Ok(Self::General),
1217 "text" => Ok(Self::Text),
1218 "MDY" => Ok(Self::MDY),
1219 "DMY" => Ok(Self::DMY),
1220 "YMD" => Ok(Self::YMD),
1221 "MYD" => Ok(Self::MYD),
1222 "DYM" => Ok(Self::DYM),
1223 "YDM" => Ok(Self::YDM),
1224 "skip" => Ok(Self::Skip),
1225 "EMD" => Ok(Self::EMD),
1226 _ => Err(format!("unknown STExternalConnectionType value: {}", s)),
1227 }
1228 }
1229}
1230
1231#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
1232pub enum STSourceType {
1233 #[serde(rename = "worksheet")]
1234 Worksheet,
1235 #[serde(rename = "external")]
1236 External,
1237 #[serde(rename = "consolidation")]
1238 Consolidation,
1239 #[serde(rename = "scenario")]
1240 Scenario,
1241}
1242
1243impl std::fmt::Display for STSourceType {
1244 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1245 match self {
1246 Self::Worksheet => write!(f, "worksheet"),
1247 Self::External => write!(f, "external"),
1248 Self::Consolidation => write!(f, "consolidation"),
1249 Self::Scenario => write!(f, "scenario"),
1250 }
1251 }
1252}
1253
1254impl std::str::FromStr for STSourceType {
1255 type Err = String;
1256
1257 fn from_str(s: &str) -> Result<Self, Self::Err> {
1258 match s {
1259 "worksheet" => Ok(Self::Worksheet),
1260 "external" => Ok(Self::External),
1261 "consolidation" => Ok(Self::Consolidation),
1262 "scenario" => Ok(Self::Scenario),
1263 _ => Err(format!("unknown STSourceType value: {}", s)),
1264 }
1265 }
1266}
1267
1268#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
1269pub enum STGroupBy {
1270 #[serde(rename = "range")]
1271 Range,
1272 #[serde(rename = "seconds")]
1273 Seconds,
1274 #[serde(rename = "minutes")]
1275 Minutes,
1276 #[serde(rename = "hours")]
1277 Hours,
1278 #[serde(rename = "days")]
1279 Days,
1280 #[serde(rename = "months")]
1281 Months,
1282 #[serde(rename = "quarters")]
1283 Quarters,
1284 #[serde(rename = "years")]
1285 Years,
1286}
1287
1288impl std::fmt::Display for STGroupBy {
1289 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1290 match self {
1291 Self::Range => write!(f, "range"),
1292 Self::Seconds => write!(f, "seconds"),
1293 Self::Minutes => write!(f, "minutes"),
1294 Self::Hours => write!(f, "hours"),
1295 Self::Days => write!(f, "days"),
1296 Self::Months => write!(f, "months"),
1297 Self::Quarters => write!(f, "quarters"),
1298 Self::Years => write!(f, "years"),
1299 }
1300 }
1301}
1302
1303impl std::str::FromStr for STGroupBy {
1304 type Err = String;
1305
1306 fn from_str(s: &str) -> Result<Self, Self::Err> {
1307 match s {
1308 "range" => Ok(Self::Range),
1309 "seconds" => Ok(Self::Seconds),
1310 "minutes" => Ok(Self::Minutes),
1311 "hours" => Ok(Self::Hours),
1312 "days" => Ok(Self::Days),
1313 "months" => Ok(Self::Months),
1314 "quarters" => Ok(Self::Quarters),
1315 "years" => Ok(Self::Years),
1316 _ => Err(format!("unknown STGroupBy value: {}", s)),
1317 }
1318 }
1319}
1320
1321#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
1322pub enum STSortType {
1323 #[serde(rename = "none")]
1324 None,
1325 #[serde(rename = "ascending")]
1326 Ascending,
1327 #[serde(rename = "descending")]
1328 Descending,
1329 #[serde(rename = "ascendingAlpha")]
1330 AscendingAlpha,
1331 #[serde(rename = "descendingAlpha")]
1332 DescendingAlpha,
1333 #[serde(rename = "ascendingNatural")]
1334 AscendingNatural,
1335 #[serde(rename = "descendingNatural")]
1336 DescendingNatural,
1337}
1338
1339impl std::fmt::Display for STSortType {
1340 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1341 match self {
1342 Self::None => write!(f, "none"),
1343 Self::Ascending => write!(f, "ascending"),
1344 Self::Descending => write!(f, "descending"),
1345 Self::AscendingAlpha => write!(f, "ascendingAlpha"),
1346 Self::DescendingAlpha => write!(f, "descendingAlpha"),
1347 Self::AscendingNatural => write!(f, "ascendingNatural"),
1348 Self::DescendingNatural => write!(f, "descendingNatural"),
1349 }
1350 }
1351}
1352
1353impl std::str::FromStr for STSortType {
1354 type Err = String;
1355
1356 fn from_str(s: &str) -> Result<Self, Self::Err> {
1357 match s {
1358 "none" => Ok(Self::None),
1359 "ascending" => Ok(Self::Ascending),
1360 "descending" => Ok(Self::Descending),
1361 "ascendingAlpha" => Ok(Self::AscendingAlpha),
1362 "descendingAlpha" => Ok(Self::DescendingAlpha),
1363 "ascendingNatural" => Ok(Self::AscendingNatural),
1364 "descendingNatural" => Ok(Self::DescendingNatural),
1365 _ => Err(format!("unknown STSortType value: {}", s)),
1366 }
1367 }
1368}
1369
1370#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
1371pub enum STScope {
1372 #[serde(rename = "selection")]
1373 Selection,
1374 #[serde(rename = "data")]
1375 Data,
1376 #[serde(rename = "field")]
1377 Field,
1378}
1379
1380impl std::fmt::Display for STScope {
1381 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1382 match self {
1383 Self::Selection => write!(f, "selection"),
1384 Self::Data => write!(f, "data"),
1385 Self::Field => write!(f, "field"),
1386 }
1387 }
1388}
1389
1390impl std::str::FromStr for STScope {
1391 type Err = String;
1392
1393 fn from_str(s: &str) -> Result<Self, Self::Err> {
1394 match s {
1395 "selection" => Ok(Self::Selection),
1396 "data" => Ok(Self::Data),
1397 "field" => Ok(Self::Field),
1398 _ => Err(format!("unknown STScope value: {}", s)),
1399 }
1400 }
1401}
1402
1403#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
1404pub enum STType {
1405 #[serde(rename = "none")]
1406 None,
1407 #[serde(rename = "all")]
1408 All,
1409 #[serde(rename = "row")]
1410 Row,
1411 #[serde(rename = "column")]
1412 Column,
1413}
1414
1415impl std::fmt::Display for STType {
1416 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1417 match self {
1418 Self::None => write!(f, "none"),
1419 Self::All => write!(f, "all"),
1420 Self::Row => write!(f, "row"),
1421 Self::Column => write!(f, "column"),
1422 }
1423 }
1424}
1425
1426impl std::str::FromStr for STType {
1427 type Err = String;
1428
1429 fn from_str(s: &str) -> Result<Self, Self::Err> {
1430 match s {
1431 "none" => Ok(Self::None),
1432 "all" => Ok(Self::All),
1433 "row" => Ok(Self::Row),
1434 "column" => Ok(Self::Column),
1435 _ => Err(format!("unknown STType value: {}", s)),
1436 }
1437 }
1438}
1439
1440#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
1441pub enum STShowDataAs {
1442 #[serde(rename = "normal")]
1443 Normal,
1444 #[serde(rename = "difference")]
1445 Difference,
1446 #[serde(rename = "percent")]
1447 Percent,
1448 #[serde(rename = "percentDiff")]
1449 PercentDiff,
1450 #[serde(rename = "runTotal")]
1451 RunTotal,
1452 #[serde(rename = "percentOfRow")]
1453 PercentOfRow,
1454 #[serde(rename = "percentOfCol")]
1455 PercentOfCol,
1456 #[serde(rename = "percentOfTotal")]
1457 PercentOfTotal,
1458 #[serde(rename = "index")]
1459 Index,
1460}
1461
1462impl std::fmt::Display for STShowDataAs {
1463 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1464 match self {
1465 Self::Normal => write!(f, "normal"),
1466 Self::Difference => write!(f, "difference"),
1467 Self::Percent => write!(f, "percent"),
1468 Self::PercentDiff => write!(f, "percentDiff"),
1469 Self::RunTotal => write!(f, "runTotal"),
1470 Self::PercentOfRow => write!(f, "percentOfRow"),
1471 Self::PercentOfCol => write!(f, "percentOfCol"),
1472 Self::PercentOfTotal => write!(f, "percentOfTotal"),
1473 Self::Index => write!(f, "index"),
1474 }
1475 }
1476}
1477
1478impl std::str::FromStr for STShowDataAs {
1479 type Err = String;
1480
1481 fn from_str(s: &str) -> Result<Self, Self::Err> {
1482 match s {
1483 "normal" => Ok(Self::Normal),
1484 "difference" => Ok(Self::Difference),
1485 "percent" => Ok(Self::Percent),
1486 "percentDiff" => Ok(Self::PercentDiff),
1487 "runTotal" => Ok(Self::RunTotal),
1488 "percentOfRow" => Ok(Self::PercentOfRow),
1489 "percentOfCol" => Ok(Self::PercentOfCol),
1490 "percentOfTotal" => Ok(Self::PercentOfTotal),
1491 "index" => Ok(Self::Index),
1492 _ => Err(format!("unknown STShowDataAs value: {}", s)),
1493 }
1494 }
1495}
1496
1497#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
1498pub enum STItemType {
1499 #[serde(rename = "data")]
1500 Data,
1501 #[serde(rename = "default")]
1502 Default,
1503 #[serde(rename = "sum")]
1504 Sum,
1505 #[serde(rename = "countA")]
1506 CountA,
1507 #[serde(rename = "avg")]
1508 Avg,
1509 #[serde(rename = "max")]
1510 Max,
1511 #[serde(rename = "min")]
1512 Min,
1513 #[serde(rename = "product")]
1514 Product,
1515 #[serde(rename = "count")]
1516 Count,
1517 #[serde(rename = "stdDev")]
1518 StdDev,
1519 #[serde(rename = "stdDevP")]
1520 StdDevP,
1521 #[serde(rename = "var")]
1522 Var,
1523 #[serde(rename = "varP")]
1524 VarP,
1525 #[serde(rename = "grand")]
1526 Grand,
1527 #[serde(rename = "blank")]
1528 Blank,
1529}
1530
1531impl std::fmt::Display for STItemType {
1532 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1533 match self {
1534 Self::Data => write!(f, "data"),
1535 Self::Default => write!(f, "default"),
1536 Self::Sum => write!(f, "sum"),
1537 Self::CountA => write!(f, "countA"),
1538 Self::Avg => write!(f, "avg"),
1539 Self::Max => write!(f, "max"),
1540 Self::Min => write!(f, "min"),
1541 Self::Product => write!(f, "product"),
1542 Self::Count => write!(f, "count"),
1543 Self::StdDev => write!(f, "stdDev"),
1544 Self::StdDevP => write!(f, "stdDevP"),
1545 Self::Var => write!(f, "var"),
1546 Self::VarP => write!(f, "varP"),
1547 Self::Grand => write!(f, "grand"),
1548 Self::Blank => write!(f, "blank"),
1549 }
1550 }
1551}
1552
1553impl std::str::FromStr for STItemType {
1554 type Err = String;
1555
1556 fn from_str(s: &str) -> Result<Self, Self::Err> {
1557 match s {
1558 "data" => Ok(Self::Data),
1559 "default" => Ok(Self::Default),
1560 "sum" => Ok(Self::Sum),
1561 "countA" => Ok(Self::CountA),
1562 "avg" => Ok(Self::Avg),
1563 "max" => Ok(Self::Max),
1564 "min" => Ok(Self::Min),
1565 "product" => Ok(Self::Product),
1566 "count" => Ok(Self::Count),
1567 "stdDev" => Ok(Self::StdDev),
1568 "stdDevP" => Ok(Self::StdDevP),
1569 "var" => Ok(Self::Var),
1570 "varP" => Ok(Self::VarP),
1571 "grand" => Ok(Self::Grand),
1572 "blank" => Ok(Self::Blank),
1573 _ => Err(format!("unknown STItemType value: {}", s)),
1574 }
1575 }
1576}
1577
1578#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
1579pub enum STFormatAction {
1580 #[serde(rename = "blank")]
1581 Blank,
1582 #[serde(rename = "formatting")]
1583 Formatting,
1584 #[serde(rename = "drill")]
1585 Drill,
1586 #[serde(rename = "formula")]
1587 Formula,
1588}
1589
1590impl std::fmt::Display for STFormatAction {
1591 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1592 match self {
1593 Self::Blank => write!(f, "blank"),
1594 Self::Formatting => write!(f, "formatting"),
1595 Self::Drill => write!(f, "drill"),
1596 Self::Formula => write!(f, "formula"),
1597 }
1598 }
1599}
1600
1601impl std::str::FromStr for STFormatAction {
1602 type Err = String;
1603
1604 fn from_str(s: &str) -> Result<Self, Self::Err> {
1605 match s {
1606 "blank" => Ok(Self::Blank),
1607 "formatting" => Ok(Self::Formatting),
1608 "drill" => Ok(Self::Drill),
1609 "formula" => Ok(Self::Formula),
1610 _ => Err(format!("unknown STFormatAction value: {}", s)),
1611 }
1612 }
1613}
1614
1615#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
1616pub enum STFieldSortType {
1617 #[serde(rename = "manual")]
1618 Manual,
1619 #[serde(rename = "ascending")]
1620 Ascending,
1621 #[serde(rename = "descending")]
1622 Descending,
1623}
1624
1625impl std::fmt::Display for STFieldSortType {
1626 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1627 match self {
1628 Self::Manual => write!(f, "manual"),
1629 Self::Ascending => write!(f, "ascending"),
1630 Self::Descending => write!(f, "descending"),
1631 }
1632 }
1633}
1634
1635impl std::str::FromStr for STFieldSortType {
1636 type Err = String;
1637
1638 fn from_str(s: &str) -> Result<Self, Self::Err> {
1639 match s {
1640 "manual" => Ok(Self::Manual),
1641 "ascending" => Ok(Self::Ascending),
1642 "descending" => Ok(Self::Descending),
1643 _ => Err(format!("unknown STFieldSortType value: {}", s)),
1644 }
1645 }
1646}
1647
1648#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
1649pub enum STPivotFilterType {
1650 #[serde(rename = "unknown")]
1651 Unknown,
1652 #[serde(rename = "count")]
1653 Count,
1654 #[serde(rename = "percent")]
1655 Percent,
1656 #[serde(rename = "sum")]
1657 Sum,
1658 #[serde(rename = "captionEqual")]
1659 CaptionEqual,
1660 #[serde(rename = "captionNotEqual")]
1661 CaptionNotEqual,
1662 #[serde(rename = "captionBeginsWith")]
1663 CaptionBeginsWith,
1664 #[serde(rename = "captionNotBeginsWith")]
1665 CaptionNotBeginsWith,
1666 #[serde(rename = "captionEndsWith")]
1667 CaptionEndsWith,
1668 #[serde(rename = "captionNotEndsWith")]
1669 CaptionNotEndsWith,
1670 #[serde(rename = "captionContains")]
1671 CaptionContains,
1672 #[serde(rename = "captionNotContains")]
1673 CaptionNotContains,
1674 #[serde(rename = "captionGreaterThan")]
1675 CaptionGreaterThan,
1676 #[serde(rename = "captionGreaterThanOrEqual")]
1677 CaptionGreaterThanOrEqual,
1678 #[serde(rename = "captionLessThan")]
1679 CaptionLessThan,
1680 #[serde(rename = "captionLessThanOrEqual")]
1681 CaptionLessThanOrEqual,
1682 #[serde(rename = "captionBetween")]
1683 CaptionBetween,
1684 #[serde(rename = "captionNotBetween")]
1685 CaptionNotBetween,
1686 #[serde(rename = "valueEqual")]
1687 ValueEqual,
1688 #[serde(rename = "valueNotEqual")]
1689 ValueNotEqual,
1690 #[serde(rename = "valueGreaterThan")]
1691 ValueGreaterThan,
1692 #[serde(rename = "valueGreaterThanOrEqual")]
1693 ValueGreaterThanOrEqual,
1694 #[serde(rename = "valueLessThan")]
1695 ValueLessThan,
1696 #[serde(rename = "valueLessThanOrEqual")]
1697 ValueLessThanOrEqual,
1698 #[serde(rename = "valueBetween")]
1699 ValueBetween,
1700 #[serde(rename = "valueNotBetween")]
1701 ValueNotBetween,
1702 #[serde(rename = "dateEqual")]
1703 DateEqual,
1704 #[serde(rename = "dateNotEqual")]
1705 DateNotEqual,
1706 #[serde(rename = "dateOlderThan")]
1707 DateOlderThan,
1708 #[serde(rename = "dateOlderThanOrEqual")]
1709 DateOlderThanOrEqual,
1710 #[serde(rename = "dateNewerThan")]
1711 DateNewerThan,
1712 #[serde(rename = "dateNewerThanOrEqual")]
1713 DateNewerThanOrEqual,
1714 #[serde(rename = "dateBetween")]
1715 DateBetween,
1716 #[serde(rename = "dateNotBetween")]
1717 DateNotBetween,
1718 #[serde(rename = "tomorrow")]
1719 Tomorrow,
1720 #[serde(rename = "today")]
1721 Today,
1722 #[serde(rename = "yesterday")]
1723 Yesterday,
1724 #[serde(rename = "nextWeek")]
1725 NextWeek,
1726 #[serde(rename = "thisWeek")]
1727 ThisWeek,
1728 #[serde(rename = "lastWeek")]
1729 LastWeek,
1730 #[serde(rename = "nextMonth")]
1731 NextMonth,
1732 #[serde(rename = "thisMonth")]
1733 ThisMonth,
1734 #[serde(rename = "lastMonth")]
1735 LastMonth,
1736 #[serde(rename = "nextQuarter")]
1737 NextQuarter,
1738 #[serde(rename = "thisQuarter")]
1739 ThisQuarter,
1740 #[serde(rename = "lastQuarter")]
1741 LastQuarter,
1742 #[serde(rename = "nextYear")]
1743 NextYear,
1744 #[serde(rename = "thisYear")]
1745 ThisYear,
1746 #[serde(rename = "lastYear")]
1747 LastYear,
1748 #[serde(rename = "yearToDate")]
1749 YearToDate,
1750 #[serde(rename = "Q1")]
1751 Q1,
1752 #[serde(rename = "Q2")]
1753 Q2,
1754 #[serde(rename = "Q3")]
1755 Q3,
1756 #[serde(rename = "Q4")]
1757 Q4,
1758 #[serde(rename = "M1")]
1759 M1,
1760 #[serde(rename = "M2")]
1761 M2,
1762 #[serde(rename = "M3")]
1763 M3,
1764 #[serde(rename = "M4")]
1765 M4,
1766 #[serde(rename = "M5")]
1767 M5,
1768 #[serde(rename = "M6")]
1769 M6,
1770 #[serde(rename = "M7")]
1771 M7,
1772 #[serde(rename = "M8")]
1773 M8,
1774 #[serde(rename = "M9")]
1775 M9,
1776 #[serde(rename = "M10")]
1777 M10,
1778 #[serde(rename = "M11")]
1779 M11,
1780 #[serde(rename = "M12")]
1781 M12,
1782}
1783
1784impl std::fmt::Display for STPivotFilterType {
1785 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1786 match self {
1787 Self::Unknown => write!(f, "unknown"),
1788 Self::Count => write!(f, "count"),
1789 Self::Percent => write!(f, "percent"),
1790 Self::Sum => write!(f, "sum"),
1791 Self::CaptionEqual => write!(f, "captionEqual"),
1792 Self::CaptionNotEqual => write!(f, "captionNotEqual"),
1793 Self::CaptionBeginsWith => write!(f, "captionBeginsWith"),
1794 Self::CaptionNotBeginsWith => write!(f, "captionNotBeginsWith"),
1795 Self::CaptionEndsWith => write!(f, "captionEndsWith"),
1796 Self::CaptionNotEndsWith => write!(f, "captionNotEndsWith"),
1797 Self::CaptionContains => write!(f, "captionContains"),
1798 Self::CaptionNotContains => write!(f, "captionNotContains"),
1799 Self::CaptionGreaterThan => write!(f, "captionGreaterThan"),
1800 Self::CaptionGreaterThanOrEqual => write!(f, "captionGreaterThanOrEqual"),
1801 Self::CaptionLessThan => write!(f, "captionLessThan"),
1802 Self::CaptionLessThanOrEqual => write!(f, "captionLessThanOrEqual"),
1803 Self::CaptionBetween => write!(f, "captionBetween"),
1804 Self::CaptionNotBetween => write!(f, "captionNotBetween"),
1805 Self::ValueEqual => write!(f, "valueEqual"),
1806 Self::ValueNotEqual => write!(f, "valueNotEqual"),
1807 Self::ValueGreaterThan => write!(f, "valueGreaterThan"),
1808 Self::ValueGreaterThanOrEqual => write!(f, "valueGreaterThanOrEqual"),
1809 Self::ValueLessThan => write!(f, "valueLessThan"),
1810 Self::ValueLessThanOrEqual => write!(f, "valueLessThanOrEqual"),
1811 Self::ValueBetween => write!(f, "valueBetween"),
1812 Self::ValueNotBetween => write!(f, "valueNotBetween"),
1813 Self::DateEqual => write!(f, "dateEqual"),
1814 Self::DateNotEqual => write!(f, "dateNotEqual"),
1815 Self::DateOlderThan => write!(f, "dateOlderThan"),
1816 Self::DateOlderThanOrEqual => write!(f, "dateOlderThanOrEqual"),
1817 Self::DateNewerThan => write!(f, "dateNewerThan"),
1818 Self::DateNewerThanOrEqual => write!(f, "dateNewerThanOrEqual"),
1819 Self::DateBetween => write!(f, "dateBetween"),
1820 Self::DateNotBetween => write!(f, "dateNotBetween"),
1821 Self::Tomorrow => write!(f, "tomorrow"),
1822 Self::Today => write!(f, "today"),
1823 Self::Yesterday => write!(f, "yesterday"),
1824 Self::NextWeek => write!(f, "nextWeek"),
1825 Self::ThisWeek => write!(f, "thisWeek"),
1826 Self::LastWeek => write!(f, "lastWeek"),
1827 Self::NextMonth => write!(f, "nextMonth"),
1828 Self::ThisMonth => write!(f, "thisMonth"),
1829 Self::LastMonth => write!(f, "lastMonth"),
1830 Self::NextQuarter => write!(f, "nextQuarter"),
1831 Self::ThisQuarter => write!(f, "thisQuarter"),
1832 Self::LastQuarter => write!(f, "lastQuarter"),
1833 Self::NextYear => write!(f, "nextYear"),
1834 Self::ThisYear => write!(f, "thisYear"),
1835 Self::LastYear => write!(f, "lastYear"),
1836 Self::YearToDate => write!(f, "yearToDate"),
1837 Self::Q1 => write!(f, "Q1"),
1838 Self::Q2 => write!(f, "Q2"),
1839 Self::Q3 => write!(f, "Q3"),
1840 Self::Q4 => write!(f, "Q4"),
1841 Self::M1 => write!(f, "M1"),
1842 Self::M2 => write!(f, "M2"),
1843 Self::M3 => write!(f, "M3"),
1844 Self::M4 => write!(f, "M4"),
1845 Self::M5 => write!(f, "M5"),
1846 Self::M6 => write!(f, "M6"),
1847 Self::M7 => write!(f, "M7"),
1848 Self::M8 => write!(f, "M8"),
1849 Self::M9 => write!(f, "M9"),
1850 Self::M10 => write!(f, "M10"),
1851 Self::M11 => write!(f, "M11"),
1852 Self::M12 => write!(f, "M12"),
1853 }
1854 }
1855}
1856
1857impl std::str::FromStr for STPivotFilterType {
1858 type Err = String;
1859
1860 fn from_str(s: &str) -> Result<Self, Self::Err> {
1861 match s {
1862 "unknown" => Ok(Self::Unknown),
1863 "count" => Ok(Self::Count),
1864 "percent" => Ok(Self::Percent),
1865 "sum" => Ok(Self::Sum),
1866 "captionEqual" => Ok(Self::CaptionEqual),
1867 "captionNotEqual" => Ok(Self::CaptionNotEqual),
1868 "captionBeginsWith" => Ok(Self::CaptionBeginsWith),
1869 "captionNotBeginsWith" => Ok(Self::CaptionNotBeginsWith),
1870 "captionEndsWith" => Ok(Self::CaptionEndsWith),
1871 "captionNotEndsWith" => Ok(Self::CaptionNotEndsWith),
1872 "captionContains" => Ok(Self::CaptionContains),
1873 "captionNotContains" => Ok(Self::CaptionNotContains),
1874 "captionGreaterThan" => Ok(Self::CaptionGreaterThan),
1875 "captionGreaterThanOrEqual" => Ok(Self::CaptionGreaterThanOrEqual),
1876 "captionLessThan" => Ok(Self::CaptionLessThan),
1877 "captionLessThanOrEqual" => Ok(Self::CaptionLessThanOrEqual),
1878 "captionBetween" => Ok(Self::CaptionBetween),
1879 "captionNotBetween" => Ok(Self::CaptionNotBetween),
1880 "valueEqual" => Ok(Self::ValueEqual),
1881 "valueNotEqual" => Ok(Self::ValueNotEqual),
1882 "valueGreaterThan" => Ok(Self::ValueGreaterThan),
1883 "valueGreaterThanOrEqual" => Ok(Self::ValueGreaterThanOrEqual),
1884 "valueLessThan" => Ok(Self::ValueLessThan),
1885 "valueLessThanOrEqual" => Ok(Self::ValueLessThanOrEqual),
1886 "valueBetween" => Ok(Self::ValueBetween),
1887 "valueNotBetween" => Ok(Self::ValueNotBetween),
1888 "dateEqual" => Ok(Self::DateEqual),
1889 "dateNotEqual" => Ok(Self::DateNotEqual),
1890 "dateOlderThan" => Ok(Self::DateOlderThan),
1891 "dateOlderThanOrEqual" => Ok(Self::DateOlderThanOrEqual),
1892 "dateNewerThan" => Ok(Self::DateNewerThan),
1893 "dateNewerThanOrEqual" => Ok(Self::DateNewerThanOrEqual),
1894 "dateBetween" => Ok(Self::DateBetween),
1895 "dateNotBetween" => Ok(Self::DateNotBetween),
1896 "tomorrow" => Ok(Self::Tomorrow),
1897 "today" => Ok(Self::Today),
1898 "yesterday" => Ok(Self::Yesterday),
1899 "nextWeek" => Ok(Self::NextWeek),
1900 "thisWeek" => Ok(Self::ThisWeek),
1901 "lastWeek" => Ok(Self::LastWeek),
1902 "nextMonth" => Ok(Self::NextMonth),
1903 "thisMonth" => Ok(Self::ThisMonth),
1904 "lastMonth" => Ok(Self::LastMonth),
1905 "nextQuarter" => Ok(Self::NextQuarter),
1906 "thisQuarter" => Ok(Self::ThisQuarter),
1907 "lastQuarter" => Ok(Self::LastQuarter),
1908 "nextYear" => Ok(Self::NextYear),
1909 "thisYear" => Ok(Self::ThisYear),
1910 "lastYear" => Ok(Self::LastYear),
1911 "yearToDate" => Ok(Self::YearToDate),
1912 "Q1" => Ok(Self::Q1),
1913 "Q2" => Ok(Self::Q2),
1914 "Q3" => Ok(Self::Q3),
1915 "Q4" => Ok(Self::Q4),
1916 "M1" => Ok(Self::M1),
1917 "M2" => Ok(Self::M2),
1918 "M3" => Ok(Self::M3),
1919 "M4" => Ok(Self::M4),
1920 "M5" => Ok(Self::M5),
1921 "M6" => Ok(Self::M6),
1922 "M7" => Ok(Self::M7),
1923 "M8" => Ok(Self::M8),
1924 "M9" => Ok(Self::M9),
1925 "M10" => Ok(Self::M10),
1926 "M11" => Ok(Self::M11),
1927 "M12" => Ok(Self::M12),
1928 _ => Err(format!("unknown STPivotFilterType value: {}", s)),
1929 }
1930 }
1931}
1932
1933#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
1934pub enum STPivotAreaType {
1935 #[serde(rename = "none")]
1936 None,
1937 #[serde(rename = "normal")]
1938 Normal,
1939 #[serde(rename = "data")]
1940 Data,
1941 #[serde(rename = "all")]
1942 All,
1943 #[serde(rename = "origin")]
1944 Origin,
1945 #[serde(rename = "button")]
1946 Button,
1947 #[serde(rename = "topEnd")]
1948 TopEnd,
1949 #[serde(rename = "topRight")]
1950 TopRight,
1951}
1952
1953impl std::fmt::Display for STPivotAreaType {
1954 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1955 match self {
1956 Self::None => write!(f, "none"),
1957 Self::Normal => write!(f, "normal"),
1958 Self::Data => write!(f, "data"),
1959 Self::All => write!(f, "all"),
1960 Self::Origin => write!(f, "origin"),
1961 Self::Button => write!(f, "button"),
1962 Self::TopEnd => write!(f, "topEnd"),
1963 Self::TopRight => write!(f, "topRight"),
1964 }
1965 }
1966}
1967
1968impl std::str::FromStr for STPivotAreaType {
1969 type Err = String;
1970
1971 fn from_str(s: &str) -> Result<Self, Self::Err> {
1972 match s {
1973 "none" => Ok(Self::None),
1974 "normal" => Ok(Self::Normal),
1975 "data" => Ok(Self::Data),
1976 "all" => Ok(Self::All),
1977 "origin" => Ok(Self::Origin),
1978 "button" => Ok(Self::Button),
1979 "topEnd" => Ok(Self::TopEnd),
1980 "topRight" => Ok(Self::TopRight),
1981 _ => Err(format!("unknown STPivotAreaType value: {}", s)),
1982 }
1983 }
1984}
1985
1986#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
1987pub enum STAxis {
1988 #[serde(rename = "axisRow")]
1989 AxisRow,
1990 #[serde(rename = "axisCol")]
1991 AxisCol,
1992 #[serde(rename = "axisPage")]
1993 AxisPage,
1994 #[serde(rename = "axisValues")]
1995 AxisValues,
1996}
1997
1998impl std::fmt::Display for STAxis {
1999 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2000 match self {
2001 Self::AxisRow => write!(f, "axisRow"),
2002 Self::AxisCol => write!(f, "axisCol"),
2003 Self::AxisPage => write!(f, "axisPage"),
2004 Self::AxisValues => write!(f, "axisValues"),
2005 }
2006 }
2007}
2008
2009impl std::str::FromStr for STAxis {
2010 type Err = String;
2011
2012 fn from_str(s: &str) -> Result<Self, Self::Err> {
2013 match s {
2014 "axisRow" => Ok(Self::AxisRow),
2015 "axisCol" => Ok(Self::AxisCol),
2016 "axisPage" => Ok(Self::AxisPage),
2017 "axisValues" => Ok(Self::AxisValues),
2018 _ => Err(format!("unknown STAxis value: {}", s)),
2019 }
2020 }
2021}
2022
2023#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2024pub enum STGrowShrinkType {
2025 #[serde(rename = "insertDelete")]
2026 InsertDelete,
2027 #[serde(rename = "insertClear")]
2028 InsertClear,
2029 #[serde(rename = "overwriteClear")]
2030 OverwriteClear,
2031}
2032
2033impl std::fmt::Display for STGrowShrinkType {
2034 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2035 match self {
2036 Self::InsertDelete => write!(f, "insertDelete"),
2037 Self::InsertClear => write!(f, "insertClear"),
2038 Self::OverwriteClear => write!(f, "overwriteClear"),
2039 }
2040 }
2041}
2042
2043impl std::str::FromStr for STGrowShrinkType {
2044 type Err = String;
2045
2046 fn from_str(s: &str) -> Result<Self, Self::Err> {
2047 match s {
2048 "insertDelete" => Ok(Self::InsertDelete),
2049 "insertClear" => Ok(Self::InsertClear),
2050 "overwriteClear" => Ok(Self::OverwriteClear),
2051 _ => Err(format!("unknown STGrowShrinkType value: {}", s)),
2052 }
2053 }
2054}
2055
2056#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2057pub enum STPhoneticType {
2058 #[serde(rename = "halfwidthKatakana")]
2059 HalfwidthKatakana,
2060 #[serde(rename = "fullwidthKatakana")]
2061 FullwidthKatakana,
2062 #[serde(rename = "Hiragana")]
2063 Hiragana,
2064 #[serde(rename = "noConversion")]
2065 NoConversion,
2066}
2067
2068impl std::fmt::Display for STPhoneticType {
2069 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2070 match self {
2071 Self::HalfwidthKatakana => write!(f, "halfwidthKatakana"),
2072 Self::FullwidthKatakana => write!(f, "fullwidthKatakana"),
2073 Self::Hiragana => write!(f, "Hiragana"),
2074 Self::NoConversion => write!(f, "noConversion"),
2075 }
2076 }
2077}
2078
2079impl std::str::FromStr for STPhoneticType {
2080 type Err = String;
2081
2082 fn from_str(s: &str) -> Result<Self, Self::Err> {
2083 match s {
2084 "halfwidthKatakana" => Ok(Self::HalfwidthKatakana),
2085 "fullwidthKatakana" => Ok(Self::FullwidthKatakana),
2086 "Hiragana" => Ok(Self::Hiragana),
2087 "noConversion" => Ok(Self::NoConversion),
2088 _ => Err(format!("unknown STPhoneticType value: {}", s)),
2089 }
2090 }
2091}
2092
2093#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2094pub enum STPhoneticAlignment {
2095 #[serde(rename = "noControl")]
2096 NoControl,
2097 #[serde(rename = "left")]
2098 Left,
2099 #[serde(rename = "center")]
2100 Center,
2101 #[serde(rename = "distributed")]
2102 Distributed,
2103}
2104
2105impl std::fmt::Display for STPhoneticAlignment {
2106 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2107 match self {
2108 Self::NoControl => write!(f, "noControl"),
2109 Self::Left => write!(f, "left"),
2110 Self::Center => write!(f, "center"),
2111 Self::Distributed => write!(f, "distributed"),
2112 }
2113 }
2114}
2115
2116impl std::str::FromStr for STPhoneticAlignment {
2117 type Err = String;
2118
2119 fn from_str(s: &str) -> Result<Self, Self::Err> {
2120 match s {
2121 "noControl" => Ok(Self::NoControl),
2122 "left" => Ok(Self::Left),
2123 "center" => Ok(Self::Center),
2124 "distributed" => Ok(Self::Distributed),
2125 _ => Err(format!("unknown STPhoneticAlignment value: {}", s)),
2126 }
2127 }
2128}
2129
2130#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2131pub enum STRwColActionType {
2132 #[serde(rename = "insertRow")]
2133 InsertRow,
2134 #[serde(rename = "deleteRow")]
2135 DeleteRow,
2136 #[serde(rename = "insertCol")]
2137 InsertCol,
2138 #[serde(rename = "deleteCol")]
2139 DeleteCol,
2140}
2141
2142impl std::fmt::Display for STRwColActionType {
2143 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2144 match self {
2145 Self::InsertRow => write!(f, "insertRow"),
2146 Self::DeleteRow => write!(f, "deleteRow"),
2147 Self::InsertCol => write!(f, "insertCol"),
2148 Self::DeleteCol => write!(f, "deleteCol"),
2149 }
2150 }
2151}
2152
2153impl std::str::FromStr for STRwColActionType {
2154 type Err = String;
2155
2156 fn from_str(s: &str) -> Result<Self, Self::Err> {
2157 match s {
2158 "insertRow" => Ok(Self::InsertRow),
2159 "deleteRow" => Ok(Self::DeleteRow),
2160 "insertCol" => Ok(Self::InsertCol),
2161 "deleteCol" => Ok(Self::DeleteCol),
2162 _ => Err(format!("unknown STRwColActionType value: {}", s)),
2163 }
2164 }
2165}
2166
2167#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2168pub enum STRevisionAction {
2169 #[serde(rename = "add")]
2170 Add,
2171 #[serde(rename = "delete")]
2172 Delete,
2173}
2174
2175impl std::fmt::Display for STRevisionAction {
2176 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2177 match self {
2178 Self::Add => write!(f, "add"),
2179 Self::Delete => write!(f, "delete"),
2180 }
2181 }
2182}
2183
2184impl std::str::FromStr for STRevisionAction {
2185 type Err = String;
2186
2187 fn from_str(s: &str) -> Result<Self, Self::Err> {
2188 match s {
2189 "add" => Ok(Self::Add),
2190 "delete" => Ok(Self::Delete),
2191 _ => Err(format!("unknown STRevisionAction value: {}", s)),
2192 }
2193 }
2194}
2195
2196#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2197pub enum STFormulaExpression {
2198 #[serde(rename = "ref")]
2199 Ref,
2200 #[serde(rename = "refError")]
2201 RefError,
2202 #[serde(rename = "area")]
2203 Area,
2204 #[serde(rename = "areaError")]
2205 AreaError,
2206 #[serde(rename = "computedArea")]
2207 ComputedArea,
2208}
2209
2210impl std::fmt::Display for STFormulaExpression {
2211 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2212 match self {
2213 Self::Ref => write!(f, "ref"),
2214 Self::RefError => write!(f, "refError"),
2215 Self::Area => write!(f, "area"),
2216 Self::AreaError => write!(f, "areaError"),
2217 Self::ComputedArea => write!(f, "computedArea"),
2218 }
2219 }
2220}
2221
2222impl std::str::FromStr for STFormulaExpression {
2223 type Err = String;
2224
2225 fn from_str(s: &str) -> Result<Self, Self::Err> {
2226 match s {
2227 "ref" => Ok(Self::Ref),
2228 "refError" => Ok(Self::RefError),
2229 "area" => Ok(Self::Area),
2230 "areaError" => Ok(Self::AreaError),
2231 "computedArea" => Ok(Self::ComputedArea),
2232 _ => Err(format!("unknown STFormulaExpression value: {}", s)),
2233 }
2234 }
2235}
2236
2237pub type STCellSpan = String;
2238
2239pub type CellSpans = String;
2240
2241#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2242pub enum CellType {
2243 #[serde(rename = "b")]
2244 Boolean,
2245 #[serde(rename = "n")]
2246 Number,
2247 #[serde(rename = "e")]
2248 Error,
2249 #[serde(rename = "s")]
2250 SharedString,
2251 #[serde(rename = "str")]
2252 String,
2253 #[serde(rename = "inlineStr")]
2254 InlineString,
2255}
2256
2257impl std::fmt::Display for CellType {
2258 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2259 match self {
2260 Self::Boolean => write!(f, "b"),
2261 Self::Number => write!(f, "n"),
2262 Self::Error => write!(f, "e"),
2263 Self::SharedString => write!(f, "s"),
2264 Self::String => write!(f, "str"),
2265 Self::InlineString => write!(f, "inlineStr"),
2266 }
2267 }
2268}
2269
2270impl std::str::FromStr for CellType {
2271 type Err = String;
2272
2273 fn from_str(s: &str) -> Result<Self, Self::Err> {
2274 match s {
2275 "b" => Ok(Self::Boolean),
2276 "n" => Ok(Self::Number),
2277 "e" => Ok(Self::Error),
2278 "s" => Ok(Self::SharedString),
2279 "str" => Ok(Self::String),
2280 "inlineStr" => Ok(Self::InlineString),
2281 _ => Err(format!("unknown CellType value: {}", s)),
2282 }
2283 }
2284}
2285
2286#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2287pub enum FormulaType {
2288 #[serde(rename = "normal")]
2289 Normal,
2290 #[serde(rename = "array")]
2291 Array,
2292 #[serde(rename = "dataTable")]
2293 DataTable,
2294 #[serde(rename = "shared")]
2295 Shared,
2296}
2297
2298impl std::fmt::Display for FormulaType {
2299 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2300 match self {
2301 Self::Normal => write!(f, "normal"),
2302 Self::Array => write!(f, "array"),
2303 Self::DataTable => write!(f, "dataTable"),
2304 Self::Shared => write!(f, "shared"),
2305 }
2306 }
2307}
2308
2309impl std::str::FromStr for FormulaType {
2310 type Err = String;
2311
2312 fn from_str(s: &str) -> Result<Self, Self::Err> {
2313 match s {
2314 "normal" => Ok(Self::Normal),
2315 "array" => Ok(Self::Array),
2316 "dataTable" => Ok(Self::DataTable),
2317 "shared" => Ok(Self::Shared),
2318 _ => Err(format!("unknown FormulaType value: {}", s)),
2319 }
2320 }
2321}
2322
2323#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2324pub enum PaneType {
2325 #[serde(rename = "bottomRight")]
2326 BottomRight,
2327 #[serde(rename = "topRight")]
2328 TopRight,
2329 #[serde(rename = "bottomLeft")]
2330 BottomLeft,
2331 #[serde(rename = "topLeft")]
2332 TopLeft,
2333}
2334
2335impl std::fmt::Display for PaneType {
2336 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2337 match self {
2338 Self::BottomRight => write!(f, "bottomRight"),
2339 Self::TopRight => write!(f, "topRight"),
2340 Self::BottomLeft => write!(f, "bottomLeft"),
2341 Self::TopLeft => write!(f, "topLeft"),
2342 }
2343 }
2344}
2345
2346impl std::str::FromStr for PaneType {
2347 type Err = String;
2348
2349 fn from_str(s: &str) -> Result<Self, Self::Err> {
2350 match s {
2351 "bottomRight" => Ok(Self::BottomRight),
2352 "topRight" => Ok(Self::TopRight),
2353 "bottomLeft" => Ok(Self::BottomLeft),
2354 "topLeft" => Ok(Self::TopLeft),
2355 _ => Err(format!("unknown PaneType value: {}", s)),
2356 }
2357 }
2358}
2359
2360#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2361pub enum SheetViewType {
2362 #[serde(rename = "normal")]
2363 Normal,
2364 #[serde(rename = "pageBreakPreview")]
2365 PageBreakPreview,
2366 #[serde(rename = "pageLayout")]
2367 PageLayout,
2368}
2369
2370impl std::fmt::Display for SheetViewType {
2371 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2372 match self {
2373 Self::Normal => write!(f, "normal"),
2374 Self::PageBreakPreview => write!(f, "pageBreakPreview"),
2375 Self::PageLayout => write!(f, "pageLayout"),
2376 }
2377 }
2378}
2379
2380impl std::str::FromStr for SheetViewType {
2381 type Err = String;
2382
2383 fn from_str(s: &str) -> Result<Self, Self::Err> {
2384 match s {
2385 "normal" => Ok(Self::Normal),
2386 "pageBreakPreview" => Ok(Self::PageBreakPreview),
2387 "pageLayout" => Ok(Self::PageLayout),
2388 _ => Err(format!("unknown SheetViewType value: {}", s)),
2389 }
2390 }
2391}
2392
2393#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2394pub enum STDataConsolidateFunction {
2395 #[serde(rename = "average")]
2396 Average,
2397 #[serde(rename = "count")]
2398 Count,
2399 #[serde(rename = "countNums")]
2400 CountNums,
2401 #[serde(rename = "max")]
2402 Max,
2403 #[serde(rename = "min")]
2404 Min,
2405 #[serde(rename = "product")]
2406 Product,
2407 #[serde(rename = "stdDev")]
2408 StdDev,
2409 #[serde(rename = "stdDevp")]
2410 StdDevp,
2411 #[serde(rename = "sum")]
2412 Sum,
2413 #[serde(rename = "var")]
2414 Var,
2415 #[serde(rename = "varp")]
2416 Varp,
2417}
2418
2419impl std::fmt::Display for STDataConsolidateFunction {
2420 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2421 match self {
2422 Self::Average => write!(f, "average"),
2423 Self::Count => write!(f, "count"),
2424 Self::CountNums => write!(f, "countNums"),
2425 Self::Max => write!(f, "max"),
2426 Self::Min => write!(f, "min"),
2427 Self::Product => write!(f, "product"),
2428 Self::StdDev => write!(f, "stdDev"),
2429 Self::StdDevp => write!(f, "stdDevp"),
2430 Self::Sum => write!(f, "sum"),
2431 Self::Var => write!(f, "var"),
2432 Self::Varp => write!(f, "varp"),
2433 }
2434 }
2435}
2436
2437impl std::str::FromStr for STDataConsolidateFunction {
2438 type Err = String;
2439
2440 fn from_str(s: &str) -> Result<Self, Self::Err> {
2441 match s {
2442 "average" => Ok(Self::Average),
2443 "count" => Ok(Self::Count),
2444 "countNums" => Ok(Self::CountNums),
2445 "max" => Ok(Self::Max),
2446 "min" => Ok(Self::Min),
2447 "product" => Ok(Self::Product),
2448 "stdDev" => Ok(Self::StdDev),
2449 "stdDevp" => Ok(Self::StdDevp),
2450 "sum" => Ok(Self::Sum),
2451 "var" => Ok(Self::Var),
2452 "varp" => Ok(Self::Varp),
2453 _ => Err(format!("unknown STDataConsolidateFunction value: {}", s)),
2454 }
2455 }
2456}
2457
2458#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2459pub enum ValidationType {
2460 #[serde(rename = "none")]
2461 None,
2462 #[serde(rename = "whole")]
2463 Whole,
2464 #[serde(rename = "decimal")]
2465 Decimal,
2466 #[serde(rename = "list")]
2467 List,
2468 #[serde(rename = "date")]
2469 Date,
2470 #[serde(rename = "time")]
2471 Time,
2472 #[serde(rename = "textLength")]
2473 TextLength,
2474 #[serde(rename = "custom")]
2475 Custom,
2476}
2477
2478impl std::fmt::Display for ValidationType {
2479 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2480 match self {
2481 Self::None => write!(f, "none"),
2482 Self::Whole => write!(f, "whole"),
2483 Self::Decimal => write!(f, "decimal"),
2484 Self::List => write!(f, "list"),
2485 Self::Date => write!(f, "date"),
2486 Self::Time => write!(f, "time"),
2487 Self::TextLength => write!(f, "textLength"),
2488 Self::Custom => write!(f, "custom"),
2489 }
2490 }
2491}
2492
2493impl std::str::FromStr for ValidationType {
2494 type Err = String;
2495
2496 fn from_str(s: &str) -> Result<Self, Self::Err> {
2497 match s {
2498 "none" => Ok(Self::None),
2499 "whole" => Ok(Self::Whole),
2500 "decimal" => Ok(Self::Decimal),
2501 "list" => Ok(Self::List),
2502 "date" => Ok(Self::Date),
2503 "time" => Ok(Self::Time),
2504 "textLength" => Ok(Self::TextLength),
2505 "custom" => Ok(Self::Custom),
2506 _ => Err(format!("unknown ValidationType value: {}", s)),
2507 }
2508 }
2509}
2510
2511#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2512pub enum ValidationOperator {
2513 #[serde(rename = "between")]
2514 Between,
2515 #[serde(rename = "notBetween")]
2516 NotBetween,
2517 #[serde(rename = "equal")]
2518 Equal,
2519 #[serde(rename = "notEqual")]
2520 NotEqual,
2521 #[serde(rename = "lessThan")]
2522 LessThan,
2523 #[serde(rename = "lessThanOrEqual")]
2524 LessThanOrEqual,
2525 #[serde(rename = "greaterThan")]
2526 GreaterThan,
2527 #[serde(rename = "greaterThanOrEqual")]
2528 GreaterThanOrEqual,
2529}
2530
2531impl std::fmt::Display for ValidationOperator {
2532 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2533 match self {
2534 Self::Between => write!(f, "between"),
2535 Self::NotBetween => write!(f, "notBetween"),
2536 Self::Equal => write!(f, "equal"),
2537 Self::NotEqual => write!(f, "notEqual"),
2538 Self::LessThan => write!(f, "lessThan"),
2539 Self::LessThanOrEqual => write!(f, "lessThanOrEqual"),
2540 Self::GreaterThan => write!(f, "greaterThan"),
2541 Self::GreaterThanOrEqual => write!(f, "greaterThanOrEqual"),
2542 }
2543 }
2544}
2545
2546impl std::str::FromStr for ValidationOperator {
2547 type Err = String;
2548
2549 fn from_str(s: &str) -> Result<Self, Self::Err> {
2550 match s {
2551 "between" => Ok(Self::Between),
2552 "notBetween" => Ok(Self::NotBetween),
2553 "equal" => Ok(Self::Equal),
2554 "notEqual" => Ok(Self::NotEqual),
2555 "lessThan" => Ok(Self::LessThan),
2556 "lessThanOrEqual" => Ok(Self::LessThanOrEqual),
2557 "greaterThan" => Ok(Self::GreaterThan),
2558 "greaterThanOrEqual" => Ok(Self::GreaterThanOrEqual),
2559 _ => Err(format!("unknown ValidationOperator value: {}", s)),
2560 }
2561 }
2562}
2563
2564#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2565pub enum ValidationErrorStyle {
2566 #[serde(rename = "stop")]
2567 Stop,
2568 #[serde(rename = "warning")]
2569 Warning,
2570 #[serde(rename = "information")]
2571 Information,
2572}
2573
2574impl std::fmt::Display for ValidationErrorStyle {
2575 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2576 match self {
2577 Self::Stop => write!(f, "stop"),
2578 Self::Warning => write!(f, "warning"),
2579 Self::Information => write!(f, "information"),
2580 }
2581 }
2582}
2583
2584impl std::str::FromStr for ValidationErrorStyle {
2585 type Err = String;
2586
2587 fn from_str(s: &str) -> Result<Self, Self::Err> {
2588 match s {
2589 "stop" => Ok(Self::Stop),
2590 "warning" => Ok(Self::Warning),
2591 "information" => Ok(Self::Information),
2592 _ => Err(format!("unknown ValidationErrorStyle value: {}", s)),
2593 }
2594 }
2595}
2596
2597#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2598pub enum STDataValidationImeMode {
2599 #[serde(rename = "noControl")]
2600 NoControl,
2601 #[serde(rename = "off")]
2602 Off,
2603 #[serde(rename = "on")]
2604 On,
2605 #[serde(rename = "disabled")]
2606 Disabled,
2607 #[serde(rename = "hiragana")]
2608 Hiragana,
2609 #[serde(rename = "fullKatakana")]
2610 FullKatakana,
2611 #[serde(rename = "halfKatakana")]
2612 HalfKatakana,
2613 #[serde(rename = "fullAlpha")]
2614 FullAlpha,
2615 #[serde(rename = "halfAlpha")]
2616 HalfAlpha,
2617 #[serde(rename = "fullHangul")]
2618 FullHangul,
2619 #[serde(rename = "halfHangul")]
2620 HalfHangul,
2621}
2622
2623impl std::fmt::Display for STDataValidationImeMode {
2624 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2625 match self {
2626 Self::NoControl => write!(f, "noControl"),
2627 Self::Off => write!(f, "off"),
2628 Self::On => write!(f, "on"),
2629 Self::Disabled => write!(f, "disabled"),
2630 Self::Hiragana => write!(f, "hiragana"),
2631 Self::FullKatakana => write!(f, "fullKatakana"),
2632 Self::HalfKatakana => write!(f, "halfKatakana"),
2633 Self::FullAlpha => write!(f, "fullAlpha"),
2634 Self::HalfAlpha => write!(f, "halfAlpha"),
2635 Self::FullHangul => write!(f, "fullHangul"),
2636 Self::HalfHangul => write!(f, "halfHangul"),
2637 }
2638 }
2639}
2640
2641impl std::str::FromStr for STDataValidationImeMode {
2642 type Err = String;
2643
2644 fn from_str(s: &str) -> Result<Self, Self::Err> {
2645 match s {
2646 "noControl" => Ok(Self::NoControl),
2647 "off" => Ok(Self::Off),
2648 "on" => Ok(Self::On),
2649 "disabled" => Ok(Self::Disabled),
2650 "hiragana" => Ok(Self::Hiragana),
2651 "fullKatakana" => Ok(Self::FullKatakana),
2652 "halfKatakana" => Ok(Self::HalfKatakana),
2653 "fullAlpha" => Ok(Self::FullAlpha),
2654 "halfAlpha" => Ok(Self::HalfAlpha),
2655 "fullHangul" => Ok(Self::FullHangul),
2656 "halfHangul" => Ok(Self::HalfHangul),
2657 _ => Err(format!("unknown STDataValidationImeMode value: {}", s)),
2658 }
2659 }
2660}
2661
2662#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2663pub enum ConditionalType {
2664 #[serde(rename = "expression")]
2665 Expression,
2666 #[serde(rename = "cellIs")]
2667 CellIs,
2668 #[serde(rename = "colorScale")]
2669 ColorScale,
2670 #[serde(rename = "dataBar")]
2671 DataBar,
2672 #[serde(rename = "iconSet")]
2673 IconSet,
2674 #[serde(rename = "top10")]
2675 Top10,
2676 #[serde(rename = "uniqueValues")]
2677 UniqueValues,
2678 #[serde(rename = "duplicateValues")]
2679 DuplicateValues,
2680 #[serde(rename = "containsText")]
2681 ContainsText,
2682 #[serde(rename = "notContainsText")]
2683 NotContainsText,
2684 #[serde(rename = "beginsWith")]
2685 BeginsWith,
2686 #[serde(rename = "endsWith")]
2687 EndsWith,
2688 #[serde(rename = "containsBlanks")]
2689 ContainsBlanks,
2690 #[serde(rename = "notContainsBlanks")]
2691 NotContainsBlanks,
2692 #[serde(rename = "containsErrors")]
2693 ContainsErrors,
2694 #[serde(rename = "notContainsErrors")]
2695 NotContainsErrors,
2696 #[serde(rename = "timePeriod")]
2697 TimePeriod,
2698 #[serde(rename = "aboveAverage")]
2699 AboveAverage,
2700}
2701
2702impl std::fmt::Display for ConditionalType {
2703 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2704 match self {
2705 Self::Expression => write!(f, "expression"),
2706 Self::CellIs => write!(f, "cellIs"),
2707 Self::ColorScale => write!(f, "colorScale"),
2708 Self::DataBar => write!(f, "dataBar"),
2709 Self::IconSet => write!(f, "iconSet"),
2710 Self::Top10 => write!(f, "top10"),
2711 Self::UniqueValues => write!(f, "uniqueValues"),
2712 Self::DuplicateValues => write!(f, "duplicateValues"),
2713 Self::ContainsText => write!(f, "containsText"),
2714 Self::NotContainsText => write!(f, "notContainsText"),
2715 Self::BeginsWith => write!(f, "beginsWith"),
2716 Self::EndsWith => write!(f, "endsWith"),
2717 Self::ContainsBlanks => write!(f, "containsBlanks"),
2718 Self::NotContainsBlanks => write!(f, "notContainsBlanks"),
2719 Self::ContainsErrors => write!(f, "containsErrors"),
2720 Self::NotContainsErrors => write!(f, "notContainsErrors"),
2721 Self::TimePeriod => write!(f, "timePeriod"),
2722 Self::AboveAverage => write!(f, "aboveAverage"),
2723 }
2724 }
2725}
2726
2727impl std::str::FromStr for ConditionalType {
2728 type Err = String;
2729
2730 fn from_str(s: &str) -> Result<Self, Self::Err> {
2731 match s {
2732 "expression" => Ok(Self::Expression),
2733 "cellIs" => Ok(Self::CellIs),
2734 "colorScale" => Ok(Self::ColorScale),
2735 "dataBar" => Ok(Self::DataBar),
2736 "iconSet" => Ok(Self::IconSet),
2737 "top10" => Ok(Self::Top10),
2738 "uniqueValues" => Ok(Self::UniqueValues),
2739 "duplicateValues" => Ok(Self::DuplicateValues),
2740 "containsText" => Ok(Self::ContainsText),
2741 "notContainsText" => Ok(Self::NotContainsText),
2742 "beginsWith" => Ok(Self::BeginsWith),
2743 "endsWith" => Ok(Self::EndsWith),
2744 "containsBlanks" => Ok(Self::ContainsBlanks),
2745 "notContainsBlanks" => Ok(Self::NotContainsBlanks),
2746 "containsErrors" => Ok(Self::ContainsErrors),
2747 "notContainsErrors" => Ok(Self::NotContainsErrors),
2748 "timePeriod" => Ok(Self::TimePeriod),
2749 "aboveAverage" => Ok(Self::AboveAverage),
2750 _ => Err(format!("unknown ConditionalType value: {}", s)),
2751 }
2752 }
2753}
2754
2755#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2756pub enum STTimePeriod {
2757 #[serde(rename = "today")]
2758 Today,
2759 #[serde(rename = "yesterday")]
2760 Yesterday,
2761 #[serde(rename = "tomorrow")]
2762 Tomorrow,
2763 #[serde(rename = "last7Days")]
2764 Last7Days,
2765 #[serde(rename = "thisMonth")]
2766 ThisMonth,
2767 #[serde(rename = "lastMonth")]
2768 LastMonth,
2769 #[serde(rename = "nextMonth")]
2770 NextMonth,
2771 #[serde(rename = "thisWeek")]
2772 ThisWeek,
2773 #[serde(rename = "lastWeek")]
2774 LastWeek,
2775 #[serde(rename = "nextWeek")]
2776 NextWeek,
2777}
2778
2779impl std::fmt::Display for STTimePeriod {
2780 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2781 match self {
2782 Self::Today => write!(f, "today"),
2783 Self::Yesterday => write!(f, "yesterday"),
2784 Self::Tomorrow => write!(f, "tomorrow"),
2785 Self::Last7Days => write!(f, "last7Days"),
2786 Self::ThisMonth => write!(f, "thisMonth"),
2787 Self::LastMonth => write!(f, "lastMonth"),
2788 Self::NextMonth => write!(f, "nextMonth"),
2789 Self::ThisWeek => write!(f, "thisWeek"),
2790 Self::LastWeek => write!(f, "lastWeek"),
2791 Self::NextWeek => write!(f, "nextWeek"),
2792 }
2793 }
2794}
2795
2796impl std::str::FromStr for STTimePeriod {
2797 type Err = String;
2798
2799 fn from_str(s: &str) -> Result<Self, Self::Err> {
2800 match s {
2801 "today" => Ok(Self::Today),
2802 "yesterday" => Ok(Self::Yesterday),
2803 "tomorrow" => Ok(Self::Tomorrow),
2804 "last7Days" => Ok(Self::Last7Days),
2805 "thisMonth" => Ok(Self::ThisMonth),
2806 "lastMonth" => Ok(Self::LastMonth),
2807 "nextMonth" => Ok(Self::NextMonth),
2808 "thisWeek" => Ok(Self::ThisWeek),
2809 "lastWeek" => Ok(Self::LastWeek),
2810 "nextWeek" => Ok(Self::NextWeek),
2811 _ => Err(format!("unknown STTimePeriod value: {}", s)),
2812 }
2813 }
2814}
2815
2816#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2817pub enum ConditionalOperator {
2818 #[serde(rename = "lessThan")]
2819 LessThan,
2820 #[serde(rename = "lessThanOrEqual")]
2821 LessThanOrEqual,
2822 #[serde(rename = "equal")]
2823 Equal,
2824 #[serde(rename = "notEqual")]
2825 NotEqual,
2826 #[serde(rename = "greaterThanOrEqual")]
2827 GreaterThanOrEqual,
2828 #[serde(rename = "greaterThan")]
2829 GreaterThan,
2830 #[serde(rename = "between")]
2831 Between,
2832 #[serde(rename = "notBetween")]
2833 NotBetween,
2834 #[serde(rename = "containsText")]
2835 ContainsText,
2836 #[serde(rename = "notContains")]
2837 NotContains,
2838 #[serde(rename = "beginsWith")]
2839 BeginsWith,
2840 #[serde(rename = "endsWith")]
2841 EndsWith,
2842}
2843
2844impl std::fmt::Display for ConditionalOperator {
2845 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2846 match self {
2847 Self::LessThan => write!(f, "lessThan"),
2848 Self::LessThanOrEqual => write!(f, "lessThanOrEqual"),
2849 Self::Equal => write!(f, "equal"),
2850 Self::NotEqual => write!(f, "notEqual"),
2851 Self::GreaterThanOrEqual => write!(f, "greaterThanOrEqual"),
2852 Self::GreaterThan => write!(f, "greaterThan"),
2853 Self::Between => write!(f, "between"),
2854 Self::NotBetween => write!(f, "notBetween"),
2855 Self::ContainsText => write!(f, "containsText"),
2856 Self::NotContains => write!(f, "notContains"),
2857 Self::BeginsWith => write!(f, "beginsWith"),
2858 Self::EndsWith => write!(f, "endsWith"),
2859 }
2860 }
2861}
2862
2863impl std::str::FromStr for ConditionalOperator {
2864 type Err = String;
2865
2866 fn from_str(s: &str) -> Result<Self, Self::Err> {
2867 match s {
2868 "lessThan" => Ok(Self::LessThan),
2869 "lessThanOrEqual" => Ok(Self::LessThanOrEqual),
2870 "equal" => Ok(Self::Equal),
2871 "notEqual" => Ok(Self::NotEqual),
2872 "greaterThanOrEqual" => Ok(Self::GreaterThanOrEqual),
2873 "greaterThan" => Ok(Self::GreaterThan),
2874 "between" => Ok(Self::Between),
2875 "notBetween" => Ok(Self::NotBetween),
2876 "containsText" => Ok(Self::ContainsText),
2877 "notContains" => Ok(Self::NotContains),
2878 "beginsWith" => Ok(Self::BeginsWith),
2879 "endsWith" => Ok(Self::EndsWith),
2880 _ => Err(format!("unknown ConditionalOperator value: {}", s)),
2881 }
2882 }
2883}
2884
2885#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2886pub enum ConditionalValueType {
2887 #[serde(rename = "num")]
2888 Num,
2889 #[serde(rename = "percent")]
2890 Percent,
2891 #[serde(rename = "max")]
2892 Max,
2893 #[serde(rename = "min")]
2894 Min,
2895 #[serde(rename = "formula")]
2896 Formula,
2897 #[serde(rename = "percentile")]
2898 Percentile,
2899}
2900
2901impl std::fmt::Display for ConditionalValueType {
2902 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2903 match self {
2904 Self::Num => write!(f, "num"),
2905 Self::Percent => write!(f, "percent"),
2906 Self::Max => write!(f, "max"),
2907 Self::Min => write!(f, "min"),
2908 Self::Formula => write!(f, "formula"),
2909 Self::Percentile => write!(f, "percentile"),
2910 }
2911 }
2912}
2913
2914impl std::str::FromStr for ConditionalValueType {
2915 type Err = String;
2916
2917 fn from_str(s: &str) -> Result<Self, Self::Err> {
2918 match s {
2919 "num" => Ok(Self::Num),
2920 "percent" => Ok(Self::Percent),
2921 "max" => Ok(Self::Max),
2922 "min" => Ok(Self::Min),
2923 "formula" => Ok(Self::Formula),
2924 "percentile" => Ok(Self::Percentile),
2925 _ => Err(format!("unknown ConditionalValueType value: {}", s)),
2926 }
2927 }
2928}
2929
2930#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2931pub enum STPageOrder {
2932 #[serde(rename = "downThenOver")]
2933 DownThenOver,
2934 #[serde(rename = "overThenDown")]
2935 OverThenDown,
2936}
2937
2938impl std::fmt::Display for STPageOrder {
2939 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2940 match self {
2941 Self::DownThenOver => write!(f, "downThenOver"),
2942 Self::OverThenDown => write!(f, "overThenDown"),
2943 }
2944 }
2945}
2946
2947impl std::str::FromStr for STPageOrder {
2948 type Err = String;
2949
2950 fn from_str(s: &str) -> Result<Self, Self::Err> {
2951 match s {
2952 "downThenOver" => Ok(Self::DownThenOver),
2953 "overThenDown" => Ok(Self::OverThenDown),
2954 _ => Err(format!("unknown STPageOrder value: {}", s)),
2955 }
2956 }
2957}
2958
2959#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2960pub enum STOrientation {
2961 #[serde(rename = "default")]
2962 Default,
2963 #[serde(rename = "portrait")]
2964 Portrait,
2965 #[serde(rename = "landscape")]
2966 Landscape,
2967}
2968
2969impl std::fmt::Display for STOrientation {
2970 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2971 match self {
2972 Self::Default => write!(f, "default"),
2973 Self::Portrait => write!(f, "portrait"),
2974 Self::Landscape => write!(f, "landscape"),
2975 }
2976 }
2977}
2978
2979impl std::str::FromStr for STOrientation {
2980 type Err = String;
2981
2982 fn from_str(s: &str) -> Result<Self, Self::Err> {
2983 match s {
2984 "default" => Ok(Self::Default),
2985 "portrait" => Ok(Self::Portrait),
2986 "landscape" => Ok(Self::Landscape),
2987 _ => Err(format!("unknown STOrientation value: {}", s)),
2988 }
2989 }
2990}
2991
2992#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2993pub enum STCellComments {
2994 #[serde(rename = "none")]
2995 None,
2996 #[serde(rename = "asDisplayed")]
2997 AsDisplayed,
2998 #[serde(rename = "atEnd")]
2999 AtEnd,
3000}
3001
3002impl std::fmt::Display for STCellComments {
3003 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3004 match self {
3005 Self::None => write!(f, "none"),
3006 Self::AsDisplayed => write!(f, "asDisplayed"),
3007 Self::AtEnd => write!(f, "atEnd"),
3008 }
3009 }
3010}
3011
3012impl std::str::FromStr for STCellComments {
3013 type Err = String;
3014
3015 fn from_str(s: &str) -> Result<Self, Self::Err> {
3016 match s {
3017 "none" => Ok(Self::None),
3018 "asDisplayed" => Ok(Self::AsDisplayed),
3019 "atEnd" => Ok(Self::AtEnd),
3020 _ => Err(format!("unknown STCellComments value: {}", s)),
3021 }
3022 }
3023}
3024
3025#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
3026pub enum STPrintError {
3027 #[serde(rename = "displayed")]
3028 Displayed,
3029 #[serde(rename = "blank")]
3030 Blank,
3031 #[serde(rename = "dash")]
3032 Dash,
3033 #[serde(rename = "NA")]
3034 NA,
3035}
3036
3037impl std::fmt::Display for STPrintError {
3038 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3039 match self {
3040 Self::Displayed => write!(f, "displayed"),
3041 Self::Blank => write!(f, "blank"),
3042 Self::Dash => write!(f, "dash"),
3043 Self::NA => write!(f, "NA"),
3044 }
3045 }
3046}
3047
3048impl std::str::FromStr for STPrintError {
3049 type Err = String;
3050
3051 fn from_str(s: &str) -> Result<Self, Self::Err> {
3052 match s {
3053 "displayed" => Ok(Self::Displayed),
3054 "blank" => Ok(Self::Blank),
3055 "dash" => Ok(Self::Dash),
3056 "NA" => Ok(Self::NA),
3057 _ => Err(format!("unknown STPrintError value: {}", s)),
3058 }
3059 }
3060}
3061
3062#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
3063pub enum STDvAspect {
3064 #[serde(rename = "DVASPECT_CONTENT")]
3065 DVASPECTCONTENT,
3066 #[serde(rename = "DVASPECT_ICON")]
3067 DVASPECTICON,
3068}
3069
3070impl std::fmt::Display for STDvAspect {
3071 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3072 match self {
3073 Self::DVASPECTCONTENT => write!(f, "DVASPECT_CONTENT"),
3074 Self::DVASPECTICON => write!(f, "DVASPECT_ICON"),
3075 }
3076 }
3077}
3078
3079impl std::str::FromStr for STDvAspect {
3080 type Err = String;
3081
3082 fn from_str(s: &str) -> Result<Self, Self::Err> {
3083 match s {
3084 "DVASPECT_CONTENT" => Ok(Self::DVASPECTCONTENT),
3085 "DVASPECT_ICON" => Ok(Self::DVASPECTICON),
3086 _ => Err(format!("unknown STDvAspect value: {}", s)),
3087 }
3088 }
3089}
3090
3091#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
3092pub enum STOleUpdate {
3093 #[serde(rename = "OLEUPDATE_ALWAYS")]
3094 OLEUPDATEALWAYS,
3095 #[serde(rename = "OLEUPDATE_ONCALL")]
3096 OLEUPDATEONCALL,
3097}
3098
3099impl std::fmt::Display for STOleUpdate {
3100 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3101 match self {
3102 Self::OLEUPDATEALWAYS => write!(f, "OLEUPDATE_ALWAYS"),
3103 Self::OLEUPDATEONCALL => write!(f, "OLEUPDATE_ONCALL"),
3104 }
3105 }
3106}
3107
3108impl std::str::FromStr for STOleUpdate {
3109 type Err = String;
3110
3111 fn from_str(s: &str) -> Result<Self, Self::Err> {
3112 match s {
3113 "OLEUPDATE_ALWAYS" => Ok(Self::OLEUPDATEALWAYS),
3114 "OLEUPDATE_ONCALL" => Ok(Self::OLEUPDATEONCALL),
3115 _ => Err(format!("unknown STOleUpdate value: {}", s)),
3116 }
3117 }
3118}
3119
3120#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
3121pub enum STWebSourceType {
3122 #[serde(rename = "sheet")]
3123 Sheet,
3124 #[serde(rename = "printArea")]
3125 PrintArea,
3126 #[serde(rename = "autoFilter")]
3127 AutoFilter,
3128 #[serde(rename = "range")]
3129 Range,
3130 #[serde(rename = "chart")]
3131 Chart,
3132 #[serde(rename = "pivotTable")]
3133 PivotTable,
3134 #[serde(rename = "query")]
3135 Query,
3136 #[serde(rename = "label")]
3137 Label,
3138}
3139
3140impl std::fmt::Display for STWebSourceType {
3141 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3142 match self {
3143 Self::Sheet => write!(f, "sheet"),
3144 Self::PrintArea => write!(f, "printArea"),
3145 Self::AutoFilter => write!(f, "autoFilter"),
3146 Self::Range => write!(f, "range"),
3147 Self::Chart => write!(f, "chart"),
3148 Self::PivotTable => write!(f, "pivotTable"),
3149 Self::Query => write!(f, "query"),
3150 Self::Label => write!(f, "label"),
3151 }
3152 }
3153}
3154
3155impl std::str::FromStr for STWebSourceType {
3156 type Err = String;
3157
3158 fn from_str(s: &str) -> Result<Self, Self::Err> {
3159 match s {
3160 "sheet" => Ok(Self::Sheet),
3161 "printArea" => Ok(Self::PrintArea),
3162 "autoFilter" => Ok(Self::AutoFilter),
3163 "range" => Ok(Self::Range),
3164 "chart" => Ok(Self::Chart),
3165 "pivotTable" => Ok(Self::PivotTable),
3166 "query" => Ok(Self::Query),
3167 "label" => Ok(Self::Label),
3168 _ => Err(format!("unknown STWebSourceType value: {}", s)),
3169 }
3170 }
3171}
3172
3173#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
3174pub enum PaneState {
3175 #[serde(rename = "split")]
3176 Split,
3177 #[serde(rename = "frozen")]
3178 Frozen,
3179 #[serde(rename = "frozenSplit")]
3180 FrozenSplit,
3181}
3182
3183impl std::fmt::Display for PaneState {
3184 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3185 match self {
3186 Self::Split => write!(f, "split"),
3187 Self::Frozen => write!(f, "frozen"),
3188 Self::FrozenSplit => write!(f, "frozenSplit"),
3189 }
3190 }
3191}
3192
3193impl std::str::FromStr for PaneState {
3194 type Err = String;
3195
3196 fn from_str(s: &str) -> Result<Self, Self::Err> {
3197 match s {
3198 "split" => Ok(Self::Split),
3199 "frozen" => Ok(Self::Frozen),
3200 "frozenSplit" => Ok(Self::FrozenSplit),
3201 _ => Err(format!("unknown PaneState value: {}", s)),
3202 }
3203 }
3204}
3205
3206#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
3207pub enum STMdxFunctionType {
3208 #[serde(rename = "m")]
3209 M,
3210 #[serde(rename = "v")]
3211 V,
3212 #[serde(rename = "s")]
3213 SharedString,
3214 #[serde(rename = "c")]
3215 C,
3216 #[serde(rename = "r")]
3217 R,
3218 #[serde(rename = "p")]
3219 P,
3220 #[serde(rename = "k")]
3221 K,
3222}
3223
3224impl std::fmt::Display for STMdxFunctionType {
3225 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3226 match self {
3227 Self::M => write!(f, "m"),
3228 Self::V => write!(f, "v"),
3229 Self::SharedString => write!(f, "s"),
3230 Self::C => write!(f, "c"),
3231 Self::R => write!(f, "r"),
3232 Self::P => write!(f, "p"),
3233 Self::K => write!(f, "k"),
3234 }
3235 }
3236}
3237
3238impl std::str::FromStr for STMdxFunctionType {
3239 type Err = String;
3240
3241 fn from_str(s: &str) -> Result<Self, Self::Err> {
3242 match s {
3243 "m" => Ok(Self::M),
3244 "v" => Ok(Self::V),
3245 "s" => Ok(Self::SharedString),
3246 "c" => Ok(Self::C),
3247 "r" => Ok(Self::R),
3248 "p" => Ok(Self::P),
3249 "k" => Ok(Self::K),
3250 _ => Err(format!("unknown STMdxFunctionType value: {}", s)),
3251 }
3252 }
3253}
3254
3255#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
3256pub enum STMdxSetOrder {
3257 #[serde(rename = "u")]
3258 U,
3259 #[serde(rename = "a")]
3260 A,
3261 #[serde(rename = "d")]
3262 D,
3263 #[serde(rename = "aa")]
3264 Aa,
3265 #[serde(rename = "ad")]
3266 Ad,
3267 #[serde(rename = "na")]
3268 Na,
3269 #[serde(rename = "nd")]
3270 Nd,
3271}
3272
3273impl std::fmt::Display for STMdxSetOrder {
3274 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3275 match self {
3276 Self::U => write!(f, "u"),
3277 Self::A => write!(f, "a"),
3278 Self::D => write!(f, "d"),
3279 Self::Aa => write!(f, "aa"),
3280 Self::Ad => write!(f, "ad"),
3281 Self::Na => write!(f, "na"),
3282 Self::Nd => write!(f, "nd"),
3283 }
3284 }
3285}
3286
3287impl std::str::FromStr for STMdxSetOrder {
3288 type Err = String;
3289
3290 fn from_str(s: &str) -> Result<Self, Self::Err> {
3291 match s {
3292 "u" => Ok(Self::U),
3293 "a" => Ok(Self::A),
3294 "d" => Ok(Self::D),
3295 "aa" => Ok(Self::Aa),
3296 "ad" => Ok(Self::Ad),
3297 "na" => Ok(Self::Na),
3298 "nd" => Ok(Self::Nd),
3299 _ => Err(format!("unknown STMdxSetOrder value: {}", s)),
3300 }
3301 }
3302}
3303
3304#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
3305pub enum STMdxKPIProperty {
3306 #[serde(rename = "v")]
3307 V,
3308 #[serde(rename = "g")]
3309 G,
3310 #[serde(rename = "s")]
3311 SharedString,
3312 #[serde(rename = "t")]
3313 T,
3314 #[serde(rename = "w")]
3315 W,
3316 #[serde(rename = "m")]
3317 M,
3318}
3319
3320impl std::fmt::Display for STMdxKPIProperty {
3321 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3322 match self {
3323 Self::V => write!(f, "v"),
3324 Self::G => write!(f, "g"),
3325 Self::SharedString => write!(f, "s"),
3326 Self::T => write!(f, "t"),
3327 Self::W => write!(f, "w"),
3328 Self::M => write!(f, "m"),
3329 }
3330 }
3331}
3332
3333impl std::str::FromStr for STMdxKPIProperty {
3334 type Err = String;
3335
3336 fn from_str(s: &str) -> Result<Self, Self::Err> {
3337 match s {
3338 "v" => Ok(Self::V),
3339 "g" => Ok(Self::G),
3340 "s" => Ok(Self::SharedString),
3341 "t" => Ok(Self::T),
3342 "w" => Ok(Self::W),
3343 "m" => Ok(Self::M),
3344 _ => Err(format!("unknown STMdxKPIProperty value: {}", s)),
3345 }
3346 }
3347}
3348
3349pub type STTextRotation = String;
3350
3351#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
3352pub enum BorderStyle {
3353 #[serde(rename = "none")]
3354 None,
3355 #[serde(rename = "thin")]
3356 Thin,
3357 #[serde(rename = "medium")]
3358 Medium,
3359 #[serde(rename = "dashed")]
3360 Dashed,
3361 #[serde(rename = "dotted")]
3362 Dotted,
3363 #[serde(rename = "thick")]
3364 Thick,
3365 #[serde(rename = "double")]
3366 Double,
3367 #[serde(rename = "hair")]
3368 Hair,
3369 #[serde(rename = "mediumDashed")]
3370 MediumDashed,
3371 #[serde(rename = "dashDot")]
3372 DashDot,
3373 #[serde(rename = "mediumDashDot")]
3374 MediumDashDot,
3375 #[serde(rename = "dashDotDot")]
3376 DashDotDot,
3377 #[serde(rename = "mediumDashDotDot")]
3378 MediumDashDotDot,
3379 #[serde(rename = "slantDashDot")]
3380 SlantDashDot,
3381}
3382
3383impl std::fmt::Display for BorderStyle {
3384 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3385 match self {
3386 Self::None => write!(f, "none"),
3387 Self::Thin => write!(f, "thin"),
3388 Self::Medium => write!(f, "medium"),
3389 Self::Dashed => write!(f, "dashed"),
3390 Self::Dotted => write!(f, "dotted"),
3391 Self::Thick => write!(f, "thick"),
3392 Self::Double => write!(f, "double"),
3393 Self::Hair => write!(f, "hair"),
3394 Self::MediumDashed => write!(f, "mediumDashed"),
3395 Self::DashDot => write!(f, "dashDot"),
3396 Self::MediumDashDot => write!(f, "mediumDashDot"),
3397 Self::DashDotDot => write!(f, "dashDotDot"),
3398 Self::MediumDashDotDot => write!(f, "mediumDashDotDot"),
3399 Self::SlantDashDot => write!(f, "slantDashDot"),
3400 }
3401 }
3402}
3403
3404impl std::str::FromStr for BorderStyle {
3405 type Err = String;
3406
3407 fn from_str(s: &str) -> Result<Self, Self::Err> {
3408 match s {
3409 "none" => Ok(Self::None),
3410 "thin" => Ok(Self::Thin),
3411 "medium" => Ok(Self::Medium),
3412 "dashed" => Ok(Self::Dashed),
3413 "dotted" => Ok(Self::Dotted),
3414 "thick" => Ok(Self::Thick),
3415 "double" => Ok(Self::Double),
3416 "hair" => Ok(Self::Hair),
3417 "mediumDashed" => Ok(Self::MediumDashed),
3418 "dashDot" => Ok(Self::DashDot),
3419 "mediumDashDot" => Ok(Self::MediumDashDot),
3420 "dashDotDot" => Ok(Self::DashDotDot),
3421 "mediumDashDotDot" => Ok(Self::MediumDashDotDot),
3422 "slantDashDot" => Ok(Self::SlantDashDot),
3423 _ => Err(format!("unknown BorderStyle value: {}", s)),
3424 }
3425 }
3426}
3427
3428#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
3429pub enum PatternType {
3430 #[serde(rename = "none")]
3431 None,
3432 #[serde(rename = "solid")]
3433 Solid,
3434 #[serde(rename = "mediumGray")]
3435 MediumGray,
3436 #[serde(rename = "darkGray")]
3437 DarkGray,
3438 #[serde(rename = "lightGray")]
3439 LightGray,
3440 #[serde(rename = "darkHorizontal")]
3441 DarkHorizontal,
3442 #[serde(rename = "darkVertical")]
3443 DarkVertical,
3444 #[serde(rename = "darkDown")]
3445 DarkDown,
3446 #[serde(rename = "darkUp")]
3447 DarkUp,
3448 #[serde(rename = "darkGrid")]
3449 DarkGrid,
3450 #[serde(rename = "darkTrellis")]
3451 DarkTrellis,
3452 #[serde(rename = "lightHorizontal")]
3453 LightHorizontal,
3454 #[serde(rename = "lightVertical")]
3455 LightVertical,
3456 #[serde(rename = "lightDown")]
3457 LightDown,
3458 #[serde(rename = "lightUp")]
3459 LightUp,
3460 #[serde(rename = "lightGrid")]
3461 LightGrid,
3462 #[serde(rename = "lightTrellis")]
3463 LightTrellis,
3464 #[serde(rename = "gray125")]
3465 Gray125,
3466 #[serde(rename = "gray0625")]
3467 Gray0625,
3468}
3469
3470impl std::fmt::Display for PatternType {
3471 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3472 match self {
3473 Self::None => write!(f, "none"),
3474 Self::Solid => write!(f, "solid"),
3475 Self::MediumGray => write!(f, "mediumGray"),
3476 Self::DarkGray => write!(f, "darkGray"),
3477 Self::LightGray => write!(f, "lightGray"),
3478 Self::DarkHorizontal => write!(f, "darkHorizontal"),
3479 Self::DarkVertical => write!(f, "darkVertical"),
3480 Self::DarkDown => write!(f, "darkDown"),
3481 Self::DarkUp => write!(f, "darkUp"),
3482 Self::DarkGrid => write!(f, "darkGrid"),
3483 Self::DarkTrellis => write!(f, "darkTrellis"),
3484 Self::LightHorizontal => write!(f, "lightHorizontal"),
3485 Self::LightVertical => write!(f, "lightVertical"),
3486 Self::LightDown => write!(f, "lightDown"),
3487 Self::LightUp => write!(f, "lightUp"),
3488 Self::LightGrid => write!(f, "lightGrid"),
3489 Self::LightTrellis => write!(f, "lightTrellis"),
3490 Self::Gray125 => write!(f, "gray125"),
3491 Self::Gray0625 => write!(f, "gray0625"),
3492 }
3493 }
3494}
3495
3496impl std::str::FromStr for PatternType {
3497 type Err = String;
3498
3499 fn from_str(s: &str) -> Result<Self, Self::Err> {
3500 match s {
3501 "none" => Ok(Self::None),
3502 "solid" => Ok(Self::Solid),
3503 "mediumGray" => Ok(Self::MediumGray),
3504 "darkGray" => Ok(Self::DarkGray),
3505 "lightGray" => Ok(Self::LightGray),
3506 "darkHorizontal" => Ok(Self::DarkHorizontal),
3507 "darkVertical" => Ok(Self::DarkVertical),
3508 "darkDown" => Ok(Self::DarkDown),
3509 "darkUp" => Ok(Self::DarkUp),
3510 "darkGrid" => Ok(Self::DarkGrid),
3511 "darkTrellis" => Ok(Self::DarkTrellis),
3512 "lightHorizontal" => Ok(Self::LightHorizontal),
3513 "lightVertical" => Ok(Self::LightVertical),
3514 "lightDown" => Ok(Self::LightDown),
3515 "lightUp" => Ok(Self::LightUp),
3516 "lightGrid" => Ok(Self::LightGrid),
3517 "lightTrellis" => Ok(Self::LightTrellis),
3518 "gray125" => Ok(Self::Gray125),
3519 "gray0625" => Ok(Self::Gray0625),
3520 _ => Err(format!("unknown PatternType value: {}", s)),
3521 }
3522 }
3523}
3524
3525#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
3526pub enum GradientType {
3527 #[serde(rename = "linear")]
3528 Linear,
3529 #[serde(rename = "path")]
3530 Path,
3531}
3532
3533impl std::fmt::Display for GradientType {
3534 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3535 match self {
3536 Self::Linear => write!(f, "linear"),
3537 Self::Path => write!(f, "path"),
3538 }
3539 }
3540}
3541
3542impl std::str::FromStr for GradientType {
3543 type Err = String;
3544
3545 fn from_str(s: &str) -> Result<Self, Self::Err> {
3546 match s {
3547 "linear" => Ok(Self::Linear),
3548 "path" => Ok(Self::Path),
3549 _ => Err(format!("unknown GradientType value: {}", s)),
3550 }
3551 }
3552}
3553
3554#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
3555pub enum HorizontalAlignment {
3556 #[serde(rename = "general")]
3557 General,
3558 #[serde(rename = "left")]
3559 Left,
3560 #[serde(rename = "center")]
3561 Center,
3562 #[serde(rename = "right")]
3563 Right,
3564 #[serde(rename = "fill")]
3565 Fill,
3566 #[serde(rename = "justify")]
3567 Justify,
3568 #[serde(rename = "centerContinuous")]
3569 CenterContinuous,
3570 #[serde(rename = "distributed")]
3571 Distributed,
3572}
3573
3574impl std::fmt::Display for HorizontalAlignment {
3575 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3576 match self {
3577 Self::General => write!(f, "general"),
3578 Self::Left => write!(f, "left"),
3579 Self::Center => write!(f, "center"),
3580 Self::Right => write!(f, "right"),
3581 Self::Fill => write!(f, "fill"),
3582 Self::Justify => write!(f, "justify"),
3583 Self::CenterContinuous => write!(f, "centerContinuous"),
3584 Self::Distributed => write!(f, "distributed"),
3585 }
3586 }
3587}
3588
3589impl std::str::FromStr for HorizontalAlignment {
3590 type Err = String;
3591
3592 fn from_str(s: &str) -> Result<Self, Self::Err> {
3593 match s {
3594 "general" => Ok(Self::General),
3595 "left" => Ok(Self::Left),
3596 "center" => Ok(Self::Center),
3597 "right" => Ok(Self::Right),
3598 "fill" => Ok(Self::Fill),
3599 "justify" => Ok(Self::Justify),
3600 "centerContinuous" => Ok(Self::CenterContinuous),
3601 "distributed" => Ok(Self::Distributed),
3602 _ => Err(format!("unknown HorizontalAlignment value: {}", s)),
3603 }
3604 }
3605}
3606
3607#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
3608pub enum VerticalAlignment {
3609 #[serde(rename = "top")]
3610 Top,
3611 #[serde(rename = "center")]
3612 Center,
3613 #[serde(rename = "bottom")]
3614 Bottom,
3615 #[serde(rename = "justify")]
3616 Justify,
3617 #[serde(rename = "distributed")]
3618 Distributed,
3619}
3620
3621impl std::fmt::Display for VerticalAlignment {
3622 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3623 match self {
3624 Self::Top => write!(f, "top"),
3625 Self::Center => write!(f, "center"),
3626 Self::Bottom => write!(f, "bottom"),
3627 Self::Justify => write!(f, "justify"),
3628 Self::Distributed => write!(f, "distributed"),
3629 }
3630 }
3631}
3632
3633impl std::str::FromStr for VerticalAlignment {
3634 type Err = String;
3635
3636 fn from_str(s: &str) -> Result<Self, Self::Err> {
3637 match s {
3638 "top" => Ok(Self::Top),
3639 "center" => Ok(Self::Center),
3640 "bottom" => Ok(Self::Bottom),
3641 "justify" => Ok(Self::Justify),
3642 "distributed" => Ok(Self::Distributed),
3643 _ => Err(format!("unknown VerticalAlignment value: {}", s)),
3644 }
3645 }
3646}
3647
3648pub type STNumFmtId = u32;
3649
3650pub type STFontId = u32;
3651
3652pub type STFillId = u32;
3653
3654pub type STBorderId = u32;
3655
3656pub type STCellStyleXfId = u32;
3657
3658pub type STDxfId = u32;
3659
3660#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
3661pub enum STTableStyleType {
3662 #[serde(rename = "wholeTable")]
3663 WholeTable,
3664 #[serde(rename = "headerRow")]
3665 HeaderRow,
3666 #[serde(rename = "totalRow")]
3667 TotalRow,
3668 #[serde(rename = "firstColumn")]
3669 FirstColumn,
3670 #[serde(rename = "lastColumn")]
3671 LastColumn,
3672 #[serde(rename = "firstRowStripe")]
3673 FirstRowStripe,
3674 #[serde(rename = "secondRowStripe")]
3675 SecondRowStripe,
3676 #[serde(rename = "firstColumnStripe")]
3677 FirstColumnStripe,
3678 #[serde(rename = "secondColumnStripe")]
3679 SecondColumnStripe,
3680 #[serde(rename = "firstHeaderCell")]
3681 FirstHeaderCell,
3682 #[serde(rename = "lastHeaderCell")]
3683 LastHeaderCell,
3684 #[serde(rename = "firstTotalCell")]
3685 FirstTotalCell,
3686 #[serde(rename = "lastTotalCell")]
3687 LastTotalCell,
3688 #[serde(rename = "firstSubtotalColumn")]
3689 FirstSubtotalColumn,
3690 #[serde(rename = "secondSubtotalColumn")]
3691 SecondSubtotalColumn,
3692 #[serde(rename = "thirdSubtotalColumn")]
3693 ThirdSubtotalColumn,
3694 #[serde(rename = "firstSubtotalRow")]
3695 FirstSubtotalRow,
3696 #[serde(rename = "secondSubtotalRow")]
3697 SecondSubtotalRow,
3698 #[serde(rename = "thirdSubtotalRow")]
3699 ThirdSubtotalRow,
3700 #[serde(rename = "blankRow")]
3701 BlankRow,
3702 #[serde(rename = "firstColumnSubheading")]
3703 FirstColumnSubheading,
3704 #[serde(rename = "secondColumnSubheading")]
3705 SecondColumnSubheading,
3706 #[serde(rename = "thirdColumnSubheading")]
3707 ThirdColumnSubheading,
3708 #[serde(rename = "firstRowSubheading")]
3709 FirstRowSubheading,
3710 #[serde(rename = "secondRowSubheading")]
3711 SecondRowSubheading,
3712 #[serde(rename = "thirdRowSubheading")]
3713 ThirdRowSubheading,
3714 #[serde(rename = "pageFieldLabels")]
3715 PageFieldLabels,
3716 #[serde(rename = "pageFieldValues")]
3717 PageFieldValues,
3718}
3719
3720impl std::fmt::Display for STTableStyleType {
3721 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3722 match self {
3723 Self::WholeTable => write!(f, "wholeTable"),
3724 Self::HeaderRow => write!(f, "headerRow"),
3725 Self::TotalRow => write!(f, "totalRow"),
3726 Self::FirstColumn => write!(f, "firstColumn"),
3727 Self::LastColumn => write!(f, "lastColumn"),
3728 Self::FirstRowStripe => write!(f, "firstRowStripe"),
3729 Self::SecondRowStripe => write!(f, "secondRowStripe"),
3730 Self::FirstColumnStripe => write!(f, "firstColumnStripe"),
3731 Self::SecondColumnStripe => write!(f, "secondColumnStripe"),
3732 Self::FirstHeaderCell => write!(f, "firstHeaderCell"),
3733 Self::LastHeaderCell => write!(f, "lastHeaderCell"),
3734 Self::FirstTotalCell => write!(f, "firstTotalCell"),
3735 Self::LastTotalCell => write!(f, "lastTotalCell"),
3736 Self::FirstSubtotalColumn => write!(f, "firstSubtotalColumn"),
3737 Self::SecondSubtotalColumn => write!(f, "secondSubtotalColumn"),
3738 Self::ThirdSubtotalColumn => write!(f, "thirdSubtotalColumn"),
3739 Self::FirstSubtotalRow => write!(f, "firstSubtotalRow"),
3740 Self::SecondSubtotalRow => write!(f, "secondSubtotalRow"),
3741 Self::ThirdSubtotalRow => write!(f, "thirdSubtotalRow"),
3742 Self::BlankRow => write!(f, "blankRow"),
3743 Self::FirstColumnSubheading => write!(f, "firstColumnSubheading"),
3744 Self::SecondColumnSubheading => write!(f, "secondColumnSubheading"),
3745 Self::ThirdColumnSubheading => write!(f, "thirdColumnSubheading"),
3746 Self::FirstRowSubheading => write!(f, "firstRowSubheading"),
3747 Self::SecondRowSubheading => write!(f, "secondRowSubheading"),
3748 Self::ThirdRowSubheading => write!(f, "thirdRowSubheading"),
3749 Self::PageFieldLabels => write!(f, "pageFieldLabels"),
3750 Self::PageFieldValues => write!(f, "pageFieldValues"),
3751 }
3752 }
3753}
3754
3755impl std::str::FromStr for STTableStyleType {
3756 type Err = String;
3757
3758 fn from_str(s: &str) -> Result<Self, Self::Err> {
3759 match s {
3760 "wholeTable" => Ok(Self::WholeTable),
3761 "headerRow" => Ok(Self::HeaderRow),
3762 "totalRow" => Ok(Self::TotalRow),
3763 "firstColumn" => Ok(Self::FirstColumn),
3764 "lastColumn" => Ok(Self::LastColumn),
3765 "firstRowStripe" => Ok(Self::FirstRowStripe),
3766 "secondRowStripe" => Ok(Self::SecondRowStripe),
3767 "firstColumnStripe" => Ok(Self::FirstColumnStripe),
3768 "secondColumnStripe" => Ok(Self::SecondColumnStripe),
3769 "firstHeaderCell" => Ok(Self::FirstHeaderCell),
3770 "lastHeaderCell" => Ok(Self::LastHeaderCell),
3771 "firstTotalCell" => Ok(Self::FirstTotalCell),
3772 "lastTotalCell" => Ok(Self::LastTotalCell),
3773 "firstSubtotalColumn" => Ok(Self::FirstSubtotalColumn),
3774 "secondSubtotalColumn" => Ok(Self::SecondSubtotalColumn),
3775 "thirdSubtotalColumn" => Ok(Self::ThirdSubtotalColumn),
3776 "firstSubtotalRow" => Ok(Self::FirstSubtotalRow),
3777 "secondSubtotalRow" => Ok(Self::SecondSubtotalRow),
3778 "thirdSubtotalRow" => Ok(Self::ThirdSubtotalRow),
3779 "blankRow" => Ok(Self::BlankRow),
3780 "firstColumnSubheading" => Ok(Self::FirstColumnSubheading),
3781 "secondColumnSubheading" => Ok(Self::SecondColumnSubheading),
3782 "thirdColumnSubheading" => Ok(Self::ThirdColumnSubheading),
3783 "firstRowSubheading" => Ok(Self::FirstRowSubheading),
3784 "secondRowSubheading" => Ok(Self::SecondRowSubheading),
3785 "thirdRowSubheading" => Ok(Self::ThirdRowSubheading),
3786 "pageFieldLabels" => Ok(Self::PageFieldLabels),
3787 "pageFieldValues" => Ok(Self::PageFieldValues),
3788 _ => Err(format!("unknown STTableStyleType value: {}", s)),
3789 }
3790 }
3791}
3792
3793#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
3794pub enum FontScheme {
3795 #[serde(rename = "none")]
3796 None,
3797 #[serde(rename = "major")]
3798 Major,
3799 #[serde(rename = "minor")]
3800 Minor,
3801}
3802
3803impl std::fmt::Display for FontScheme {
3804 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3805 match self {
3806 Self::None => write!(f, "none"),
3807 Self::Major => write!(f, "major"),
3808 Self::Minor => write!(f, "minor"),
3809 }
3810 }
3811}
3812
3813impl std::str::FromStr for FontScheme {
3814 type Err = String;
3815
3816 fn from_str(s: &str) -> Result<Self, Self::Err> {
3817 match s {
3818 "none" => Ok(Self::None),
3819 "major" => Ok(Self::Major),
3820 "minor" => Ok(Self::Minor),
3821 _ => Err(format!("unknown FontScheme value: {}", s)),
3822 }
3823 }
3824}
3825
3826#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
3827pub enum UnderlineStyle {
3828 #[serde(rename = "single")]
3829 Single,
3830 #[serde(rename = "double")]
3831 Double,
3832 #[serde(rename = "singleAccounting")]
3833 SingleAccounting,
3834 #[serde(rename = "doubleAccounting")]
3835 DoubleAccounting,
3836 #[serde(rename = "none")]
3837 None,
3838}
3839
3840impl std::fmt::Display for UnderlineStyle {
3841 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3842 match self {
3843 Self::Single => write!(f, "single"),
3844 Self::Double => write!(f, "double"),
3845 Self::SingleAccounting => write!(f, "singleAccounting"),
3846 Self::DoubleAccounting => write!(f, "doubleAccounting"),
3847 Self::None => write!(f, "none"),
3848 }
3849 }
3850}
3851
3852impl std::str::FromStr for UnderlineStyle {
3853 type Err = String;
3854
3855 fn from_str(s: &str) -> Result<Self, Self::Err> {
3856 match s {
3857 "single" => Ok(Self::Single),
3858 "double" => Ok(Self::Double),
3859 "singleAccounting" => Ok(Self::SingleAccounting),
3860 "doubleAccounting" => Ok(Self::DoubleAccounting),
3861 "none" => Ok(Self::None),
3862 _ => Err(format!("unknown UnderlineStyle value: {}", s)),
3863 }
3864 }
3865}
3866
3867pub type STFontFamily = i64;
3868
3869#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
3870pub enum STDdeValueType {
3871 #[serde(rename = "nil")]
3872 Nil,
3873 #[serde(rename = "b")]
3874 Boolean,
3875 #[serde(rename = "n")]
3876 Number,
3877 #[serde(rename = "e")]
3878 Error,
3879 #[serde(rename = "str")]
3880 String,
3881}
3882
3883impl std::fmt::Display for STDdeValueType {
3884 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3885 match self {
3886 Self::Nil => write!(f, "nil"),
3887 Self::Boolean => write!(f, "b"),
3888 Self::Number => write!(f, "n"),
3889 Self::Error => write!(f, "e"),
3890 Self::String => write!(f, "str"),
3891 }
3892 }
3893}
3894
3895impl std::str::FromStr for STDdeValueType {
3896 type Err = String;
3897
3898 fn from_str(s: &str) -> Result<Self, Self::Err> {
3899 match s {
3900 "nil" => Ok(Self::Nil),
3901 "b" => Ok(Self::Boolean),
3902 "n" => Ok(Self::Number),
3903 "e" => Ok(Self::Error),
3904 "str" => Ok(Self::String),
3905 _ => Err(format!("unknown STDdeValueType value: {}", s)),
3906 }
3907 }
3908}
3909
3910#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
3911pub enum STTableType {
3912 #[serde(rename = "worksheet")]
3913 Worksheet,
3914 #[serde(rename = "xml")]
3915 Xml,
3916 #[serde(rename = "queryTable")]
3917 QueryTable,
3918}
3919
3920impl std::fmt::Display for STTableType {
3921 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3922 match self {
3923 Self::Worksheet => write!(f, "worksheet"),
3924 Self::Xml => write!(f, "xml"),
3925 Self::QueryTable => write!(f, "queryTable"),
3926 }
3927 }
3928}
3929
3930impl std::str::FromStr for STTableType {
3931 type Err = String;
3932
3933 fn from_str(s: &str) -> Result<Self, Self::Err> {
3934 match s {
3935 "worksheet" => Ok(Self::Worksheet),
3936 "xml" => Ok(Self::Xml),
3937 "queryTable" => Ok(Self::QueryTable),
3938 _ => Err(format!("unknown STTableType value: {}", s)),
3939 }
3940 }
3941}
3942
3943#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
3944pub enum STTotalsRowFunction {
3945 #[serde(rename = "none")]
3946 None,
3947 #[serde(rename = "sum")]
3948 Sum,
3949 #[serde(rename = "min")]
3950 Min,
3951 #[serde(rename = "max")]
3952 Max,
3953 #[serde(rename = "average")]
3954 Average,
3955 #[serde(rename = "count")]
3956 Count,
3957 #[serde(rename = "countNums")]
3958 CountNums,
3959 #[serde(rename = "stdDev")]
3960 StdDev,
3961 #[serde(rename = "var")]
3962 Var,
3963 #[serde(rename = "custom")]
3964 Custom,
3965}
3966
3967impl std::fmt::Display for STTotalsRowFunction {
3968 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3969 match self {
3970 Self::None => write!(f, "none"),
3971 Self::Sum => write!(f, "sum"),
3972 Self::Min => write!(f, "min"),
3973 Self::Max => write!(f, "max"),
3974 Self::Average => write!(f, "average"),
3975 Self::Count => write!(f, "count"),
3976 Self::CountNums => write!(f, "countNums"),
3977 Self::StdDev => write!(f, "stdDev"),
3978 Self::Var => write!(f, "var"),
3979 Self::Custom => write!(f, "custom"),
3980 }
3981 }
3982}
3983
3984impl std::str::FromStr for STTotalsRowFunction {
3985 type Err = String;
3986
3987 fn from_str(s: &str) -> Result<Self, Self::Err> {
3988 match s {
3989 "none" => Ok(Self::None),
3990 "sum" => Ok(Self::Sum),
3991 "min" => Ok(Self::Min),
3992 "max" => Ok(Self::Max),
3993 "average" => Ok(Self::Average),
3994 "count" => Ok(Self::Count),
3995 "countNums" => Ok(Self::CountNums),
3996 "stdDev" => Ok(Self::StdDev),
3997 "var" => Ok(Self::Var),
3998 "custom" => Ok(Self::Custom),
3999 _ => Err(format!("unknown STTotalsRowFunction value: {}", s)),
4000 }
4001 }
4002}
4003
4004pub type STXmlDataType = String;
4005
4006#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
4007pub enum STVolDepType {
4008 #[serde(rename = "realTimeData")]
4009 RealTimeData,
4010 #[serde(rename = "olapFunctions")]
4011 OlapFunctions,
4012}
4013
4014impl std::fmt::Display for STVolDepType {
4015 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4016 match self {
4017 Self::RealTimeData => write!(f, "realTimeData"),
4018 Self::OlapFunctions => write!(f, "olapFunctions"),
4019 }
4020 }
4021}
4022
4023impl std::str::FromStr for STVolDepType {
4024 type Err = String;
4025
4026 fn from_str(s: &str) -> Result<Self, Self::Err> {
4027 match s {
4028 "realTimeData" => Ok(Self::RealTimeData),
4029 "olapFunctions" => Ok(Self::OlapFunctions),
4030 _ => Err(format!("unknown STVolDepType value: {}", s)),
4031 }
4032 }
4033}
4034
4035#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
4036pub enum STVolValueType {
4037 #[serde(rename = "b")]
4038 Boolean,
4039 #[serde(rename = "n")]
4040 Number,
4041 #[serde(rename = "e")]
4042 Error,
4043 #[serde(rename = "s")]
4044 SharedString,
4045}
4046
4047impl std::fmt::Display for STVolValueType {
4048 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4049 match self {
4050 Self::Boolean => write!(f, "b"),
4051 Self::Number => write!(f, "n"),
4052 Self::Error => write!(f, "e"),
4053 Self::SharedString => write!(f, "s"),
4054 }
4055 }
4056}
4057
4058impl std::str::FromStr for STVolValueType {
4059 type Err = String;
4060
4061 fn from_str(s: &str) -> Result<Self, Self::Err> {
4062 match s {
4063 "b" => Ok(Self::Boolean),
4064 "n" => Ok(Self::Number),
4065 "e" => Ok(Self::Error),
4066 "s" => Ok(Self::SharedString),
4067 _ => Err(format!("unknown STVolValueType value: {}", s)),
4068 }
4069 }
4070}
4071
4072#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
4073pub enum Visibility {
4074 #[serde(rename = "visible")]
4075 Visible,
4076 #[serde(rename = "hidden")]
4077 Hidden,
4078 #[serde(rename = "veryHidden")]
4079 VeryHidden,
4080}
4081
4082impl std::fmt::Display for Visibility {
4083 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4084 match self {
4085 Self::Visible => write!(f, "visible"),
4086 Self::Hidden => write!(f, "hidden"),
4087 Self::VeryHidden => write!(f, "veryHidden"),
4088 }
4089 }
4090}
4091
4092impl std::str::FromStr for Visibility {
4093 type Err = String;
4094
4095 fn from_str(s: &str) -> Result<Self, Self::Err> {
4096 match s {
4097 "visible" => Ok(Self::Visible),
4098 "hidden" => Ok(Self::Hidden),
4099 "veryHidden" => Ok(Self::VeryHidden),
4100 _ => Err(format!("unknown Visibility value: {}", s)),
4101 }
4102 }
4103}
4104
4105#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
4106pub enum CommentVisibility {
4107 #[serde(rename = "commNone")]
4108 CommNone,
4109 #[serde(rename = "commIndicator")]
4110 CommIndicator,
4111 #[serde(rename = "commIndAndComment")]
4112 CommIndAndComment,
4113}
4114
4115impl std::fmt::Display for CommentVisibility {
4116 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4117 match self {
4118 Self::CommNone => write!(f, "commNone"),
4119 Self::CommIndicator => write!(f, "commIndicator"),
4120 Self::CommIndAndComment => write!(f, "commIndAndComment"),
4121 }
4122 }
4123}
4124
4125impl std::str::FromStr for CommentVisibility {
4126 type Err = String;
4127
4128 fn from_str(s: &str) -> Result<Self, Self::Err> {
4129 match s {
4130 "commNone" => Ok(Self::CommNone),
4131 "commIndicator" => Ok(Self::CommIndicator),
4132 "commIndAndComment" => Ok(Self::CommIndAndComment),
4133 _ => Err(format!("unknown CommentVisibility value: {}", s)),
4134 }
4135 }
4136}
4137
4138#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
4139pub enum ObjectVisibility {
4140 #[serde(rename = "all")]
4141 All,
4142 #[serde(rename = "placeholders")]
4143 Placeholders,
4144 #[serde(rename = "none")]
4145 None,
4146}
4147
4148impl std::fmt::Display for ObjectVisibility {
4149 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4150 match self {
4151 Self::All => write!(f, "all"),
4152 Self::Placeholders => write!(f, "placeholders"),
4153 Self::None => write!(f, "none"),
4154 }
4155 }
4156}
4157
4158impl std::str::FromStr for ObjectVisibility {
4159 type Err = String;
4160
4161 fn from_str(s: &str) -> Result<Self, Self::Err> {
4162 match s {
4163 "all" => Ok(Self::All),
4164 "placeholders" => Ok(Self::Placeholders),
4165 "none" => Ok(Self::None),
4166 _ => Err(format!("unknown ObjectVisibility value: {}", s)),
4167 }
4168 }
4169}
4170
4171#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
4172pub enum SheetState {
4173 #[serde(rename = "visible")]
4174 Visible,
4175 #[serde(rename = "hidden")]
4176 Hidden,
4177 #[serde(rename = "veryHidden")]
4178 VeryHidden,
4179}
4180
4181impl std::fmt::Display for SheetState {
4182 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4183 match self {
4184 Self::Visible => write!(f, "visible"),
4185 Self::Hidden => write!(f, "hidden"),
4186 Self::VeryHidden => write!(f, "veryHidden"),
4187 }
4188 }
4189}
4190
4191impl std::str::FromStr for SheetState {
4192 type Err = String;
4193
4194 fn from_str(s: &str) -> Result<Self, Self::Err> {
4195 match s {
4196 "visible" => Ok(Self::Visible),
4197 "hidden" => Ok(Self::Hidden),
4198 "veryHidden" => Ok(Self::VeryHidden),
4199 _ => Err(format!("unknown SheetState value: {}", s)),
4200 }
4201 }
4202}
4203
4204#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
4205pub enum UpdateLinks {
4206 #[serde(rename = "userSet")]
4207 UserSet,
4208 #[serde(rename = "never")]
4209 Never,
4210 #[serde(rename = "always")]
4211 Always,
4212}
4213
4214impl std::fmt::Display for UpdateLinks {
4215 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4216 match self {
4217 Self::UserSet => write!(f, "userSet"),
4218 Self::Never => write!(f, "never"),
4219 Self::Always => write!(f, "always"),
4220 }
4221 }
4222}
4223
4224impl std::str::FromStr for UpdateLinks {
4225 type Err = String;
4226
4227 fn from_str(s: &str) -> Result<Self, Self::Err> {
4228 match s {
4229 "userSet" => Ok(Self::UserSet),
4230 "never" => Ok(Self::Never),
4231 "always" => Ok(Self::Always),
4232 _ => Err(format!("unknown UpdateLinks value: {}", s)),
4233 }
4234 }
4235}
4236
4237#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
4238pub enum STSmartTagShow {
4239 #[serde(rename = "all")]
4240 All,
4241 #[serde(rename = "none")]
4242 None,
4243 #[serde(rename = "noIndicator")]
4244 NoIndicator,
4245}
4246
4247impl std::fmt::Display for STSmartTagShow {
4248 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4249 match self {
4250 Self::All => write!(f, "all"),
4251 Self::None => write!(f, "none"),
4252 Self::NoIndicator => write!(f, "noIndicator"),
4253 }
4254 }
4255}
4256
4257impl std::str::FromStr for STSmartTagShow {
4258 type Err = String;
4259
4260 fn from_str(s: &str) -> Result<Self, Self::Err> {
4261 match s {
4262 "all" => Ok(Self::All),
4263 "none" => Ok(Self::None),
4264 "noIndicator" => Ok(Self::NoIndicator),
4265 _ => Err(format!("unknown STSmartTagShow value: {}", s)),
4266 }
4267 }
4268}
4269
4270#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
4271pub enum CalculationMode {
4272 #[serde(rename = "manual")]
4273 Manual,
4274 #[serde(rename = "auto")]
4275 Auto,
4276 #[serde(rename = "autoNoTable")]
4277 AutoNoTable,
4278}
4279
4280impl std::fmt::Display for CalculationMode {
4281 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4282 match self {
4283 Self::Manual => write!(f, "manual"),
4284 Self::Auto => write!(f, "auto"),
4285 Self::AutoNoTable => write!(f, "autoNoTable"),
4286 }
4287 }
4288}
4289
4290impl std::str::FromStr for CalculationMode {
4291 type Err = String;
4292
4293 fn from_str(s: &str) -> Result<Self, Self::Err> {
4294 match s {
4295 "manual" => Ok(Self::Manual),
4296 "auto" => Ok(Self::Auto),
4297 "autoNoTable" => Ok(Self::AutoNoTable),
4298 _ => Err(format!("unknown CalculationMode value: {}", s)),
4299 }
4300 }
4301}
4302
4303#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
4304pub enum ReferenceMode {
4305 #[serde(rename = "A1")]
4306 A1,
4307 #[serde(rename = "R1C1")]
4308 R1C1,
4309}
4310
4311impl std::fmt::Display for ReferenceMode {
4312 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4313 match self {
4314 Self::A1 => write!(f, "A1"),
4315 Self::R1C1 => write!(f, "R1C1"),
4316 }
4317 }
4318}
4319
4320impl std::str::FromStr for ReferenceMode {
4321 type Err = String;
4322
4323 fn from_str(s: &str) -> Result<Self, Self::Err> {
4324 match s {
4325 "A1" => Ok(Self::A1),
4326 "R1C1" => Ok(Self::R1C1),
4327 _ => Err(format!("unknown ReferenceMode value: {}", s)),
4328 }
4329 }
4330}
4331
4332#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
4333pub enum STTargetScreenSize {
4334 #[serde(rename = "544x376")]
4335 _544x376,
4336 #[serde(rename = "640x480")]
4337 _640x480,
4338 #[serde(rename = "720x512")]
4339 _720x512,
4340 #[serde(rename = "800x600")]
4341 _800x600,
4342 #[serde(rename = "1024x768")]
4343 _1024x768,
4344 #[serde(rename = "1152x882")]
4345 _1152x882,
4346 #[serde(rename = "1152x900")]
4347 _1152x900,
4348 #[serde(rename = "1280x1024")]
4349 _1280x1024,
4350 #[serde(rename = "1600x1200")]
4351 _1600x1200,
4352 #[serde(rename = "1800x1440")]
4353 _1800x1440,
4354 #[serde(rename = "1920x1200")]
4355 _1920x1200,
4356}
4357
4358impl std::fmt::Display for STTargetScreenSize {
4359 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4360 match self {
4361 Self::_544x376 => write!(f, "544x376"),
4362 Self::_640x480 => write!(f, "640x480"),
4363 Self::_720x512 => write!(f, "720x512"),
4364 Self::_800x600 => write!(f, "800x600"),
4365 Self::_1024x768 => write!(f, "1024x768"),
4366 Self::_1152x882 => write!(f, "1152x882"),
4367 Self::_1152x900 => write!(f, "1152x900"),
4368 Self::_1280x1024 => write!(f, "1280x1024"),
4369 Self::_1600x1200 => write!(f, "1600x1200"),
4370 Self::_1800x1440 => write!(f, "1800x1440"),
4371 Self::_1920x1200 => write!(f, "1920x1200"),
4372 }
4373 }
4374}
4375
4376impl std::str::FromStr for STTargetScreenSize {
4377 type Err = String;
4378
4379 fn from_str(s: &str) -> Result<Self, Self::Err> {
4380 match s {
4381 "544x376" => Ok(Self::_544x376),
4382 "640x480" => Ok(Self::_640x480),
4383 "720x512" => Ok(Self::_720x512),
4384 "800x600" => Ok(Self::_800x600),
4385 "1024x768" => Ok(Self::_1024x768),
4386 "1152x882" => Ok(Self::_1152x882),
4387 "1152x900" => Ok(Self::_1152x900),
4388 "1280x1024" => Ok(Self::_1280x1024),
4389 "1600x1200" => Ok(Self::_1600x1200),
4390 "1800x1440" => Ok(Self::_1800x1440),
4391 "1920x1200" => Ok(Self::_1920x1200),
4392 _ => Err(format!("unknown STTargetScreenSize value: {}", s)),
4393 }
4394 }
4395}
4396
4397#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4398#[serde(rename = "autoFilter")]
4399pub struct AutoFilter {
4400 #[cfg(feature = "sml-filtering")]
4401 #[serde(rename = "@ref")]
4402 #[serde(default, skip_serializing_if = "Option::is_none")]
4403 pub reference: Option<Reference>,
4404 #[cfg(feature = "sml-filtering")]
4405 #[serde(rename = "filterColumn")]
4406 #[serde(default, skip_serializing_if = "Vec::is_empty")]
4407 pub filter_column: Vec<FilterColumn>,
4408 #[cfg(feature = "sml-filtering")]
4409 #[serde(rename = "sortState")]
4410 #[serde(default, skip_serializing_if = "Option::is_none")]
4411 pub sort_state: Option<Box<SortState>>,
4412 #[cfg(feature = "sml-extensions")]
4413 #[serde(rename = "extLst")]
4414 #[serde(default, skip_serializing_if = "Option::is_none")]
4415 pub extension_list: Option<Box<ExtensionList>>,
4416 #[cfg(feature = "extra-attrs")]
4418 #[serde(skip)]
4419 #[cfg(feature = "extra-attrs")]
4420 #[serde(default)]
4421 #[cfg(feature = "extra-attrs")]
4422 pub extra_attrs: std::collections::HashMap<String, String>,
4423 #[cfg(feature = "extra-children")]
4425 #[serde(skip)]
4426 #[cfg(feature = "extra-children")]
4427 pub extra_children: Vec<ooxml_xml::PositionedNode>,
4428}
4429
4430#[derive(Debug, Clone, Serialize, Deserialize)]
4431#[serde(rename = "filterColumn")]
4432pub struct FilterColumn {
4433 #[cfg(feature = "sml-filtering")]
4434 #[serde(rename = "@colId")]
4435 pub column_id: u32,
4436 #[cfg(feature = "sml-filtering")]
4437 #[serde(rename = "@hiddenButton")]
4438 #[serde(
4439 default,
4440 skip_serializing_if = "Option::is_none",
4441 with = "ooxml_xml::ooxml_bool"
4442 )]
4443 pub hidden_button: Option<bool>,
4444 #[cfg(feature = "sml-filtering")]
4445 #[serde(rename = "@showButton")]
4446 #[serde(
4447 default,
4448 skip_serializing_if = "Option::is_none",
4449 with = "ooxml_xml::ooxml_bool"
4450 )]
4451 pub show_button: Option<bool>,
4452 #[cfg(feature = "sml-filtering")]
4453 #[serde(rename = "filters")]
4454 #[serde(default, skip_serializing_if = "Option::is_none")]
4455 pub filters: Option<Box<Filters>>,
4456 #[cfg(feature = "sml-filtering")]
4457 #[serde(rename = "top10")]
4458 #[serde(default, skip_serializing_if = "Option::is_none")]
4459 pub top10: Option<Box<Top10Filter>>,
4460 #[cfg(feature = "sml-filtering")]
4461 #[serde(rename = "customFilters")]
4462 #[serde(default, skip_serializing_if = "Option::is_none")]
4463 pub custom_filters: Option<Box<CustomFilters>>,
4464 #[cfg(feature = "sml-filtering")]
4465 #[serde(rename = "dynamicFilter")]
4466 #[serde(default, skip_serializing_if = "Option::is_none")]
4467 pub dynamic_filter: Option<Box<DynamicFilter>>,
4468 #[cfg(feature = "sml-filtering")]
4469 #[serde(rename = "colorFilter")]
4470 #[serde(default, skip_serializing_if = "Option::is_none")]
4471 pub color_filter: Option<Box<ColorFilter>>,
4472 #[cfg(feature = "sml-filtering")]
4473 #[serde(rename = "iconFilter")]
4474 #[serde(default, skip_serializing_if = "Option::is_none")]
4475 pub icon_filter: Option<Box<IconFilter>>,
4476 #[cfg(feature = "sml-extensions")]
4477 #[serde(rename = "extLst")]
4478 #[serde(default, skip_serializing_if = "Option::is_none")]
4479 pub extension_list: Option<Box<ExtensionList>>,
4480 #[cfg(feature = "extra-attrs")]
4482 #[serde(skip)]
4483 #[cfg(feature = "extra-attrs")]
4484 #[serde(default)]
4485 #[cfg(feature = "extra-attrs")]
4486 pub extra_attrs: std::collections::HashMap<String, String>,
4487 #[cfg(feature = "extra-children")]
4489 #[serde(skip)]
4490 #[cfg(feature = "extra-children")]
4491 pub extra_children: Vec<ooxml_xml::PositionedNode>,
4492}
4493
4494#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4495#[serde(rename = "filters")]
4496pub struct Filters {
4497 #[serde(rename = "@blank")]
4498 #[serde(
4499 default,
4500 skip_serializing_if = "Option::is_none",
4501 with = "ooxml_xml::ooxml_bool"
4502 )]
4503 pub blank: Option<bool>,
4504 #[serde(rename = "@calendarType")]
4505 #[serde(default, skip_serializing_if = "Option::is_none")]
4506 pub calendar_type: Option<CalendarType>,
4507 #[serde(rename = "filter")]
4508 #[serde(default, skip_serializing_if = "Vec::is_empty")]
4509 pub filter: Vec<Filter>,
4510 #[serde(rename = "dateGroupItem")]
4511 #[serde(default, skip_serializing_if = "Vec::is_empty")]
4512 pub date_group_item: Vec<DateGroupItem>,
4513 #[cfg(feature = "extra-attrs")]
4515 #[serde(skip)]
4516 #[cfg(feature = "extra-attrs")]
4517 #[serde(default)]
4518 #[cfg(feature = "extra-attrs")]
4519 pub extra_attrs: std::collections::HashMap<String, String>,
4520 #[cfg(feature = "extra-children")]
4522 #[serde(skip)]
4523 #[cfg(feature = "extra-children")]
4524 pub extra_children: Vec<ooxml_xml::PositionedNode>,
4525}
4526
4527#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4528#[serde(rename = "filter")]
4529pub struct Filter {
4530 #[serde(rename = "@val")]
4531 #[serde(default, skip_serializing_if = "Option::is_none")]
4532 pub value: Option<XmlString>,
4533 #[cfg(feature = "extra-attrs")]
4535 #[serde(skip)]
4536 #[cfg(feature = "extra-attrs")]
4537 #[serde(default)]
4538 #[cfg(feature = "extra-attrs")]
4539 pub extra_attrs: std::collections::HashMap<String, String>,
4540}
4541
4542#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4543pub struct CustomFilters {
4544 #[serde(rename = "@and")]
4545 #[serde(
4546 default,
4547 skip_serializing_if = "Option::is_none",
4548 with = "ooxml_xml::ooxml_bool"
4549 )]
4550 pub and: Option<bool>,
4551 #[serde(rename = "customFilter")]
4552 #[serde(default, skip_serializing_if = "Vec::is_empty")]
4553 pub custom_filter: Vec<CustomFilter>,
4554 #[cfg(feature = "extra-attrs")]
4556 #[serde(skip)]
4557 #[cfg(feature = "extra-attrs")]
4558 #[serde(default)]
4559 #[cfg(feature = "extra-attrs")]
4560 pub extra_attrs: std::collections::HashMap<String, String>,
4561 #[cfg(feature = "extra-children")]
4563 #[serde(skip)]
4564 #[cfg(feature = "extra-children")]
4565 pub extra_children: Vec<ooxml_xml::PositionedNode>,
4566}
4567
4568#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4569pub struct CustomFilter {
4570 #[serde(rename = "@operator")]
4571 #[serde(default, skip_serializing_if = "Option::is_none")]
4572 pub operator: Option<FilterOperator>,
4573 #[serde(rename = "@val")]
4574 #[serde(default, skip_serializing_if = "Option::is_none")]
4575 pub value: Option<XmlString>,
4576 #[cfg(feature = "extra-attrs")]
4578 #[serde(skip)]
4579 #[cfg(feature = "extra-attrs")]
4580 #[serde(default)]
4581 #[cfg(feature = "extra-attrs")]
4582 pub extra_attrs: std::collections::HashMap<String, String>,
4583}
4584
4585#[derive(Debug, Clone, Serialize, Deserialize)]
4586pub struct Top10Filter {
4587 #[serde(rename = "@top")]
4588 #[serde(
4589 default,
4590 skip_serializing_if = "Option::is_none",
4591 with = "ooxml_xml::ooxml_bool"
4592 )]
4593 pub top: Option<bool>,
4594 #[serde(rename = "@percent")]
4595 #[serde(
4596 default,
4597 skip_serializing_if = "Option::is_none",
4598 with = "ooxml_xml::ooxml_bool"
4599 )]
4600 pub percent: Option<bool>,
4601 #[serde(rename = "@val")]
4602 pub value: f64,
4603 #[serde(rename = "@filterVal")]
4604 #[serde(default, skip_serializing_if = "Option::is_none")]
4605 pub filter_val: Option<f64>,
4606 #[cfg(feature = "extra-attrs")]
4608 #[serde(skip)]
4609 #[cfg(feature = "extra-attrs")]
4610 #[serde(default)]
4611 #[cfg(feature = "extra-attrs")]
4612 pub extra_attrs: std::collections::HashMap<String, String>,
4613}
4614
4615#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4616pub struct ColorFilter {
4617 #[serde(rename = "@dxfId")]
4618 #[serde(default, skip_serializing_if = "Option::is_none")]
4619 pub dxf_id: Option<STDxfId>,
4620 #[serde(rename = "@cellColor")]
4621 #[serde(
4622 default,
4623 skip_serializing_if = "Option::is_none",
4624 with = "ooxml_xml::ooxml_bool"
4625 )]
4626 pub cell_color: Option<bool>,
4627 #[cfg(feature = "extra-attrs")]
4629 #[serde(skip)]
4630 #[cfg(feature = "extra-attrs")]
4631 #[serde(default)]
4632 #[cfg(feature = "extra-attrs")]
4633 pub extra_attrs: std::collections::HashMap<String, String>,
4634}
4635
4636#[derive(Debug, Clone, Serialize, Deserialize)]
4637pub struct IconFilter {
4638 #[serde(rename = "@iconSet")]
4639 pub icon_set: IconSetType,
4640 #[serde(rename = "@iconId")]
4641 #[serde(default, skip_serializing_if = "Option::is_none")]
4642 pub icon_id: Option<u32>,
4643 #[cfg(feature = "extra-attrs")]
4645 #[serde(skip)]
4646 #[cfg(feature = "extra-attrs")]
4647 #[serde(default)]
4648 #[cfg(feature = "extra-attrs")]
4649 pub extra_attrs: std::collections::HashMap<String, String>,
4650}
4651
4652#[derive(Debug, Clone, Serialize, Deserialize)]
4653pub struct DynamicFilter {
4654 #[serde(rename = "@type")]
4655 pub r#type: DynamicFilterType,
4656 #[serde(rename = "@val")]
4657 #[serde(default, skip_serializing_if = "Option::is_none")]
4658 pub value: Option<f64>,
4659 #[serde(rename = "@valIso")]
4660 #[serde(default, skip_serializing_if = "Option::is_none")]
4661 pub val_iso: Option<String>,
4662 #[serde(rename = "@maxVal")]
4663 #[serde(default, skip_serializing_if = "Option::is_none")]
4664 pub max_val: Option<f64>,
4665 #[serde(rename = "@maxValIso")]
4666 #[serde(default, skip_serializing_if = "Option::is_none")]
4667 pub max_val_iso: Option<String>,
4668 #[cfg(feature = "extra-attrs")]
4670 #[serde(skip)]
4671 #[cfg(feature = "extra-attrs")]
4672 #[serde(default)]
4673 #[cfg(feature = "extra-attrs")]
4674 pub extra_attrs: std::collections::HashMap<String, String>,
4675}
4676
4677#[derive(Debug, Clone, Serialize, Deserialize)]
4678#[serde(rename = "sortState")]
4679pub struct SortState {
4680 #[serde(rename = "@columnSort")]
4681 #[serde(
4682 default,
4683 skip_serializing_if = "Option::is_none",
4684 with = "ooxml_xml::ooxml_bool"
4685 )]
4686 pub column_sort: Option<bool>,
4687 #[serde(rename = "@caseSensitive")]
4688 #[serde(
4689 default,
4690 skip_serializing_if = "Option::is_none",
4691 with = "ooxml_xml::ooxml_bool"
4692 )]
4693 pub case_sensitive: Option<bool>,
4694 #[serde(rename = "@sortMethod")]
4695 #[serde(default, skip_serializing_if = "Option::is_none")]
4696 pub sort_method: Option<SortMethod>,
4697 #[serde(rename = "@ref")]
4698 pub reference: Reference,
4699 #[serde(rename = "sortCondition")]
4700 #[serde(default, skip_serializing_if = "Vec::is_empty")]
4701 pub sort_condition: Vec<SortCondition>,
4702 #[serde(rename = "extLst")]
4703 #[serde(default, skip_serializing_if = "Option::is_none")]
4704 pub extension_list: Option<Box<ExtensionList>>,
4705 #[cfg(feature = "extra-attrs")]
4707 #[serde(skip)]
4708 #[cfg(feature = "extra-attrs")]
4709 #[serde(default)]
4710 #[cfg(feature = "extra-attrs")]
4711 pub extra_attrs: std::collections::HashMap<String, String>,
4712 #[cfg(feature = "extra-children")]
4714 #[serde(skip)]
4715 #[cfg(feature = "extra-children")]
4716 pub extra_children: Vec<ooxml_xml::PositionedNode>,
4717}
4718
4719#[derive(Debug, Clone, Serialize, Deserialize)]
4720#[serde(rename = "sortCondition")]
4721pub struct SortCondition {
4722 #[serde(rename = "@descending")]
4723 #[serde(
4724 default,
4725 skip_serializing_if = "Option::is_none",
4726 with = "ooxml_xml::ooxml_bool"
4727 )]
4728 pub descending: Option<bool>,
4729 #[serde(rename = "@sortBy")]
4730 #[serde(default, skip_serializing_if = "Option::is_none")]
4731 pub sort_by: Option<SortBy>,
4732 #[serde(rename = "@ref")]
4733 pub reference: Reference,
4734 #[serde(rename = "@customList")]
4735 #[serde(default, skip_serializing_if = "Option::is_none")]
4736 pub custom_list: Option<XmlString>,
4737 #[serde(rename = "@dxfId")]
4738 #[serde(default, skip_serializing_if = "Option::is_none")]
4739 pub dxf_id: Option<STDxfId>,
4740 #[serde(rename = "@iconSet")]
4741 #[serde(default, skip_serializing_if = "Option::is_none")]
4742 pub icon_set: Option<IconSetType>,
4743 #[serde(rename = "@iconId")]
4744 #[serde(default, skip_serializing_if = "Option::is_none")]
4745 pub icon_id: Option<u32>,
4746 #[cfg(feature = "extra-attrs")]
4748 #[serde(skip)]
4749 #[cfg(feature = "extra-attrs")]
4750 #[serde(default)]
4751 #[cfg(feature = "extra-attrs")]
4752 pub extra_attrs: std::collections::HashMap<String, String>,
4753}
4754
4755#[derive(Debug, Clone, Serialize, Deserialize)]
4756pub struct DateGroupItem {
4757 #[serde(rename = "@year")]
4758 pub year: u16,
4759 #[serde(rename = "@month")]
4760 #[serde(default, skip_serializing_if = "Option::is_none")]
4761 pub month: Option<u16>,
4762 #[serde(rename = "@day")]
4763 #[serde(default, skip_serializing_if = "Option::is_none")]
4764 pub day: Option<u16>,
4765 #[serde(rename = "@hour")]
4766 #[serde(default, skip_serializing_if = "Option::is_none")]
4767 pub hour: Option<u16>,
4768 #[serde(rename = "@minute")]
4769 #[serde(default, skip_serializing_if = "Option::is_none")]
4770 pub minute: Option<u16>,
4771 #[serde(rename = "@second")]
4772 #[serde(default, skip_serializing_if = "Option::is_none")]
4773 pub second: Option<u16>,
4774 #[serde(rename = "@dateTimeGrouping")]
4775 pub date_time_grouping: STDateTimeGrouping,
4776 #[cfg(feature = "extra-attrs")]
4778 #[serde(skip)]
4779 #[cfg(feature = "extra-attrs")]
4780 #[serde(default)]
4781 #[cfg(feature = "extra-attrs")]
4782 pub extra_attrs: std::collections::HashMap<String, String>,
4783}
4784
4785#[derive(Debug, Clone, Serialize, Deserialize)]
4786pub struct CTXStringElement {
4787 #[serde(rename = "@v")]
4788 pub value: XmlString,
4789 #[cfg(feature = "extra-attrs")]
4791 #[serde(skip)]
4792 #[cfg(feature = "extra-attrs")]
4793 #[serde(default)]
4794 #[cfg(feature = "extra-attrs")]
4795 pub extra_attrs: std::collections::HashMap<String, String>,
4796}
4797
4798#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4799#[serde(rename = "ext")]
4800pub struct Extension {
4801 #[serde(rename = "@uri")]
4802 #[serde(default, skip_serializing_if = "Option::is_none")]
4803 pub uri: Option<String>,
4804 #[cfg(feature = "extra-attrs")]
4806 #[serde(skip)]
4807 #[cfg(feature = "extra-attrs")]
4808 #[serde(default)]
4809 #[cfg(feature = "extra-attrs")]
4810 pub extra_attrs: std::collections::HashMap<String, String>,
4811}
4812
4813pub type ExtensionAnyElement = String;
4814
4815#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4816pub struct ObjectAnchor {
4817 #[serde(rename = "@moveWithCells")]
4818 #[serde(
4819 default,
4820 skip_serializing_if = "Option::is_none",
4821 with = "ooxml_xml::ooxml_bool"
4822 )]
4823 pub move_with_cells: Option<bool>,
4824 #[serde(rename = "@sizeWithCells")]
4825 #[serde(
4826 default,
4827 skip_serializing_if = "Option::is_none",
4828 with = "ooxml_xml::ooxml_bool"
4829 )]
4830 pub size_with_cells: Option<bool>,
4831 #[cfg(feature = "extra-attrs")]
4833 #[serde(skip)]
4834 #[cfg(feature = "extra-attrs")]
4835 #[serde(default)]
4836 #[cfg(feature = "extra-attrs")]
4837 pub extra_attrs: std::collections::HashMap<String, String>,
4838}
4839
4840#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4841pub struct EGExtensionList {
4842 #[serde(rename = "ext")]
4843 #[serde(default, skip_serializing_if = "Vec::is_empty")]
4844 pub ext: Vec<Extension>,
4845 #[cfg(feature = "extra-children")]
4847 #[serde(skip)]
4848 #[cfg(feature = "extra-children")]
4849 pub extra_children: Vec<ooxml_xml::PositionedNode>,
4850}
4851
4852#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4853#[serde(rename = "extLst")]
4854pub struct ExtensionList {
4855 #[serde(rename = "ext")]
4856 #[serde(default, skip_serializing_if = "Vec::is_empty")]
4857 pub ext: Vec<Extension>,
4858 #[cfg(feature = "extra-children")]
4860 #[serde(skip)]
4861 #[cfg(feature = "extra-children")]
4862 pub extra_children: Vec<ooxml_xml::PositionedNode>,
4863}
4864
4865pub type SmlCalcChain = Box<CalcChain>;
4866
4867#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4868#[serde(rename = "calcChain")]
4869pub struct CalcChain {
4870 #[cfg(feature = "sml-formulas")]
4871 #[serde(rename = "c")]
4872 #[serde(default, skip_serializing_if = "Vec::is_empty")]
4873 pub cells: Vec<CalcCell>,
4874 #[cfg(feature = "sml-extensions")]
4875 #[serde(rename = "extLst")]
4876 #[serde(default, skip_serializing_if = "Option::is_none")]
4877 pub extension_list: Option<Box<ExtensionList>>,
4878 #[cfg(feature = "extra-children")]
4880 #[serde(skip)]
4881 #[cfg(feature = "extra-children")]
4882 pub extra_children: Vec<ooxml_xml::PositionedNode>,
4883}
4884
4885#[derive(Debug, Clone, Serialize, Deserialize)]
4886pub struct CalcCell {
4887 #[serde(rename = "@_any")]
4888 pub _any: CellRef,
4889 #[cfg(feature = "sml-formulas")]
4890 #[serde(rename = "@i")]
4891 #[serde(default, skip_serializing_if = "Option::is_none")]
4892 pub i: Option<i32>,
4893 #[cfg(feature = "sml-formulas")]
4894 #[serde(rename = "@s")]
4895 #[serde(
4896 default,
4897 skip_serializing_if = "Option::is_none",
4898 with = "ooxml_xml::ooxml_bool"
4899 )]
4900 pub style_index: Option<bool>,
4901 #[cfg(feature = "sml-formulas")]
4902 #[serde(rename = "@l")]
4903 #[serde(
4904 default,
4905 skip_serializing_if = "Option::is_none",
4906 with = "ooxml_xml::ooxml_bool"
4907 )]
4908 pub l: Option<bool>,
4909 #[cfg(feature = "sml-formulas")]
4910 #[serde(rename = "@t")]
4911 #[serde(
4912 default,
4913 skip_serializing_if = "Option::is_none",
4914 with = "ooxml_xml::ooxml_bool"
4915 )]
4916 pub cell_type: Option<bool>,
4917 #[cfg(feature = "sml-formulas")]
4918 #[serde(rename = "@a")]
4919 #[serde(
4920 default,
4921 skip_serializing_if = "Option::is_none",
4922 with = "ooxml_xml::ooxml_bool"
4923 )]
4924 pub a: Option<bool>,
4925 #[cfg(feature = "extra-attrs")]
4927 #[serde(skip)]
4928 #[cfg(feature = "extra-attrs")]
4929 #[serde(default)]
4930 #[cfg(feature = "extra-attrs")]
4931 pub extra_attrs: std::collections::HashMap<String, String>,
4932}
4933
4934pub type SmlComments = Box<Comments>;
4935
4936#[derive(Debug, Clone, Serialize, Deserialize)]
4937#[serde(rename = "comments")]
4938pub struct Comments {
4939 #[serde(rename = "authors")]
4940 pub authors: Box<Authors>,
4941 #[serde(rename = "commentList")]
4942 pub comment_list: Box<CommentList>,
4943 #[serde(rename = "extLst")]
4944 #[serde(default, skip_serializing_if = "Option::is_none")]
4945 pub extension_list: Option<Box<ExtensionList>>,
4946 #[cfg(feature = "extra-children")]
4948 #[serde(skip)]
4949 #[cfg(feature = "extra-children")]
4950 pub extra_children: Vec<ooxml_xml::PositionedNode>,
4951}
4952
4953#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4954#[serde(rename = "authors")]
4955pub struct Authors {
4956 #[serde(rename = "author")]
4957 #[serde(default, skip_serializing_if = "Vec::is_empty")]
4958 pub author: Vec<XmlString>,
4959 #[cfg(feature = "extra-children")]
4961 #[serde(skip)]
4962 #[cfg(feature = "extra-children")]
4963 pub extra_children: Vec<ooxml_xml::PositionedNode>,
4964}
4965
4966#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4967#[serde(rename = "commentList")]
4968pub struct CommentList {
4969 #[serde(rename = "comment")]
4970 #[serde(default, skip_serializing_if = "Vec::is_empty")]
4971 pub comment: Vec<Comment>,
4972 #[cfg(feature = "extra-children")]
4974 #[serde(skip)]
4975 #[cfg(feature = "extra-children")]
4976 pub extra_children: Vec<ooxml_xml::PositionedNode>,
4977}
4978
4979#[derive(Debug, Clone, Serialize, Deserialize)]
4980#[serde(rename = "comment")]
4981pub struct Comment {
4982 #[cfg(feature = "sml-comments")]
4983 #[serde(rename = "@ref")]
4984 pub reference: Reference,
4985 #[cfg(feature = "sml-comments")]
4986 #[serde(rename = "@authorId")]
4987 pub author_id: u32,
4988 #[cfg(feature = "sml-comments")]
4989 #[serde(rename = "@guid")]
4990 #[serde(default, skip_serializing_if = "Option::is_none")]
4991 pub guid: Option<Guid>,
4992 #[cfg(feature = "sml-comments")]
4993 #[serde(rename = "@shapeId")]
4994 #[serde(default, skip_serializing_if = "Option::is_none")]
4995 pub shape_id: Option<u32>,
4996 #[cfg(feature = "sml-comments")]
4997 #[serde(rename = "text")]
4998 pub text: Box<RichString>,
4999 #[serde(rename = "commentPr")]
5000 #[serde(default, skip_serializing_if = "Option::is_none")]
5001 pub comment_pr: Option<Box<CTCommentPr>>,
5002 #[cfg(feature = "extra-attrs")]
5004 #[serde(skip)]
5005 #[cfg(feature = "extra-attrs")]
5006 #[serde(default)]
5007 #[cfg(feature = "extra-attrs")]
5008 pub extra_attrs: std::collections::HashMap<String, String>,
5009 #[cfg(feature = "extra-children")]
5011 #[serde(skip)]
5012 #[cfg(feature = "extra-children")]
5013 pub extra_children: Vec<ooxml_xml::PositionedNode>,
5014}
5015
5016#[derive(Debug, Clone, Serialize, Deserialize)]
5017pub struct CTCommentPr {
5018 #[serde(rename = "@locked")]
5019 #[serde(
5020 default,
5021 skip_serializing_if = "Option::is_none",
5022 with = "ooxml_xml::ooxml_bool"
5023 )]
5024 pub locked: Option<bool>,
5025 #[serde(rename = "@defaultSize")]
5026 #[serde(
5027 default,
5028 skip_serializing_if = "Option::is_none",
5029 with = "ooxml_xml::ooxml_bool"
5030 )]
5031 pub default_size: Option<bool>,
5032 #[serde(rename = "@print")]
5033 #[serde(
5034 default,
5035 skip_serializing_if = "Option::is_none",
5036 with = "ooxml_xml::ooxml_bool"
5037 )]
5038 pub print: Option<bool>,
5039 #[serde(rename = "@disabled")]
5040 #[serde(
5041 default,
5042 skip_serializing_if = "Option::is_none",
5043 with = "ooxml_xml::ooxml_bool"
5044 )]
5045 pub disabled: Option<bool>,
5046 #[serde(rename = "@autoFill")]
5047 #[serde(
5048 default,
5049 skip_serializing_if = "Option::is_none",
5050 with = "ooxml_xml::ooxml_bool"
5051 )]
5052 pub auto_fill: Option<bool>,
5053 #[serde(rename = "@autoLine")]
5054 #[serde(
5055 default,
5056 skip_serializing_if = "Option::is_none",
5057 with = "ooxml_xml::ooxml_bool"
5058 )]
5059 pub auto_line: Option<bool>,
5060 #[serde(rename = "@altText")]
5061 #[serde(default, skip_serializing_if = "Option::is_none")]
5062 pub alt_text: Option<XmlString>,
5063 #[serde(rename = "@textHAlign")]
5064 #[serde(default, skip_serializing_if = "Option::is_none")]
5065 pub text_h_align: Option<STTextHAlign>,
5066 #[serde(rename = "@textVAlign")]
5067 #[serde(default, skip_serializing_if = "Option::is_none")]
5068 pub text_v_align: Option<STTextVAlign>,
5069 #[serde(rename = "@lockText")]
5070 #[serde(
5071 default,
5072 skip_serializing_if = "Option::is_none",
5073 with = "ooxml_xml::ooxml_bool"
5074 )]
5075 pub lock_text: Option<bool>,
5076 #[serde(rename = "@justLastX")]
5077 #[serde(
5078 default,
5079 skip_serializing_if = "Option::is_none",
5080 with = "ooxml_xml::ooxml_bool"
5081 )]
5082 pub just_last_x: Option<bool>,
5083 #[serde(rename = "@autoScale")]
5084 #[serde(
5085 default,
5086 skip_serializing_if = "Option::is_none",
5087 with = "ooxml_xml::ooxml_bool"
5088 )]
5089 pub auto_scale: Option<bool>,
5090 #[serde(rename = "anchor")]
5091 pub anchor: Box<ObjectAnchor>,
5092 #[cfg(feature = "extra-attrs")]
5094 #[serde(skip)]
5095 #[cfg(feature = "extra-attrs")]
5096 #[serde(default)]
5097 #[cfg(feature = "extra-attrs")]
5098 pub extra_attrs: std::collections::HashMap<String, String>,
5099 #[cfg(feature = "extra-children")]
5101 #[serde(skip)]
5102 #[cfg(feature = "extra-children")]
5103 pub extra_children: Vec<ooxml_xml::PositionedNode>,
5104}
5105
5106pub type SmlMapInfo = Box<MapInfo>;
5107
5108#[derive(Debug, Clone, Serialize, Deserialize)]
5109pub struct MapInfo {
5110 #[serde(rename = "@SelectionNamespaces")]
5111 pub selection_namespaces: String,
5112 #[serde(rename = "Schema")]
5113 #[serde(default, skip_serializing_if = "Vec::is_empty")]
5114 pub schema: Vec<XmlSchema>,
5115 #[serde(rename = "Map")]
5116 #[serde(default, skip_serializing_if = "Vec::is_empty")]
5117 pub map: Vec<XmlMap>,
5118 #[cfg(feature = "extra-attrs")]
5120 #[serde(skip)]
5121 #[cfg(feature = "extra-attrs")]
5122 #[serde(default)]
5123 #[cfg(feature = "extra-attrs")]
5124 pub extra_attrs: std::collections::HashMap<String, String>,
5125 #[cfg(feature = "extra-children")]
5127 #[serde(skip)]
5128 #[cfg(feature = "extra-children")]
5129 pub extra_children: Vec<ooxml_xml::PositionedNode>,
5130}
5131
5132#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5133pub struct XmlSchema {
5134 #[cfg(feature = "extra-children")]
5136 #[serde(skip)]
5137 #[cfg(feature = "extra-children")]
5138 pub extra_children: Vec<ooxml_xml::PositionedNode>,
5139}
5140
5141pub type SchemaAnyElement = String;
5142
5143#[derive(Debug, Clone, Serialize, Deserialize)]
5144pub struct XmlMap {
5145 #[serde(rename = "@ID")]
5146 pub i_d: u32,
5147 #[serde(rename = "@Name")]
5148 pub name: String,
5149 #[serde(rename = "@RootElement")]
5150 pub root_element: String,
5151 #[serde(rename = "@SchemaID")]
5152 pub schema_i_d: String,
5153 #[serde(rename = "@ShowImportExportValidationErrors")]
5154 #[serde(with = "ooxml_xml::ooxml_bool_required")]
5155 pub show_import_export_validation_errors: bool,
5156 #[serde(rename = "@AutoFit")]
5157 #[serde(with = "ooxml_xml::ooxml_bool_required")]
5158 pub auto_fit: bool,
5159 #[serde(rename = "@Append")]
5160 #[serde(with = "ooxml_xml::ooxml_bool_required")]
5161 pub append: bool,
5162 #[serde(rename = "@PreserveSortAFLayout")]
5163 #[serde(with = "ooxml_xml::ooxml_bool_required")]
5164 pub preserve_sort_a_f_layout: bool,
5165 #[serde(rename = "@PreserveFormat")]
5166 #[serde(with = "ooxml_xml::ooxml_bool_required")]
5167 pub preserve_format: bool,
5168 #[serde(rename = "DataBinding")]
5169 #[serde(default, skip_serializing_if = "Option::is_none")]
5170 pub data_binding: Option<Box<DataBinding>>,
5171 #[cfg(feature = "extra-attrs")]
5173 #[serde(skip)]
5174 #[cfg(feature = "extra-attrs")]
5175 #[serde(default)]
5176 #[cfg(feature = "extra-attrs")]
5177 pub extra_attrs: std::collections::HashMap<String, String>,
5178 #[cfg(feature = "extra-children")]
5180 #[serde(skip)]
5181 #[cfg(feature = "extra-children")]
5182 pub extra_children: Vec<ooxml_xml::PositionedNode>,
5183}
5184
5185#[derive(Debug, Clone, Serialize, Deserialize)]
5186pub struct DataBinding {
5187 #[serde(rename = "@DataBindingName")]
5188 #[serde(default, skip_serializing_if = "Option::is_none")]
5189 pub data_binding_name: Option<String>,
5190 #[serde(rename = "@FileBinding")]
5191 #[serde(
5192 default,
5193 skip_serializing_if = "Option::is_none",
5194 with = "ooxml_xml::ooxml_bool"
5195 )]
5196 pub file_binding: Option<bool>,
5197 #[serde(rename = "@ConnectionID")]
5198 #[serde(default, skip_serializing_if = "Option::is_none")]
5199 pub connection_i_d: Option<u32>,
5200 #[serde(rename = "@FileBindingName")]
5201 #[serde(default, skip_serializing_if = "Option::is_none")]
5202 pub file_binding_name: Option<String>,
5203 #[serde(rename = "@DataBindingLoadMode")]
5204 pub data_binding_load_mode: u32,
5205 #[cfg(feature = "extra-attrs")]
5207 #[serde(skip)]
5208 #[cfg(feature = "extra-attrs")]
5209 #[serde(default)]
5210 #[cfg(feature = "extra-attrs")]
5211 pub extra_attrs: std::collections::HashMap<String, String>,
5212}
5213
5214pub type DataBindingAnyElement = String;
5215
5216pub type SmlConnections = Box<Connections>;
5217
5218#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5219pub struct Connections {
5220 #[serde(rename = "connection")]
5221 #[serde(default, skip_serializing_if = "Vec::is_empty")]
5222 pub connection: Vec<Connection>,
5223 #[cfg(feature = "extra-children")]
5225 #[serde(skip)]
5226 #[cfg(feature = "extra-children")]
5227 pub extra_children: Vec<ooxml_xml::PositionedNode>,
5228}
5229
5230#[derive(Debug, Clone, Serialize, Deserialize)]
5231pub struct Connection {
5232 #[serde(rename = "@id")]
5233 pub id: u32,
5234 #[serde(rename = "@sourceFile")]
5235 #[serde(default, skip_serializing_if = "Option::is_none")]
5236 pub source_file: Option<XmlString>,
5237 #[serde(rename = "@odcFile")]
5238 #[serde(default, skip_serializing_if = "Option::is_none")]
5239 pub odc_file: Option<XmlString>,
5240 #[serde(rename = "@keepAlive")]
5241 #[serde(
5242 default,
5243 skip_serializing_if = "Option::is_none",
5244 with = "ooxml_xml::ooxml_bool"
5245 )]
5246 pub keep_alive: Option<bool>,
5247 #[serde(rename = "@interval")]
5248 #[serde(default, skip_serializing_if = "Option::is_none")]
5249 pub interval: Option<u32>,
5250 #[serde(rename = "@name")]
5251 #[serde(default, skip_serializing_if = "Option::is_none")]
5252 pub name: Option<XmlString>,
5253 #[serde(rename = "@description")]
5254 #[serde(default, skip_serializing_if = "Option::is_none")]
5255 pub description: Option<XmlString>,
5256 #[serde(rename = "@type")]
5257 #[serde(default, skip_serializing_if = "Option::is_none")]
5258 pub r#type: Option<u32>,
5259 #[serde(rename = "@reconnectionMethod")]
5260 #[serde(default, skip_serializing_if = "Option::is_none")]
5261 pub reconnection_method: Option<u32>,
5262 #[serde(rename = "@refreshedVersion")]
5263 pub refreshed_version: u8,
5264 #[serde(rename = "@minRefreshableVersion")]
5265 #[serde(default, skip_serializing_if = "Option::is_none")]
5266 pub min_refreshable_version: Option<u8>,
5267 #[serde(rename = "@savePassword")]
5268 #[serde(
5269 default,
5270 skip_serializing_if = "Option::is_none",
5271 with = "ooxml_xml::ooxml_bool"
5272 )]
5273 pub save_password: Option<bool>,
5274 #[serde(rename = "@new")]
5275 #[serde(
5276 default,
5277 skip_serializing_if = "Option::is_none",
5278 with = "ooxml_xml::ooxml_bool"
5279 )]
5280 pub new: Option<bool>,
5281 #[serde(rename = "@deleted")]
5282 #[serde(
5283 default,
5284 skip_serializing_if = "Option::is_none",
5285 with = "ooxml_xml::ooxml_bool"
5286 )]
5287 pub deleted: Option<bool>,
5288 #[serde(rename = "@onlyUseConnectionFile")]
5289 #[serde(
5290 default,
5291 skip_serializing_if = "Option::is_none",
5292 with = "ooxml_xml::ooxml_bool"
5293 )]
5294 pub only_use_connection_file: Option<bool>,
5295 #[serde(rename = "@background")]
5296 #[serde(
5297 default,
5298 skip_serializing_if = "Option::is_none",
5299 with = "ooxml_xml::ooxml_bool"
5300 )]
5301 pub background: Option<bool>,
5302 #[serde(rename = "@refreshOnLoad")]
5303 #[serde(
5304 default,
5305 skip_serializing_if = "Option::is_none",
5306 with = "ooxml_xml::ooxml_bool"
5307 )]
5308 pub refresh_on_load: Option<bool>,
5309 #[serde(rename = "@saveData")]
5310 #[serde(
5311 default,
5312 skip_serializing_if = "Option::is_none",
5313 with = "ooxml_xml::ooxml_bool"
5314 )]
5315 pub save_data: Option<bool>,
5316 #[serde(rename = "@credentials")]
5317 #[serde(default, skip_serializing_if = "Option::is_none")]
5318 pub credentials: Option<STCredMethod>,
5319 #[serde(rename = "@singleSignOnId")]
5320 #[serde(default, skip_serializing_if = "Option::is_none")]
5321 pub single_sign_on_id: Option<XmlString>,
5322 #[serde(rename = "dbPr")]
5323 #[serde(default, skip_serializing_if = "Option::is_none")]
5324 pub db_pr: Option<Box<DatabaseProperties>>,
5325 #[serde(rename = "olapPr")]
5326 #[serde(default, skip_serializing_if = "Option::is_none")]
5327 pub olap_pr: Option<Box<OlapProperties>>,
5328 #[serde(rename = "webPr")]
5329 #[serde(default, skip_serializing_if = "Option::is_none")]
5330 pub web_pr: Option<Box<WebQueryProperties>>,
5331 #[serde(rename = "textPr")]
5332 #[serde(default, skip_serializing_if = "Option::is_none")]
5333 pub text_pr: Option<Box<TextImportProperties>>,
5334 #[serde(rename = "parameters")]
5335 #[serde(default, skip_serializing_if = "Option::is_none")]
5336 pub parameters: Option<Box<Parameters>>,
5337 #[serde(rename = "extLst")]
5338 #[serde(default, skip_serializing_if = "Option::is_none")]
5339 pub extension_list: Option<Box<ExtensionList>>,
5340 #[cfg(feature = "extra-attrs")]
5342 #[serde(skip)]
5343 #[cfg(feature = "extra-attrs")]
5344 #[serde(default)]
5345 #[cfg(feature = "extra-attrs")]
5346 pub extra_attrs: std::collections::HashMap<String, String>,
5347 #[cfg(feature = "extra-children")]
5349 #[serde(skip)]
5350 #[cfg(feature = "extra-children")]
5351 pub extra_children: Vec<ooxml_xml::PositionedNode>,
5352}
5353
5354#[derive(Debug, Clone, Serialize, Deserialize)]
5355pub struct DatabaseProperties {
5356 #[serde(rename = "@connection")]
5357 pub connection: XmlString,
5358 #[serde(rename = "@command")]
5359 #[serde(default, skip_serializing_if = "Option::is_none")]
5360 pub command: Option<XmlString>,
5361 #[serde(rename = "@serverCommand")]
5362 #[serde(default, skip_serializing_if = "Option::is_none")]
5363 pub server_command: Option<XmlString>,
5364 #[serde(rename = "@commandType")]
5365 #[serde(default, skip_serializing_if = "Option::is_none")]
5366 pub command_type: Option<u32>,
5367 #[cfg(feature = "extra-attrs")]
5369 #[serde(skip)]
5370 #[cfg(feature = "extra-attrs")]
5371 #[serde(default)]
5372 #[cfg(feature = "extra-attrs")]
5373 pub extra_attrs: std::collections::HashMap<String, String>,
5374}
5375
5376#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5377pub struct OlapProperties {
5378 #[serde(rename = "@local")]
5379 #[serde(
5380 default,
5381 skip_serializing_if = "Option::is_none",
5382 with = "ooxml_xml::ooxml_bool"
5383 )]
5384 pub local: Option<bool>,
5385 #[serde(rename = "@localConnection")]
5386 #[serde(default, skip_serializing_if = "Option::is_none")]
5387 pub local_connection: Option<XmlString>,
5388 #[serde(rename = "@localRefresh")]
5389 #[serde(
5390 default,
5391 skip_serializing_if = "Option::is_none",
5392 with = "ooxml_xml::ooxml_bool"
5393 )]
5394 pub local_refresh: Option<bool>,
5395 #[serde(rename = "@sendLocale")]
5396 #[serde(
5397 default,
5398 skip_serializing_if = "Option::is_none",
5399 with = "ooxml_xml::ooxml_bool"
5400 )]
5401 pub send_locale: Option<bool>,
5402 #[serde(rename = "@rowDrillCount")]
5403 #[serde(default, skip_serializing_if = "Option::is_none")]
5404 pub row_drill_count: Option<u32>,
5405 #[serde(rename = "@serverFill")]
5406 #[serde(
5407 default,
5408 skip_serializing_if = "Option::is_none",
5409 with = "ooxml_xml::ooxml_bool"
5410 )]
5411 pub server_fill: Option<bool>,
5412 #[serde(rename = "@serverNumberFormat")]
5413 #[serde(
5414 default,
5415 skip_serializing_if = "Option::is_none",
5416 with = "ooxml_xml::ooxml_bool"
5417 )]
5418 pub server_number_format: Option<bool>,
5419 #[serde(rename = "@serverFont")]
5420 #[serde(
5421 default,
5422 skip_serializing_if = "Option::is_none",
5423 with = "ooxml_xml::ooxml_bool"
5424 )]
5425 pub server_font: Option<bool>,
5426 #[serde(rename = "@serverFontColor")]
5427 #[serde(
5428 default,
5429 skip_serializing_if = "Option::is_none",
5430 with = "ooxml_xml::ooxml_bool"
5431 )]
5432 pub server_font_color: Option<bool>,
5433 #[cfg(feature = "extra-attrs")]
5435 #[serde(skip)]
5436 #[cfg(feature = "extra-attrs")]
5437 #[serde(default)]
5438 #[cfg(feature = "extra-attrs")]
5439 pub extra_attrs: std::collections::HashMap<String, String>,
5440}
5441
5442#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5443pub struct WebQueryProperties {
5444 #[serde(rename = "@xml")]
5445 #[serde(
5446 default,
5447 skip_serializing_if = "Option::is_none",
5448 with = "ooxml_xml::ooxml_bool"
5449 )]
5450 pub xml: Option<bool>,
5451 #[serde(rename = "@sourceData")]
5452 #[serde(
5453 default,
5454 skip_serializing_if = "Option::is_none",
5455 with = "ooxml_xml::ooxml_bool"
5456 )]
5457 pub source_data: Option<bool>,
5458 #[serde(rename = "@parsePre")]
5459 #[serde(
5460 default,
5461 skip_serializing_if = "Option::is_none",
5462 with = "ooxml_xml::ooxml_bool"
5463 )]
5464 pub parse_pre: Option<bool>,
5465 #[serde(rename = "@consecutive")]
5466 #[serde(
5467 default,
5468 skip_serializing_if = "Option::is_none",
5469 with = "ooxml_xml::ooxml_bool"
5470 )]
5471 pub consecutive: Option<bool>,
5472 #[serde(rename = "@firstRow")]
5473 #[serde(
5474 default,
5475 skip_serializing_if = "Option::is_none",
5476 with = "ooxml_xml::ooxml_bool"
5477 )]
5478 pub first_row: Option<bool>,
5479 #[serde(rename = "@xl97")]
5480 #[serde(
5481 default,
5482 skip_serializing_if = "Option::is_none",
5483 with = "ooxml_xml::ooxml_bool"
5484 )]
5485 pub xl97: Option<bool>,
5486 #[serde(rename = "@textDates")]
5487 #[serde(
5488 default,
5489 skip_serializing_if = "Option::is_none",
5490 with = "ooxml_xml::ooxml_bool"
5491 )]
5492 pub text_dates: Option<bool>,
5493 #[serde(rename = "@xl2000")]
5494 #[serde(
5495 default,
5496 skip_serializing_if = "Option::is_none",
5497 with = "ooxml_xml::ooxml_bool"
5498 )]
5499 pub xl2000: Option<bool>,
5500 #[serde(rename = "@url")]
5501 #[serde(default, skip_serializing_if = "Option::is_none")]
5502 pub url: Option<XmlString>,
5503 #[serde(rename = "@post")]
5504 #[serde(default, skip_serializing_if = "Option::is_none")]
5505 pub post: Option<XmlString>,
5506 #[serde(rename = "@htmlTables")]
5507 #[serde(
5508 default,
5509 skip_serializing_if = "Option::is_none",
5510 with = "ooxml_xml::ooxml_bool"
5511 )]
5512 pub html_tables: Option<bool>,
5513 #[serde(rename = "@htmlFormat")]
5514 #[serde(default, skip_serializing_if = "Option::is_none")]
5515 pub html_format: Option<STHtmlFmt>,
5516 #[serde(rename = "@editPage")]
5517 #[serde(default, skip_serializing_if = "Option::is_none")]
5518 pub edit_page: Option<XmlString>,
5519 #[serde(rename = "tables")]
5520 #[serde(default, skip_serializing_if = "Option::is_none")]
5521 pub tables: Option<Box<DataTables>>,
5522 #[cfg(feature = "extra-attrs")]
5524 #[serde(skip)]
5525 #[cfg(feature = "extra-attrs")]
5526 #[serde(default)]
5527 #[cfg(feature = "extra-attrs")]
5528 pub extra_attrs: std::collections::HashMap<String, String>,
5529 #[cfg(feature = "extra-children")]
5531 #[serde(skip)]
5532 #[cfg(feature = "extra-children")]
5533 pub extra_children: Vec<ooxml_xml::PositionedNode>,
5534}
5535
5536#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5537pub struct Parameters {
5538 #[serde(rename = "@count")]
5539 #[serde(default, skip_serializing_if = "Option::is_none")]
5540 pub count: Option<u32>,
5541 #[serde(rename = "parameter")]
5542 #[serde(default, skip_serializing_if = "Vec::is_empty")]
5543 pub parameter: Vec<Parameter>,
5544 #[cfg(feature = "extra-attrs")]
5546 #[serde(skip)]
5547 #[cfg(feature = "extra-attrs")]
5548 #[serde(default)]
5549 #[cfg(feature = "extra-attrs")]
5550 pub extra_attrs: std::collections::HashMap<String, String>,
5551 #[cfg(feature = "extra-children")]
5553 #[serde(skip)]
5554 #[cfg(feature = "extra-children")]
5555 pub extra_children: Vec<ooxml_xml::PositionedNode>,
5556}
5557
5558#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5559pub struct Parameter {
5560 #[serde(rename = "@name")]
5561 #[serde(default, skip_serializing_if = "Option::is_none")]
5562 pub name: Option<XmlString>,
5563 #[serde(rename = "@sqlType")]
5564 #[serde(default, skip_serializing_if = "Option::is_none")]
5565 pub sql_type: Option<i32>,
5566 #[serde(rename = "@parameterType")]
5567 #[serde(default, skip_serializing_if = "Option::is_none")]
5568 pub parameter_type: Option<STParameterType>,
5569 #[serde(rename = "@refreshOnChange")]
5570 #[serde(
5571 default,
5572 skip_serializing_if = "Option::is_none",
5573 with = "ooxml_xml::ooxml_bool"
5574 )]
5575 pub refresh_on_change: Option<bool>,
5576 #[serde(rename = "@prompt")]
5577 #[serde(default, skip_serializing_if = "Option::is_none")]
5578 pub prompt: Option<XmlString>,
5579 #[serde(rename = "@boolean")]
5580 #[serde(
5581 default,
5582 skip_serializing_if = "Option::is_none",
5583 with = "ooxml_xml::ooxml_bool"
5584 )]
5585 pub boolean: Option<bool>,
5586 #[serde(rename = "@double")]
5587 #[serde(default, skip_serializing_if = "Option::is_none")]
5588 pub double: Option<f64>,
5589 #[serde(rename = "@integer")]
5590 #[serde(default, skip_serializing_if = "Option::is_none")]
5591 pub integer: Option<i32>,
5592 #[serde(rename = "@string")]
5593 #[serde(default, skip_serializing_if = "Option::is_none")]
5594 pub string: Option<XmlString>,
5595 #[serde(rename = "@cell")]
5596 #[serde(default, skip_serializing_if = "Option::is_none")]
5597 pub cell: Option<XmlString>,
5598 #[cfg(feature = "extra-attrs")]
5600 #[serde(skip)]
5601 #[cfg(feature = "extra-attrs")]
5602 #[serde(default)]
5603 #[cfg(feature = "extra-attrs")]
5604 pub extra_attrs: std::collections::HashMap<String, String>,
5605}
5606
5607#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5608pub struct DataTables {
5609 #[serde(rename = "@count")]
5610 #[serde(default, skip_serializing_if = "Option::is_none")]
5611 pub count: Option<u32>,
5612 #[serde(rename = "m")]
5613 #[serde(default, skip_serializing_if = "Vec::is_empty")]
5614 pub m: Vec<TableMissing>,
5615 #[serde(rename = "s")]
5616 #[serde(default, skip_serializing_if = "Vec::is_empty")]
5617 pub style_index: Vec<CTXStringElement>,
5618 #[serde(rename = "x")]
5619 #[serde(default, skip_serializing_if = "Vec::is_empty")]
5620 pub x: Vec<CTIndex>,
5621 #[cfg(feature = "extra-attrs")]
5623 #[serde(skip)]
5624 #[cfg(feature = "extra-attrs")]
5625 #[serde(default)]
5626 #[cfg(feature = "extra-attrs")]
5627 pub extra_attrs: std::collections::HashMap<String, String>,
5628 #[cfg(feature = "extra-children")]
5630 #[serde(skip)]
5631 #[cfg(feature = "extra-children")]
5632 pub extra_children: Vec<ooxml_xml::PositionedNode>,
5633}
5634
5635#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5636pub struct TableMissing;
5637
5638#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5639pub struct TextImportProperties {
5640 #[serde(rename = "@prompt")]
5641 #[serde(
5642 default,
5643 skip_serializing_if = "Option::is_none",
5644 with = "ooxml_xml::ooxml_bool"
5645 )]
5646 pub prompt: Option<bool>,
5647 #[serde(rename = "@fileType")]
5648 #[serde(default, skip_serializing_if = "Option::is_none")]
5649 pub file_type: Option<STFileType>,
5650 #[serde(rename = "@codePage")]
5651 #[serde(default, skip_serializing_if = "Option::is_none")]
5652 pub code_page: Option<u32>,
5653 #[serde(rename = "@characterSet")]
5654 #[serde(default, skip_serializing_if = "Option::is_none")]
5655 pub character_set: Option<String>,
5656 #[serde(rename = "@firstRow")]
5657 #[serde(default, skip_serializing_if = "Option::is_none")]
5658 pub first_row: Option<u32>,
5659 #[serde(rename = "@sourceFile")]
5660 #[serde(default, skip_serializing_if = "Option::is_none")]
5661 pub source_file: Option<XmlString>,
5662 #[serde(rename = "@delimited")]
5663 #[serde(
5664 default,
5665 skip_serializing_if = "Option::is_none",
5666 with = "ooxml_xml::ooxml_bool"
5667 )]
5668 pub delimited: Option<bool>,
5669 #[serde(rename = "@decimal")]
5670 #[serde(default, skip_serializing_if = "Option::is_none")]
5671 pub decimal: Option<XmlString>,
5672 #[serde(rename = "@thousands")]
5673 #[serde(default, skip_serializing_if = "Option::is_none")]
5674 pub thousands: Option<XmlString>,
5675 #[serde(rename = "@tab")]
5676 #[serde(
5677 default,
5678 skip_serializing_if = "Option::is_none",
5679 with = "ooxml_xml::ooxml_bool"
5680 )]
5681 pub tab: Option<bool>,
5682 #[serde(rename = "@space")]
5683 #[serde(
5684 default,
5685 skip_serializing_if = "Option::is_none",
5686 with = "ooxml_xml::ooxml_bool"
5687 )]
5688 pub space: Option<bool>,
5689 #[serde(rename = "@comma")]
5690 #[serde(
5691 default,
5692 skip_serializing_if = "Option::is_none",
5693 with = "ooxml_xml::ooxml_bool"
5694 )]
5695 pub comma: Option<bool>,
5696 #[serde(rename = "@semicolon")]
5697 #[serde(
5698 default,
5699 skip_serializing_if = "Option::is_none",
5700 with = "ooxml_xml::ooxml_bool"
5701 )]
5702 pub semicolon: Option<bool>,
5703 #[serde(rename = "@consecutive")]
5704 #[serde(
5705 default,
5706 skip_serializing_if = "Option::is_none",
5707 with = "ooxml_xml::ooxml_bool"
5708 )]
5709 pub consecutive: Option<bool>,
5710 #[serde(rename = "@qualifier")]
5711 #[serde(default, skip_serializing_if = "Option::is_none")]
5712 pub qualifier: Option<STQualifier>,
5713 #[serde(rename = "@delimiter")]
5714 #[serde(default, skip_serializing_if = "Option::is_none")]
5715 pub delimiter: Option<XmlString>,
5716 #[serde(rename = "textFields")]
5717 #[serde(default, skip_serializing_if = "Option::is_none")]
5718 pub text_fields: Option<Box<TextFields>>,
5719 #[cfg(feature = "extra-attrs")]
5721 #[serde(skip)]
5722 #[cfg(feature = "extra-attrs")]
5723 #[serde(default)]
5724 #[cfg(feature = "extra-attrs")]
5725 pub extra_attrs: std::collections::HashMap<String, String>,
5726 #[cfg(feature = "extra-children")]
5728 #[serde(skip)]
5729 #[cfg(feature = "extra-children")]
5730 pub extra_children: Vec<ooxml_xml::PositionedNode>,
5731}
5732
5733#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5734pub struct TextFields {
5735 #[serde(rename = "@count")]
5736 #[serde(default, skip_serializing_if = "Option::is_none")]
5737 pub count: Option<u32>,
5738 #[serde(rename = "textField")]
5739 #[serde(default, skip_serializing_if = "Vec::is_empty")]
5740 pub text_field: Vec<TextField>,
5741 #[cfg(feature = "extra-attrs")]
5743 #[serde(skip)]
5744 #[cfg(feature = "extra-attrs")]
5745 #[serde(default)]
5746 #[cfg(feature = "extra-attrs")]
5747 pub extra_attrs: std::collections::HashMap<String, String>,
5748 #[cfg(feature = "extra-children")]
5750 #[serde(skip)]
5751 #[cfg(feature = "extra-children")]
5752 pub extra_children: Vec<ooxml_xml::PositionedNode>,
5753}
5754
5755#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5756pub struct TextField {
5757 #[serde(rename = "@type")]
5758 #[serde(default, skip_serializing_if = "Option::is_none")]
5759 pub r#type: Option<STExternalConnectionType>,
5760 #[serde(rename = "@position")]
5761 #[serde(default, skip_serializing_if = "Option::is_none")]
5762 pub position: Option<u32>,
5763 #[cfg(feature = "extra-attrs")]
5765 #[serde(skip)]
5766 #[cfg(feature = "extra-attrs")]
5767 #[serde(default)]
5768 #[cfg(feature = "extra-attrs")]
5769 pub extra_attrs: std::collections::HashMap<String, String>,
5770}
5771
5772pub type SmlPivotCacheDefinition = Box<PivotCacheDefinition>;
5773
5774pub type SmlPivotCacheRecords = Box<PivotCacheRecords>;
5775
5776pub type SmlPivotTableDefinition = Box<CTPivotTableDefinition>;
5777
5778#[derive(Debug, Clone, Serialize, Deserialize)]
5779pub struct PivotCacheDefinition {
5780 #[serde(rename = "@r:id")]
5781 #[serde(default, skip_serializing_if = "Option::is_none")]
5782 pub id: Option<STRelationshipId>,
5783 #[serde(rename = "@invalid")]
5784 #[serde(
5785 default,
5786 skip_serializing_if = "Option::is_none",
5787 with = "ooxml_xml::ooxml_bool"
5788 )]
5789 pub invalid: Option<bool>,
5790 #[serde(rename = "@saveData")]
5791 #[serde(
5792 default,
5793 skip_serializing_if = "Option::is_none",
5794 with = "ooxml_xml::ooxml_bool"
5795 )]
5796 pub save_data: Option<bool>,
5797 #[serde(rename = "@refreshOnLoad")]
5798 #[serde(
5799 default,
5800 skip_serializing_if = "Option::is_none",
5801 with = "ooxml_xml::ooxml_bool"
5802 )]
5803 pub refresh_on_load: Option<bool>,
5804 #[serde(rename = "@optimizeMemory")]
5805 #[serde(
5806 default,
5807 skip_serializing_if = "Option::is_none",
5808 with = "ooxml_xml::ooxml_bool"
5809 )]
5810 pub optimize_memory: Option<bool>,
5811 #[serde(rename = "@enableRefresh")]
5812 #[serde(
5813 default,
5814 skip_serializing_if = "Option::is_none",
5815 with = "ooxml_xml::ooxml_bool"
5816 )]
5817 pub enable_refresh: Option<bool>,
5818 #[serde(rename = "@refreshedBy")]
5819 #[serde(default, skip_serializing_if = "Option::is_none")]
5820 pub refreshed_by: Option<XmlString>,
5821 #[serde(rename = "@refreshedDate")]
5822 #[serde(default, skip_serializing_if = "Option::is_none")]
5823 pub refreshed_date: Option<f64>,
5824 #[serde(rename = "@refreshedDateIso")]
5825 #[serde(default, skip_serializing_if = "Option::is_none")]
5826 pub refreshed_date_iso: Option<String>,
5827 #[serde(rename = "@backgroundQuery")]
5828 #[serde(
5829 default,
5830 skip_serializing_if = "Option::is_none",
5831 with = "ooxml_xml::ooxml_bool"
5832 )]
5833 pub background_query: Option<bool>,
5834 #[serde(rename = "@missingItemsLimit")]
5835 #[serde(default, skip_serializing_if = "Option::is_none")]
5836 pub missing_items_limit: Option<u32>,
5837 #[serde(rename = "@createdVersion")]
5838 #[serde(default, skip_serializing_if = "Option::is_none")]
5839 pub created_version: Option<u8>,
5840 #[serde(rename = "@refreshedVersion")]
5841 #[serde(default, skip_serializing_if = "Option::is_none")]
5842 pub refreshed_version: Option<u8>,
5843 #[serde(rename = "@minRefreshableVersion")]
5844 #[serde(default, skip_serializing_if = "Option::is_none")]
5845 pub min_refreshable_version: Option<u8>,
5846 #[serde(rename = "@recordCount")]
5847 #[serde(default, skip_serializing_if = "Option::is_none")]
5848 pub record_count: Option<u32>,
5849 #[serde(rename = "@upgradeOnRefresh")]
5850 #[serde(
5851 default,
5852 skip_serializing_if = "Option::is_none",
5853 with = "ooxml_xml::ooxml_bool"
5854 )]
5855 pub upgrade_on_refresh: Option<bool>,
5856 #[serde(rename = "@tupleCache")]
5857 #[serde(
5858 default,
5859 skip_serializing_if = "Option::is_none",
5860 with = "ooxml_xml::ooxml_bool"
5861 )]
5862 pub tuple_cache: Option<bool>,
5863 #[serde(rename = "@supportSubquery")]
5864 #[serde(
5865 default,
5866 skip_serializing_if = "Option::is_none",
5867 with = "ooxml_xml::ooxml_bool"
5868 )]
5869 pub support_subquery: Option<bool>,
5870 #[serde(rename = "@supportAdvancedDrill")]
5871 #[serde(
5872 default,
5873 skip_serializing_if = "Option::is_none",
5874 with = "ooxml_xml::ooxml_bool"
5875 )]
5876 pub support_advanced_drill: Option<bool>,
5877 #[serde(rename = "cacheSource")]
5878 pub cache_source: Box<CacheSource>,
5879 #[serde(rename = "cacheFields")]
5880 pub cache_fields: Box<CacheFields>,
5881 #[serde(rename = "cacheHierarchies")]
5882 #[serde(default, skip_serializing_if = "Option::is_none")]
5883 pub cache_hierarchies: Option<Box<CTCacheHierarchies>>,
5884 #[serde(rename = "kpis")]
5885 #[serde(default, skip_serializing_if = "Option::is_none")]
5886 pub kpis: Option<Box<CTPCDKPIs>>,
5887 #[serde(rename = "calculatedItems")]
5888 #[serde(default, skip_serializing_if = "Option::is_none")]
5889 pub calculated_items: Option<Box<CTCalculatedItems>>,
5890 #[serde(rename = "calculatedMembers")]
5891 #[serde(default, skip_serializing_if = "Option::is_none")]
5892 pub calculated_members: Option<Box<CTCalculatedMembers>>,
5893 #[serde(rename = "dimensions")]
5894 #[serde(default, skip_serializing_if = "Option::is_none")]
5895 pub dimensions: Option<Box<CTDimensions>>,
5896 #[serde(rename = "measureGroups")]
5897 #[serde(default, skip_serializing_if = "Option::is_none")]
5898 pub measure_groups: Option<Box<CTMeasureGroups>>,
5899 #[serde(rename = "maps")]
5900 #[serde(default, skip_serializing_if = "Option::is_none")]
5901 pub maps: Option<Box<CTMeasureDimensionMaps>>,
5902 #[serde(rename = "extLst")]
5903 #[serde(default, skip_serializing_if = "Option::is_none")]
5904 pub extension_list: Option<Box<ExtensionList>>,
5905 #[cfg(feature = "extra-attrs")]
5907 #[serde(skip)]
5908 #[cfg(feature = "extra-attrs")]
5909 #[serde(default)]
5910 #[cfg(feature = "extra-attrs")]
5911 pub extra_attrs: std::collections::HashMap<String, String>,
5912 #[cfg(feature = "extra-children")]
5914 #[serde(skip)]
5915 #[cfg(feature = "extra-children")]
5916 pub extra_children: Vec<ooxml_xml::PositionedNode>,
5917}
5918
5919#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5920pub struct CacheFields {
5921 #[serde(rename = "@count")]
5922 #[serde(default, skip_serializing_if = "Option::is_none")]
5923 pub count: Option<u32>,
5924 #[serde(rename = "cacheField")]
5925 #[serde(default, skip_serializing_if = "Vec::is_empty")]
5926 pub cache_field: Vec<CacheField>,
5927 #[cfg(feature = "extra-attrs")]
5929 #[serde(skip)]
5930 #[cfg(feature = "extra-attrs")]
5931 #[serde(default)]
5932 #[cfg(feature = "extra-attrs")]
5933 pub extra_attrs: std::collections::HashMap<String, String>,
5934 #[cfg(feature = "extra-children")]
5936 #[serde(skip)]
5937 #[cfg(feature = "extra-children")]
5938 pub extra_children: Vec<ooxml_xml::PositionedNode>,
5939}
5940
5941#[derive(Debug, Clone, Serialize, Deserialize)]
5942pub struct CacheField {
5943 #[serde(rename = "@name")]
5944 pub name: XmlString,
5945 #[serde(rename = "@caption")]
5946 #[serde(default, skip_serializing_if = "Option::is_none")]
5947 pub caption: Option<XmlString>,
5948 #[serde(rename = "@propertyName")]
5949 #[serde(default, skip_serializing_if = "Option::is_none")]
5950 pub property_name: Option<XmlString>,
5951 #[serde(rename = "@serverField")]
5952 #[serde(
5953 default,
5954 skip_serializing_if = "Option::is_none",
5955 with = "ooxml_xml::ooxml_bool"
5956 )]
5957 pub server_field: Option<bool>,
5958 #[serde(rename = "@uniqueList")]
5959 #[serde(
5960 default,
5961 skip_serializing_if = "Option::is_none",
5962 with = "ooxml_xml::ooxml_bool"
5963 )]
5964 pub unique_list: Option<bool>,
5965 #[serde(rename = "@numFmtId")]
5966 #[serde(default, skip_serializing_if = "Option::is_none")]
5967 pub number_format_id: Option<STNumFmtId>,
5968 #[serde(rename = "@formula")]
5969 #[serde(default, skip_serializing_if = "Option::is_none")]
5970 pub formula: Option<XmlString>,
5971 #[serde(rename = "@sqlType")]
5972 #[serde(default, skip_serializing_if = "Option::is_none")]
5973 pub sql_type: Option<i32>,
5974 #[serde(rename = "@hierarchy")]
5975 #[serde(default, skip_serializing_if = "Option::is_none")]
5976 pub hierarchy: Option<i32>,
5977 #[serde(rename = "@level")]
5978 #[serde(default, skip_serializing_if = "Option::is_none")]
5979 pub level: Option<u32>,
5980 #[serde(rename = "@databaseField")]
5981 #[serde(
5982 default,
5983 skip_serializing_if = "Option::is_none",
5984 with = "ooxml_xml::ooxml_bool"
5985 )]
5986 pub database_field: Option<bool>,
5987 #[serde(rename = "@mappingCount")]
5988 #[serde(default, skip_serializing_if = "Option::is_none")]
5989 pub mapping_count: Option<u32>,
5990 #[serde(rename = "@memberPropertyField")]
5991 #[serde(
5992 default,
5993 skip_serializing_if = "Option::is_none",
5994 with = "ooxml_xml::ooxml_bool"
5995 )]
5996 pub member_property_field: Option<bool>,
5997 #[serde(rename = "sharedItems")]
5998 #[serde(default, skip_serializing_if = "Option::is_none")]
5999 pub shared_items: Option<Box<SharedItems>>,
6000 #[serde(rename = "fieldGroup")]
6001 #[serde(default, skip_serializing_if = "Option::is_none")]
6002 pub field_group: Option<Box<FieldGroup>>,
6003 #[serde(rename = "mpMap")]
6004 #[serde(default, skip_serializing_if = "Vec::is_empty")]
6005 pub mp_map: Vec<CTX>,
6006 #[serde(rename = "extLst")]
6007 #[serde(default, skip_serializing_if = "Option::is_none")]
6008 pub extension_list: Option<Box<ExtensionList>>,
6009 #[cfg(feature = "extra-attrs")]
6011 #[serde(skip)]
6012 #[cfg(feature = "extra-attrs")]
6013 #[serde(default)]
6014 #[cfg(feature = "extra-attrs")]
6015 pub extra_attrs: std::collections::HashMap<String, String>,
6016 #[cfg(feature = "extra-children")]
6018 #[serde(skip)]
6019 #[cfg(feature = "extra-children")]
6020 pub extra_children: Vec<ooxml_xml::PositionedNode>,
6021}
6022
6023#[derive(Debug, Clone, Serialize, Deserialize)]
6024pub struct CacheSource {
6025 #[serde(rename = "@type")]
6026 pub r#type: STSourceType,
6027 #[serde(rename = "@connectionId")]
6028 #[serde(default, skip_serializing_if = "Option::is_none")]
6029 pub connection_id: Option<u32>,
6030 #[serde(rename = "worksheetSource")]
6031 #[serde(default, skip_serializing_if = "Option::is_none")]
6032 pub worksheet_source: Option<Box<WorksheetSource>>,
6033 #[serde(rename = "consolidation")]
6034 #[serde(default, skip_serializing_if = "Option::is_none")]
6035 pub consolidation: Option<Box<Consolidation>>,
6036 #[serde(rename = "extLst")]
6037 #[serde(default, skip_serializing_if = "Option::is_none")]
6038 pub extension_list: Option<Box<ExtensionList>>,
6039 #[cfg(feature = "extra-attrs")]
6041 #[serde(skip)]
6042 #[cfg(feature = "extra-attrs")]
6043 #[serde(default)]
6044 #[cfg(feature = "extra-attrs")]
6045 pub extra_attrs: std::collections::HashMap<String, String>,
6046 #[cfg(feature = "extra-children")]
6048 #[serde(skip)]
6049 #[cfg(feature = "extra-children")]
6050 pub extra_children: Vec<ooxml_xml::PositionedNode>,
6051}
6052
6053#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6054pub struct WorksheetSource {
6055 #[serde(rename = "@ref")]
6056 #[serde(default, skip_serializing_if = "Option::is_none")]
6057 pub reference: Option<Reference>,
6058 #[serde(rename = "@name")]
6059 #[serde(default, skip_serializing_if = "Option::is_none")]
6060 pub name: Option<XmlString>,
6061 #[serde(rename = "@sheet")]
6062 #[serde(default, skip_serializing_if = "Option::is_none")]
6063 pub sheet: Option<XmlString>,
6064 #[serde(rename = "@r:id")]
6065 #[serde(default, skip_serializing_if = "Option::is_none")]
6066 pub id: Option<STRelationshipId>,
6067 #[cfg(feature = "extra-attrs")]
6069 #[serde(skip)]
6070 #[cfg(feature = "extra-attrs")]
6071 #[serde(default)]
6072 #[cfg(feature = "extra-attrs")]
6073 pub extra_attrs: std::collections::HashMap<String, String>,
6074}
6075
6076#[derive(Debug, Clone, Serialize, Deserialize)]
6077pub struct Consolidation {
6078 #[serde(rename = "@autoPage")]
6079 #[serde(
6080 default,
6081 skip_serializing_if = "Option::is_none",
6082 with = "ooxml_xml::ooxml_bool"
6083 )]
6084 pub auto_page: Option<bool>,
6085 #[serde(rename = "pages")]
6086 #[serde(default, skip_serializing_if = "Option::is_none")]
6087 pub pages: Option<Box<CTPages>>,
6088 #[serde(rename = "rangeSets")]
6089 pub range_sets: Box<CTRangeSets>,
6090 #[cfg(feature = "extra-attrs")]
6092 #[serde(skip)]
6093 #[cfg(feature = "extra-attrs")]
6094 #[serde(default)]
6095 #[cfg(feature = "extra-attrs")]
6096 pub extra_attrs: std::collections::HashMap<String, String>,
6097 #[cfg(feature = "extra-children")]
6099 #[serde(skip)]
6100 #[cfg(feature = "extra-children")]
6101 pub extra_children: Vec<ooxml_xml::PositionedNode>,
6102}
6103
6104#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6105pub struct CTPages {
6106 #[serde(rename = "@count")]
6107 #[serde(default, skip_serializing_if = "Option::is_none")]
6108 pub count: Option<u32>,
6109 #[serde(rename = "page")]
6110 #[serde(default, skip_serializing_if = "Vec::is_empty")]
6111 pub page: Vec<CTPCDSCPage>,
6112 #[cfg(feature = "extra-attrs")]
6114 #[serde(skip)]
6115 #[cfg(feature = "extra-attrs")]
6116 #[serde(default)]
6117 #[cfg(feature = "extra-attrs")]
6118 pub extra_attrs: std::collections::HashMap<String, String>,
6119 #[cfg(feature = "extra-children")]
6121 #[serde(skip)]
6122 #[cfg(feature = "extra-children")]
6123 pub extra_children: Vec<ooxml_xml::PositionedNode>,
6124}
6125
6126#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6127pub struct CTPCDSCPage {
6128 #[serde(rename = "@count")]
6129 #[serde(default, skip_serializing_if = "Option::is_none")]
6130 pub count: Option<u32>,
6131 #[serde(rename = "pageItem")]
6132 #[serde(default, skip_serializing_if = "Vec::is_empty")]
6133 pub page_item: Vec<CTPageItem>,
6134 #[cfg(feature = "extra-attrs")]
6136 #[serde(skip)]
6137 #[cfg(feature = "extra-attrs")]
6138 #[serde(default)]
6139 #[cfg(feature = "extra-attrs")]
6140 pub extra_attrs: std::collections::HashMap<String, String>,
6141 #[cfg(feature = "extra-children")]
6143 #[serde(skip)]
6144 #[cfg(feature = "extra-children")]
6145 pub extra_children: Vec<ooxml_xml::PositionedNode>,
6146}
6147
6148#[derive(Debug, Clone, Serialize, Deserialize)]
6149pub struct CTPageItem {
6150 #[serde(rename = "@name")]
6151 pub name: XmlString,
6152 #[cfg(feature = "extra-attrs")]
6154 #[serde(skip)]
6155 #[cfg(feature = "extra-attrs")]
6156 #[serde(default)]
6157 #[cfg(feature = "extra-attrs")]
6158 pub extra_attrs: std::collections::HashMap<String, String>,
6159}
6160
6161#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6162pub struct CTRangeSets {
6163 #[serde(rename = "@count")]
6164 #[serde(default, skip_serializing_if = "Option::is_none")]
6165 pub count: Option<u32>,
6166 #[serde(rename = "rangeSet")]
6167 #[serde(default, skip_serializing_if = "Vec::is_empty")]
6168 pub range_set: Vec<CTRangeSet>,
6169 #[cfg(feature = "extra-attrs")]
6171 #[serde(skip)]
6172 #[cfg(feature = "extra-attrs")]
6173 #[serde(default)]
6174 #[cfg(feature = "extra-attrs")]
6175 pub extra_attrs: std::collections::HashMap<String, String>,
6176 #[cfg(feature = "extra-children")]
6178 #[serde(skip)]
6179 #[cfg(feature = "extra-children")]
6180 pub extra_children: Vec<ooxml_xml::PositionedNode>,
6181}
6182
6183#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6184pub struct CTRangeSet {
6185 #[serde(rename = "@i1")]
6186 #[serde(default, skip_serializing_if = "Option::is_none")]
6187 pub i1: Option<u32>,
6188 #[serde(rename = "@i2")]
6189 #[serde(default, skip_serializing_if = "Option::is_none")]
6190 pub i2: Option<u32>,
6191 #[serde(rename = "@i3")]
6192 #[serde(default, skip_serializing_if = "Option::is_none")]
6193 pub i3: Option<u32>,
6194 #[serde(rename = "@i4")]
6195 #[serde(default, skip_serializing_if = "Option::is_none")]
6196 pub i4: Option<u32>,
6197 #[serde(rename = "@ref")]
6198 #[serde(default, skip_serializing_if = "Option::is_none")]
6199 pub reference: Option<Reference>,
6200 #[serde(rename = "@name")]
6201 #[serde(default, skip_serializing_if = "Option::is_none")]
6202 pub name: Option<XmlString>,
6203 #[serde(rename = "@sheet")]
6204 #[serde(default, skip_serializing_if = "Option::is_none")]
6205 pub sheet: Option<XmlString>,
6206 #[serde(rename = "@r:id")]
6207 #[serde(default, skip_serializing_if = "Option::is_none")]
6208 pub id: Option<STRelationshipId>,
6209 #[cfg(feature = "extra-attrs")]
6211 #[serde(skip)]
6212 #[cfg(feature = "extra-attrs")]
6213 #[serde(default)]
6214 #[cfg(feature = "extra-attrs")]
6215 pub extra_attrs: std::collections::HashMap<String, String>,
6216}
6217
6218#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6219pub struct SharedItems {
6220 #[serde(rename = "@containsSemiMixedTypes")]
6221 #[serde(
6222 default,
6223 skip_serializing_if = "Option::is_none",
6224 with = "ooxml_xml::ooxml_bool"
6225 )]
6226 pub contains_semi_mixed_types: Option<bool>,
6227 #[serde(rename = "@containsNonDate")]
6228 #[serde(
6229 default,
6230 skip_serializing_if = "Option::is_none",
6231 with = "ooxml_xml::ooxml_bool"
6232 )]
6233 pub contains_non_date: Option<bool>,
6234 #[serde(rename = "@containsDate")]
6235 #[serde(
6236 default,
6237 skip_serializing_if = "Option::is_none",
6238 with = "ooxml_xml::ooxml_bool"
6239 )]
6240 pub contains_date: Option<bool>,
6241 #[serde(rename = "@containsString")]
6242 #[serde(
6243 default,
6244 skip_serializing_if = "Option::is_none",
6245 with = "ooxml_xml::ooxml_bool"
6246 )]
6247 pub contains_string: Option<bool>,
6248 #[serde(rename = "@containsBlank")]
6249 #[serde(
6250 default,
6251 skip_serializing_if = "Option::is_none",
6252 with = "ooxml_xml::ooxml_bool"
6253 )]
6254 pub contains_blank: Option<bool>,
6255 #[serde(rename = "@containsMixedTypes")]
6256 #[serde(
6257 default,
6258 skip_serializing_if = "Option::is_none",
6259 with = "ooxml_xml::ooxml_bool"
6260 )]
6261 pub contains_mixed_types: Option<bool>,
6262 #[serde(rename = "@containsNumber")]
6263 #[serde(
6264 default,
6265 skip_serializing_if = "Option::is_none",
6266 with = "ooxml_xml::ooxml_bool"
6267 )]
6268 pub contains_number: Option<bool>,
6269 #[serde(rename = "@containsInteger")]
6270 #[serde(
6271 default,
6272 skip_serializing_if = "Option::is_none",
6273 with = "ooxml_xml::ooxml_bool"
6274 )]
6275 pub contains_integer: Option<bool>,
6276 #[serde(rename = "@minValue")]
6277 #[serde(default, skip_serializing_if = "Option::is_none")]
6278 pub min_value: Option<f64>,
6279 #[serde(rename = "@maxValue")]
6280 #[serde(default, skip_serializing_if = "Option::is_none")]
6281 pub max_value: Option<f64>,
6282 #[serde(rename = "@minDate")]
6283 #[serde(default, skip_serializing_if = "Option::is_none")]
6284 pub min_date: Option<String>,
6285 #[serde(rename = "@maxDate")]
6286 #[serde(default, skip_serializing_if = "Option::is_none")]
6287 pub max_date: Option<String>,
6288 #[serde(rename = "@count")]
6289 #[serde(default, skip_serializing_if = "Option::is_none")]
6290 pub count: Option<u32>,
6291 #[serde(rename = "@longText")]
6292 #[serde(
6293 default,
6294 skip_serializing_if = "Option::is_none",
6295 with = "ooxml_xml::ooxml_bool"
6296 )]
6297 pub long_text: Option<bool>,
6298 #[serde(rename = "m")]
6299 #[serde(default, skip_serializing_if = "Vec::is_empty")]
6300 pub m: Vec<CTMissing>,
6301 #[serde(rename = "n")]
6302 #[serde(default, skip_serializing_if = "Vec::is_empty")]
6303 pub n: Vec<CTNumber>,
6304 #[serde(rename = "b")]
6305 #[serde(default, skip_serializing_if = "Vec::is_empty")]
6306 pub b: Vec<CTBoolean>,
6307 #[serde(rename = "e")]
6308 #[serde(default, skip_serializing_if = "Vec::is_empty")]
6309 pub e: Vec<CTError>,
6310 #[serde(rename = "s")]
6311 #[serde(default, skip_serializing_if = "Vec::is_empty")]
6312 pub style_index: Vec<CTString>,
6313 #[serde(rename = "d")]
6314 #[serde(default, skip_serializing_if = "Vec::is_empty")]
6315 pub d: Vec<CTDateTime>,
6316 #[cfg(feature = "extra-attrs")]
6318 #[serde(skip)]
6319 #[cfg(feature = "extra-attrs")]
6320 #[serde(default)]
6321 #[cfg(feature = "extra-attrs")]
6322 pub extra_attrs: std::collections::HashMap<String, String>,
6323 #[cfg(feature = "extra-children")]
6325 #[serde(skip)]
6326 #[cfg(feature = "extra-children")]
6327 pub extra_children: Vec<ooxml_xml::PositionedNode>,
6328}
6329
6330#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6331pub struct CTMissing {
6332 #[serde(rename = "@u")]
6333 #[serde(
6334 default,
6335 skip_serializing_if = "Option::is_none",
6336 with = "ooxml_xml::ooxml_bool"
6337 )]
6338 pub u: Option<bool>,
6339 #[serde(rename = "@f")]
6340 #[serde(
6341 default,
6342 skip_serializing_if = "Option::is_none",
6343 with = "ooxml_xml::ooxml_bool"
6344 )]
6345 pub formula: Option<bool>,
6346 #[serde(rename = "@c")]
6347 #[serde(default, skip_serializing_if = "Option::is_none")]
6348 pub cells: Option<XmlString>,
6349 #[serde(rename = "@cp")]
6350 #[serde(default, skip_serializing_if = "Option::is_none")]
6351 pub cp: Option<u32>,
6352 #[serde(rename = "@in")]
6353 #[serde(default, skip_serializing_if = "Option::is_none")]
6354 pub r#in: Option<u32>,
6355 #[serde(rename = "@bc")]
6356 #[serde(default, skip_serializing_if = "Option::is_none")]
6357 pub bc: Option<STUnsignedIntHex>,
6358 #[serde(rename = "@fc")]
6359 #[serde(default, skip_serializing_if = "Option::is_none")]
6360 pub fc: Option<STUnsignedIntHex>,
6361 #[serde(rename = "@i")]
6362 #[serde(
6363 default,
6364 skip_serializing_if = "Option::is_none",
6365 with = "ooxml_xml::ooxml_bool"
6366 )]
6367 pub i: Option<bool>,
6368 #[serde(rename = "@un")]
6369 #[serde(
6370 default,
6371 skip_serializing_if = "Option::is_none",
6372 with = "ooxml_xml::ooxml_bool"
6373 )]
6374 pub un: Option<bool>,
6375 #[serde(rename = "@st")]
6376 #[serde(
6377 default,
6378 skip_serializing_if = "Option::is_none",
6379 with = "ooxml_xml::ooxml_bool"
6380 )]
6381 pub st: Option<bool>,
6382 #[serde(rename = "@b")]
6383 #[serde(
6384 default,
6385 skip_serializing_if = "Option::is_none",
6386 with = "ooxml_xml::ooxml_bool"
6387 )]
6388 pub b: Option<bool>,
6389 #[serde(rename = "tpls")]
6390 #[serde(default, skip_serializing_if = "Vec::is_empty")]
6391 pub tpls: Vec<CTTuples>,
6392 #[serde(rename = "x")]
6393 #[serde(default, skip_serializing_if = "Vec::is_empty")]
6394 pub x: Vec<CTX>,
6395 #[cfg(feature = "extra-attrs")]
6397 #[serde(skip)]
6398 #[cfg(feature = "extra-attrs")]
6399 #[serde(default)]
6400 #[cfg(feature = "extra-attrs")]
6401 pub extra_attrs: std::collections::HashMap<String, String>,
6402 #[cfg(feature = "extra-children")]
6404 #[serde(skip)]
6405 #[cfg(feature = "extra-children")]
6406 pub extra_children: Vec<ooxml_xml::PositionedNode>,
6407}
6408
6409#[derive(Debug, Clone, Serialize, Deserialize)]
6410pub struct CTNumber {
6411 #[serde(rename = "@v")]
6412 pub value: f64,
6413 #[serde(rename = "@u")]
6414 #[serde(
6415 default,
6416 skip_serializing_if = "Option::is_none",
6417 with = "ooxml_xml::ooxml_bool"
6418 )]
6419 pub u: Option<bool>,
6420 #[serde(rename = "@f")]
6421 #[serde(
6422 default,
6423 skip_serializing_if = "Option::is_none",
6424 with = "ooxml_xml::ooxml_bool"
6425 )]
6426 pub formula: Option<bool>,
6427 #[serde(rename = "@c")]
6428 #[serde(default, skip_serializing_if = "Option::is_none")]
6429 pub cells: Option<XmlString>,
6430 #[serde(rename = "@cp")]
6431 #[serde(default, skip_serializing_if = "Option::is_none")]
6432 pub cp: Option<u32>,
6433 #[serde(rename = "@in")]
6434 #[serde(default, skip_serializing_if = "Option::is_none")]
6435 pub r#in: Option<u32>,
6436 #[serde(rename = "@bc")]
6437 #[serde(default, skip_serializing_if = "Option::is_none")]
6438 pub bc: Option<STUnsignedIntHex>,
6439 #[serde(rename = "@fc")]
6440 #[serde(default, skip_serializing_if = "Option::is_none")]
6441 pub fc: Option<STUnsignedIntHex>,
6442 #[serde(rename = "@i")]
6443 #[serde(
6444 default,
6445 skip_serializing_if = "Option::is_none",
6446 with = "ooxml_xml::ooxml_bool"
6447 )]
6448 pub i: Option<bool>,
6449 #[serde(rename = "@un")]
6450 #[serde(
6451 default,
6452 skip_serializing_if = "Option::is_none",
6453 with = "ooxml_xml::ooxml_bool"
6454 )]
6455 pub un: Option<bool>,
6456 #[serde(rename = "@st")]
6457 #[serde(
6458 default,
6459 skip_serializing_if = "Option::is_none",
6460 with = "ooxml_xml::ooxml_bool"
6461 )]
6462 pub st: Option<bool>,
6463 #[serde(rename = "@b")]
6464 #[serde(
6465 default,
6466 skip_serializing_if = "Option::is_none",
6467 with = "ooxml_xml::ooxml_bool"
6468 )]
6469 pub b: Option<bool>,
6470 #[serde(rename = "tpls")]
6471 #[serde(default, skip_serializing_if = "Vec::is_empty")]
6472 pub tpls: Vec<CTTuples>,
6473 #[serde(rename = "x")]
6474 #[serde(default, skip_serializing_if = "Vec::is_empty")]
6475 pub x: Vec<CTX>,
6476 #[cfg(feature = "extra-attrs")]
6478 #[serde(skip)]
6479 #[cfg(feature = "extra-attrs")]
6480 #[serde(default)]
6481 #[cfg(feature = "extra-attrs")]
6482 pub extra_attrs: std::collections::HashMap<String, String>,
6483 #[cfg(feature = "extra-children")]
6485 #[serde(skip)]
6486 #[cfg(feature = "extra-children")]
6487 pub extra_children: Vec<ooxml_xml::PositionedNode>,
6488}
6489
6490#[derive(Debug, Clone, Serialize, Deserialize)]
6491pub struct CTBoolean {
6492 #[serde(rename = "@v")]
6493 #[serde(with = "ooxml_xml::ooxml_bool_required")]
6494 pub value: bool,
6495 #[serde(rename = "@u")]
6496 #[serde(
6497 default,
6498 skip_serializing_if = "Option::is_none",
6499 with = "ooxml_xml::ooxml_bool"
6500 )]
6501 pub u: Option<bool>,
6502 #[serde(rename = "@f")]
6503 #[serde(
6504 default,
6505 skip_serializing_if = "Option::is_none",
6506 with = "ooxml_xml::ooxml_bool"
6507 )]
6508 pub formula: Option<bool>,
6509 #[serde(rename = "@c")]
6510 #[serde(default, skip_serializing_if = "Option::is_none")]
6511 pub cells: Option<XmlString>,
6512 #[serde(rename = "@cp")]
6513 #[serde(default, skip_serializing_if = "Option::is_none")]
6514 pub cp: Option<u32>,
6515 #[serde(rename = "x")]
6516 #[serde(default, skip_serializing_if = "Vec::is_empty")]
6517 pub x: Vec<CTX>,
6518 #[cfg(feature = "extra-attrs")]
6520 #[serde(skip)]
6521 #[cfg(feature = "extra-attrs")]
6522 #[serde(default)]
6523 #[cfg(feature = "extra-attrs")]
6524 pub extra_attrs: std::collections::HashMap<String, String>,
6525 #[cfg(feature = "extra-children")]
6527 #[serde(skip)]
6528 #[cfg(feature = "extra-children")]
6529 pub extra_children: Vec<ooxml_xml::PositionedNode>,
6530}
6531
6532#[derive(Debug, Clone, Serialize, Deserialize)]
6533pub struct CTError {
6534 #[serde(rename = "@v")]
6535 pub value: XmlString,
6536 #[serde(rename = "@u")]
6537 #[serde(
6538 default,
6539 skip_serializing_if = "Option::is_none",
6540 with = "ooxml_xml::ooxml_bool"
6541 )]
6542 pub u: Option<bool>,
6543 #[serde(rename = "@f")]
6544 #[serde(
6545 default,
6546 skip_serializing_if = "Option::is_none",
6547 with = "ooxml_xml::ooxml_bool"
6548 )]
6549 pub formula: Option<bool>,
6550 #[serde(rename = "@c")]
6551 #[serde(default, skip_serializing_if = "Option::is_none")]
6552 pub cells: Option<XmlString>,
6553 #[serde(rename = "@cp")]
6554 #[serde(default, skip_serializing_if = "Option::is_none")]
6555 pub cp: Option<u32>,
6556 #[serde(rename = "@in")]
6557 #[serde(default, skip_serializing_if = "Option::is_none")]
6558 pub r#in: Option<u32>,
6559 #[serde(rename = "@bc")]
6560 #[serde(default, skip_serializing_if = "Option::is_none")]
6561 pub bc: Option<STUnsignedIntHex>,
6562 #[serde(rename = "@fc")]
6563 #[serde(default, skip_serializing_if = "Option::is_none")]
6564 pub fc: Option<STUnsignedIntHex>,
6565 #[serde(rename = "@i")]
6566 #[serde(
6567 default,
6568 skip_serializing_if = "Option::is_none",
6569 with = "ooxml_xml::ooxml_bool"
6570 )]
6571 pub i: Option<bool>,
6572 #[serde(rename = "@un")]
6573 #[serde(
6574 default,
6575 skip_serializing_if = "Option::is_none",
6576 with = "ooxml_xml::ooxml_bool"
6577 )]
6578 pub un: Option<bool>,
6579 #[serde(rename = "@st")]
6580 #[serde(
6581 default,
6582 skip_serializing_if = "Option::is_none",
6583 with = "ooxml_xml::ooxml_bool"
6584 )]
6585 pub st: Option<bool>,
6586 #[serde(rename = "@b")]
6587 #[serde(
6588 default,
6589 skip_serializing_if = "Option::is_none",
6590 with = "ooxml_xml::ooxml_bool"
6591 )]
6592 pub b: Option<bool>,
6593 #[serde(rename = "tpls")]
6594 #[serde(default, skip_serializing_if = "Option::is_none")]
6595 pub tpls: Option<Box<CTTuples>>,
6596 #[serde(rename = "x")]
6597 #[serde(default, skip_serializing_if = "Vec::is_empty")]
6598 pub x: Vec<CTX>,
6599 #[cfg(feature = "extra-attrs")]
6601 #[serde(skip)]
6602 #[cfg(feature = "extra-attrs")]
6603 #[serde(default)]
6604 #[cfg(feature = "extra-attrs")]
6605 pub extra_attrs: std::collections::HashMap<String, String>,
6606 #[cfg(feature = "extra-children")]
6608 #[serde(skip)]
6609 #[cfg(feature = "extra-children")]
6610 pub extra_children: Vec<ooxml_xml::PositionedNode>,
6611}
6612
6613#[derive(Debug, Clone, Serialize, Deserialize)]
6614pub struct CTString {
6615 #[serde(rename = "@v")]
6616 pub value: XmlString,
6617 #[serde(rename = "@u")]
6618 #[serde(
6619 default,
6620 skip_serializing_if = "Option::is_none",
6621 with = "ooxml_xml::ooxml_bool"
6622 )]
6623 pub u: Option<bool>,
6624 #[serde(rename = "@f")]
6625 #[serde(
6626 default,
6627 skip_serializing_if = "Option::is_none",
6628 with = "ooxml_xml::ooxml_bool"
6629 )]
6630 pub formula: Option<bool>,
6631 #[serde(rename = "@c")]
6632 #[serde(default, skip_serializing_if = "Option::is_none")]
6633 pub cells: Option<XmlString>,
6634 #[serde(rename = "@cp")]
6635 #[serde(default, skip_serializing_if = "Option::is_none")]
6636 pub cp: Option<u32>,
6637 #[serde(rename = "@in")]
6638 #[serde(default, skip_serializing_if = "Option::is_none")]
6639 pub r#in: Option<u32>,
6640 #[serde(rename = "@bc")]
6641 #[serde(default, skip_serializing_if = "Option::is_none")]
6642 pub bc: Option<STUnsignedIntHex>,
6643 #[serde(rename = "@fc")]
6644 #[serde(default, skip_serializing_if = "Option::is_none")]
6645 pub fc: Option<STUnsignedIntHex>,
6646 #[serde(rename = "@i")]
6647 #[serde(
6648 default,
6649 skip_serializing_if = "Option::is_none",
6650 with = "ooxml_xml::ooxml_bool"
6651 )]
6652 pub i: Option<bool>,
6653 #[serde(rename = "@un")]
6654 #[serde(
6655 default,
6656 skip_serializing_if = "Option::is_none",
6657 with = "ooxml_xml::ooxml_bool"
6658 )]
6659 pub un: Option<bool>,
6660 #[serde(rename = "@st")]
6661 #[serde(
6662 default,
6663 skip_serializing_if = "Option::is_none",
6664 with = "ooxml_xml::ooxml_bool"
6665 )]
6666 pub st: Option<bool>,
6667 #[serde(rename = "@b")]
6668 #[serde(
6669 default,
6670 skip_serializing_if = "Option::is_none",
6671 with = "ooxml_xml::ooxml_bool"
6672 )]
6673 pub b: Option<bool>,
6674 #[serde(rename = "tpls")]
6675 #[serde(default, skip_serializing_if = "Vec::is_empty")]
6676 pub tpls: Vec<CTTuples>,
6677 #[serde(rename = "x")]
6678 #[serde(default, skip_serializing_if = "Vec::is_empty")]
6679 pub x: Vec<CTX>,
6680 #[cfg(feature = "extra-attrs")]
6682 #[serde(skip)]
6683 #[cfg(feature = "extra-attrs")]
6684 #[serde(default)]
6685 #[cfg(feature = "extra-attrs")]
6686 pub extra_attrs: std::collections::HashMap<String, String>,
6687 #[cfg(feature = "extra-children")]
6689 #[serde(skip)]
6690 #[cfg(feature = "extra-children")]
6691 pub extra_children: Vec<ooxml_xml::PositionedNode>,
6692}
6693
6694#[derive(Debug, Clone, Serialize, Deserialize)]
6695pub struct CTDateTime {
6696 #[serde(rename = "@v")]
6697 pub value: String,
6698 #[serde(rename = "@u")]
6699 #[serde(
6700 default,
6701 skip_serializing_if = "Option::is_none",
6702 with = "ooxml_xml::ooxml_bool"
6703 )]
6704 pub u: Option<bool>,
6705 #[serde(rename = "@f")]
6706 #[serde(
6707 default,
6708 skip_serializing_if = "Option::is_none",
6709 with = "ooxml_xml::ooxml_bool"
6710 )]
6711 pub formula: Option<bool>,
6712 #[serde(rename = "@c")]
6713 #[serde(default, skip_serializing_if = "Option::is_none")]
6714 pub cells: Option<XmlString>,
6715 #[serde(rename = "@cp")]
6716 #[serde(default, skip_serializing_if = "Option::is_none")]
6717 pub cp: Option<u32>,
6718 #[serde(rename = "x")]
6719 #[serde(default, skip_serializing_if = "Vec::is_empty")]
6720 pub x: Vec<CTX>,
6721 #[cfg(feature = "extra-attrs")]
6723 #[serde(skip)]
6724 #[cfg(feature = "extra-attrs")]
6725 #[serde(default)]
6726 #[cfg(feature = "extra-attrs")]
6727 pub extra_attrs: std::collections::HashMap<String, String>,
6728 #[cfg(feature = "extra-children")]
6730 #[serde(skip)]
6731 #[cfg(feature = "extra-children")]
6732 pub extra_children: Vec<ooxml_xml::PositionedNode>,
6733}
6734
6735#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6736pub struct FieldGroup {
6737 #[serde(rename = "@par")]
6738 #[serde(default, skip_serializing_if = "Option::is_none")]
6739 pub par: Option<u32>,
6740 #[serde(rename = "@base")]
6741 #[serde(default, skip_serializing_if = "Option::is_none")]
6742 pub base: Option<u32>,
6743 #[serde(rename = "rangePr")]
6744 #[serde(default, skip_serializing_if = "Option::is_none")]
6745 pub range_pr: Option<Box<CTRangePr>>,
6746 #[serde(rename = "discretePr")]
6747 #[serde(default, skip_serializing_if = "Option::is_none")]
6748 pub discrete_pr: Option<Box<CTDiscretePr>>,
6749 #[serde(rename = "groupItems")]
6750 #[serde(default, skip_serializing_if = "Option::is_none")]
6751 pub group_items: Option<Box<GroupItems>>,
6752 #[cfg(feature = "extra-attrs")]
6754 #[serde(skip)]
6755 #[cfg(feature = "extra-attrs")]
6756 #[serde(default)]
6757 #[cfg(feature = "extra-attrs")]
6758 pub extra_attrs: std::collections::HashMap<String, String>,
6759 #[cfg(feature = "extra-children")]
6761 #[serde(skip)]
6762 #[cfg(feature = "extra-children")]
6763 pub extra_children: Vec<ooxml_xml::PositionedNode>,
6764}
6765
6766#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6767pub struct CTRangePr {
6768 #[serde(rename = "@autoStart")]
6769 #[serde(
6770 default,
6771 skip_serializing_if = "Option::is_none",
6772 with = "ooxml_xml::ooxml_bool"
6773 )]
6774 pub auto_start: Option<bool>,
6775 #[serde(rename = "@autoEnd")]
6776 #[serde(
6777 default,
6778 skip_serializing_if = "Option::is_none",
6779 with = "ooxml_xml::ooxml_bool"
6780 )]
6781 pub auto_end: Option<bool>,
6782 #[serde(rename = "@groupBy")]
6783 #[serde(default, skip_serializing_if = "Option::is_none")]
6784 pub group_by: Option<STGroupBy>,
6785 #[serde(rename = "@startNum")]
6786 #[serde(default, skip_serializing_if = "Option::is_none")]
6787 pub start_num: Option<f64>,
6788 #[serde(rename = "@endNum")]
6789 #[serde(default, skip_serializing_if = "Option::is_none")]
6790 pub end_num: Option<f64>,
6791 #[serde(rename = "@startDate")]
6792 #[serde(default, skip_serializing_if = "Option::is_none")]
6793 pub start_date: Option<String>,
6794 #[serde(rename = "@endDate")]
6795 #[serde(default, skip_serializing_if = "Option::is_none")]
6796 pub end_date: Option<String>,
6797 #[serde(rename = "@groupInterval")]
6798 #[serde(default, skip_serializing_if = "Option::is_none")]
6799 pub group_interval: Option<f64>,
6800 #[cfg(feature = "extra-attrs")]
6802 #[serde(skip)]
6803 #[cfg(feature = "extra-attrs")]
6804 #[serde(default)]
6805 #[cfg(feature = "extra-attrs")]
6806 pub extra_attrs: std::collections::HashMap<String, String>,
6807}
6808
6809#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6810pub struct CTDiscretePr {
6811 #[serde(rename = "@count")]
6812 #[serde(default, skip_serializing_if = "Option::is_none")]
6813 pub count: Option<u32>,
6814 #[serde(rename = "x")]
6815 #[serde(default, skip_serializing_if = "Vec::is_empty")]
6816 pub x: Vec<CTIndex>,
6817 #[cfg(feature = "extra-attrs")]
6819 #[serde(skip)]
6820 #[cfg(feature = "extra-attrs")]
6821 #[serde(default)]
6822 #[cfg(feature = "extra-attrs")]
6823 pub extra_attrs: std::collections::HashMap<String, String>,
6824 #[cfg(feature = "extra-children")]
6826 #[serde(skip)]
6827 #[cfg(feature = "extra-children")]
6828 pub extra_children: Vec<ooxml_xml::PositionedNode>,
6829}
6830
6831#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6832pub struct GroupItems {
6833 #[serde(rename = "@count")]
6834 #[serde(default, skip_serializing_if = "Option::is_none")]
6835 pub count: Option<u32>,
6836 #[serde(rename = "m")]
6837 #[serde(default, skip_serializing_if = "Vec::is_empty")]
6838 pub m: Vec<CTMissing>,
6839 #[serde(rename = "n")]
6840 #[serde(default, skip_serializing_if = "Vec::is_empty")]
6841 pub n: Vec<CTNumber>,
6842 #[serde(rename = "b")]
6843 #[serde(default, skip_serializing_if = "Vec::is_empty")]
6844 pub b: Vec<CTBoolean>,
6845 #[serde(rename = "e")]
6846 #[serde(default, skip_serializing_if = "Vec::is_empty")]
6847 pub e: Vec<CTError>,
6848 #[serde(rename = "s")]
6849 #[serde(default, skip_serializing_if = "Vec::is_empty")]
6850 pub style_index: Vec<CTString>,
6851 #[serde(rename = "d")]
6852 #[serde(default, skip_serializing_if = "Vec::is_empty")]
6853 pub d: Vec<CTDateTime>,
6854 #[cfg(feature = "extra-attrs")]
6856 #[serde(skip)]
6857 #[cfg(feature = "extra-attrs")]
6858 #[serde(default)]
6859 #[cfg(feature = "extra-attrs")]
6860 pub extra_attrs: std::collections::HashMap<String, String>,
6861 #[cfg(feature = "extra-children")]
6863 #[serde(skip)]
6864 #[cfg(feature = "extra-children")]
6865 pub extra_children: Vec<ooxml_xml::PositionedNode>,
6866}
6867
6868#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6869pub struct PivotCacheRecords {
6870 #[serde(rename = "@count")]
6871 #[serde(default, skip_serializing_if = "Option::is_none")]
6872 pub count: Option<u32>,
6873 #[serde(rename = "r")]
6874 #[serde(default, skip_serializing_if = "Vec::is_empty")]
6875 pub reference: Vec<CTRecord>,
6876 #[serde(rename = "extLst")]
6877 #[serde(default, skip_serializing_if = "Option::is_none")]
6878 pub extension_list: Option<Box<ExtensionList>>,
6879 #[cfg(feature = "extra-attrs")]
6881 #[serde(skip)]
6882 #[cfg(feature = "extra-attrs")]
6883 #[serde(default)]
6884 #[cfg(feature = "extra-attrs")]
6885 pub extra_attrs: std::collections::HashMap<String, String>,
6886 #[cfg(feature = "extra-children")]
6888 #[serde(skip)]
6889 #[cfg(feature = "extra-children")]
6890 pub extra_children: Vec<ooxml_xml::PositionedNode>,
6891}
6892
6893#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6894pub struct CTRecord {
6895 #[serde(rename = "m")]
6896 #[serde(default, skip_serializing_if = "Vec::is_empty")]
6897 pub m: Vec<CTMissing>,
6898 #[serde(rename = "n")]
6899 #[serde(default, skip_serializing_if = "Vec::is_empty")]
6900 pub n: Vec<CTNumber>,
6901 #[serde(rename = "b")]
6902 #[serde(default, skip_serializing_if = "Vec::is_empty")]
6903 pub b: Vec<CTBoolean>,
6904 #[serde(rename = "e")]
6905 #[serde(default, skip_serializing_if = "Vec::is_empty")]
6906 pub e: Vec<CTError>,
6907 #[serde(rename = "s")]
6908 #[serde(default, skip_serializing_if = "Vec::is_empty")]
6909 pub style_index: Vec<CTString>,
6910 #[serde(rename = "d")]
6911 #[serde(default, skip_serializing_if = "Vec::is_empty")]
6912 pub d: Vec<CTDateTime>,
6913 #[serde(rename = "x")]
6914 #[serde(default, skip_serializing_if = "Vec::is_empty")]
6915 pub x: Vec<CTIndex>,
6916 #[cfg(feature = "extra-children")]
6918 #[serde(skip)]
6919 #[cfg(feature = "extra-children")]
6920 pub extra_children: Vec<ooxml_xml::PositionedNode>,
6921}
6922
6923#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6924pub struct CTPCDKPIs {
6925 #[serde(rename = "@count")]
6926 #[serde(default, skip_serializing_if = "Option::is_none")]
6927 pub count: Option<u32>,
6928 #[serde(rename = "kpi")]
6929 #[serde(default, skip_serializing_if = "Vec::is_empty")]
6930 pub kpi: Vec<CTPCDKPI>,
6931 #[cfg(feature = "extra-attrs")]
6933 #[serde(skip)]
6934 #[cfg(feature = "extra-attrs")]
6935 #[serde(default)]
6936 #[cfg(feature = "extra-attrs")]
6937 pub extra_attrs: std::collections::HashMap<String, String>,
6938 #[cfg(feature = "extra-children")]
6940 #[serde(skip)]
6941 #[cfg(feature = "extra-children")]
6942 pub extra_children: Vec<ooxml_xml::PositionedNode>,
6943}
6944
6945#[derive(Debug, Clone, Serialize, Deserialize)]
6946pub struct CTPCDKPI {
6947 #[serde(rename = "@uniqueName")]
6948 pub unique_name: XmlString,
6949 #[serde(rename = "@caption")]
6950 #[serde(default, skip_serializing_if = "Option::is_none")]
6951 pub caption: Option<XmlString>,
6952 #[serde(rename = "@displayFolder")]
6953 #[serde(default, skip_serializing_if = "Option::is_none")]
6954 pub display_folder: Option<XmlString>,
6955 #[serde(rename = "@measureGroup")]
6956 #[serde(default, skip_serializing_if = "Option::is_none")]
6957 pub measure_group: Option<XmlString>,
6958 #[serde(rename = "@parent")]
6959 #[serde(default, skip_serializing_if = "Option::is_none")]
6960 pub parent: Option<XmlString>,
6961 #[serde(rename = "@value")]
6962 pub value: XmlString,
6963 #[serde(rename = "@goal")]
6964 #[serde(default, skip_serializing_if = "Option::is_none")]
6965 pub goal: Option<XmlString>,
6966 #[serde(rename = "@status")]
6967 #[serde(default, skip_serializing_if = "Option::is_none")]
6968 pub status: Option<XmlString>,
6969 #[serde(rename = "@trend")]
6970 #[serde(default, skip_serializing_if = "Option::is_none")]
6971 pub trend: Option<XmlString>,
6972 #[serde(rename = "@weight")]
6973 #[serde(default, skip_serializing_if = "Option::is_none")]
6974 pub weight: Option<XmlString>,
6975 #[serde(rename = "@time")]
6976 #[serde(default, skip_serializing_if = "Option::is_none")]
6977 pub time: Option<XmlString>,
6978 #[cfg(feature = "extra-attrs")]
6980 #[serde(skip)]
6981 #[cfg(feature = "extra-attrs")]
6982 #[serde(default)]
6983 #[cfg(feature = "extra-attrs")]
6984 pub extra_attrs: std::collections::HashMap<String, String>,
6985}
6986
6987#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6988pub struct CTCacheHierarchies {
6989 #[serde(rename = "@count")]
6990 #[serde(default, skip_serializing_if = "Option::is_none")]
6991 pub count: Option<u32>,
6992 #[serde(rename = "cacheHierarchy")]
6993 #[serde(default, skip_serializing_if = "Vec::is_empty")]
6994 pub cache_hierarchy: Vec<CTCacheHierarchy>,
6995 #[cfg(feature = "extra-attrs")]
6997 #[serde(skip)]
6998 #[cfg(feature = "extra-attrs")]
6999 #[serde(default)]
7000 #[cfg(feature = "extra-attrs")]
7001 pub extra_attrs: std::collections::HashMap<String, String>,
7002 #[cfg(feature = "extra-children")]
7004 #[serde(skip)]
7005 #[cfg(feature = "extra-children")]
7006 pub extra_children: Vec<ooxml_xml::PositionedNode>,
7007}
7008
7009#[derive(Debug, Clone, Serialize, Deserialize)]
7010pub struct CTCacheHierarchy {
7011 #[serde(rename = "@uniqueName")]
7012 pub unique_name: XmlString,
7013 #[serde(rename = "@caption")]
7014 #[serde(default, skip_serializing_if = "Option::is_none")]
7015 pub caption: Option<XmlString>,
7016 #[serde(rename = "@measure")]
7017 #[serde(
7018 default,
7019 skip_serializing_if = "Option::is_none",
7020 with = "ooxml_xml::ooxml_bool"
7021 )]
7022 pub measure: Option<bool>,
7023 #[serde(rename = "@set")]
7024 #[serde(
7025 default,
7026 skip_serializing_if = "Option::is_none",
7027 with = "ooxml_xml::ooxml_bool"
7028 )]
7029 pub set: Option<bool>,
7030 #[serde(rename = "@parentSet")]
7031 #[serde(default, skip_serializing_if = "Option::is_none")]
7032 pub parent_set: Option<u32>,
7033 #[serde(rename = "@iconSet")]
7034 #[serde(default, skip_serializing_if = "Option::is_none")]
7035 pub icon_set: Option<i32>,
7036 #[serde(rename = "@attribute")]
7037 #[serde(
7038 default,
7039 skip_serializing_if = "Option::is_none",
7040 with = "ooxml_xml::ooxml_bool"
7041 )]
7042 pub attribute: Option<bool>,
7043 #[serde(rename = "@time")]
7044 #[serde(
7045 default,
7046 skip_serializing_if = "Option::is_none",
7047 with = "ooxml_xml::ooxml_bool"
7048 )]
7049 pub time: Option<bool>,
7050 #[serde(rename = "@keyAttribute")]
7051 #[serde(
7052 default,
7053 skip_serializing_if = "Option::is_none",
7054 with = "ooxml_xml::ooxml_bool"
7055 )]
7056 pub key_attribute: Option<bool>,
7057 #[serde(rename = "@defaultMemberUniqueName")]
7058 #[serde(default, skip_serializing_if = "Option::is_none")]
7059 pub default_member_unique_name: Option<XmlString>,
7060 #[serde(rename = "@allUniqueName")]
7061 #[serde(default, skip_serializing_if = "Option::is_none")]
7062 pub all_unique_name: Option<XmlString>,
7063 #[serde(rename = "@allCaption")]
7064 #[serde(default, skip_serializing_if = "Option::is_none")]
7065 pub all_caption: Option<XmlString>,
7066 #[serde(rename = "@dimensionUniqueName")]
7067 #[serde(default, skip_serializing_if = "Option::is_none")]
7068 pub dimension_unique_name: Option<XmlString>,
7069 #[serde(rename = "@displayFolder")]
7070 #[serde(default, skip_serializing_if = "Option::is_none")]
7071 pub display_folder: Option<XmlString>,
7072 #[serde(rename = "@measureGroup")]
7073 #[serde(default, skip_serializing_if = "Option::is_none")]
7074 pub measure_group: Option<XmlString>,
7075 #[serde(rename = "@measures")]
7076 #[serde(
7077 default,
7078 skip_serializing_if = "Option::is_none",
7079 with = "ooxml_xml::ooxml_bool"
7080 )]
7081 pub measures: Option<bool>,
7082 #[serde(rename = "@count")]
7083 pub count: u32,
7084 #[serde(rename = "@oneField")]
7085 #[serde(
7086 default,
7087 skip_serializing_if = "Option::is_none",
7088 with = "ooxml_xml::ooxml_bool"
7089 )]
7090 pub one_field: Option<bool>,
7091 #[serde(rename = "@memberValueDatatype")]
7092 #[serde(default, skip_serializing_if = "Option::is_none")]
7093 pub member_value_datatype: Option<u16>,
7094 #[serde(rename = "@unbalanced")]
7095 #[serde(
7096 default,
7097 skip_serializing_if = "Option::is_none",
7098 with = "ooxml_xml::ooxml_bool"
7099 )]
7100 pub unbalanced: Option<bool>,
7101 #[serde(rename = "@unbalancedGroup")]
7102 #[serde(
7103 default,
7104 skip_serializing_if = "Option::is_none",
7105 with = "ooxml_xml::ooxml_bool"
7106 )]
7107 pub unbalanced_group: Option<bool>,
7108 #[serde(rename = "@hidden")]
7109 #[serde(
7110 default,
7111 skip_serializing_if = "Option::is_none",
7112 with = "ooxml_xml::ooxml_bool"
7113 )]
7114 pub hidden: Option<bool>,
7115 #[serde(rename = "fieldsUsage")]
7116 #[serde(default, skip_serializing_if = "Option::is_none")]
7117 pub fields_usage: Option<Box<CTFieldsUsage>>,
7118 #[serde(rename = "groupLevels")]
7119 #[serde(default, skip_serializing_if = "Option::is_none")]
7120 pub group_levels: Option<Box<CTGroupLevels>>,
7121 #[serde(rename = "extLst")]
7122 #[serde(default, skip_serializing_if = "Option::is_none")]
7123 pub extension_list: Option<Box<ExtensionList>>,
7124 #[cfg(feature = "extra-attrs")]
7126 #[serde(skip)]
7127 #[cfg(feature = "extra-attrs")]
7128 #[serde(default)]
7129 #[cfg(feature = "extra-attrs")]
7130 pub extra_attrs: std::collections::HashMap<String, String>,
7131 #[cfg(feature = "extra-children")]
7133 #[serde(skip)]
7134 #[cfg(feature = "extra-children")]
7135 pub extra_children: Vec<ooxml_xml::PositionedNode>,
7136}
7137
7138#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7139pub struct CTFieldsUsage {
7140 #[serde(rename = "@count")]
7141 #[serde(default, skip_serializing_if = "Option::is_none")]
7142 pub count: Option<u32>,
7143 #[serde(rename = "fieldUsage")]
7144 #[serde(default, skip_serializing_if = "Vec::is_empty")]
7145 pub field_usage: Vec<CTFieldUsage>,
7146 #[cfg(feature = "extra-attrs")]
7148 #[serde(skip)]
7149 #[cfg(feature = "extra-attrs")]
7150 #[serde(default)]
7151 #[cfg(feature = "extra-attrs")]
7152 pub extra_attrs: std::collections::HashMap<String, String>,
7153 #[cfg(feature = "extra-children")]
7155 #[serde(skip)]
7156 #[cfg(feature = "extra-children")]
7157 pub extra_children: Vec<ooxml_xml::PositionedNode>,
7158}
7159
7160#[derive(Debug, Clone, Serialize, Deserialize)]
7161pub struct CTFieldUsage {
7162 #[serde(rename = "@x")]
7163 pub x: i32,
7164 #[cfg(feature = "extra-attrs")]
7166 #[serde(skip)]
7167 #[cfg(feature = "extra-attrs")]
7168 #[serde(default)]
7169 #[cfg(feature = "extra-attrs")]
7170 pub extra_attrs: std::collections::HashMap<String, String>,
7171}
7172
7173#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7174pub struct CTGroupLevels {
7175 #[serde(rename = "@count")]
7176 #[serde(default, skip_serializing_if = "Option::is_none")]
7177 pub count: Option<u32>,
7178 #[serde(rename = "groupLevel")]
7179 #[serde(default, skip_serializing_if = "Vec::is_empty")]
7180 pub group_level: Vec<CTGroupLevel>,
7181 #[cfg(feature = "extra-attrs")]
7183 #[serde(skip)]
7184 #[cfg(feature = "extra-attrs")]
7185 #[serde(default)]
7186 #[cfg(feature = "extra-attrs")]
7187 pub extra_attrs: std::collections::HashMap<String, String>,
7188 #[cfg(feature = "extra-children")]
7190 #[serde(skip)]
7191 #[cfg(feature = "extra-children")]
7192 pub extra_children: Vec<ooxml_xml::PositionedNode>,
7193}
7194
7195#[derive(Debug, Clone, Serialize, Deserialize)]
7196pub struct CTGroupLevel {
7197 #[serde(rename = "@uniqueName")]
7198 pub unique_name: XmlString,
7199 #[serde(rename = "@caption")]
7200 pub caption: XmlString,
7201 #[serde(rename = "@user")]
7202 #[serde(
7203 default,
7204 skip_serializing_if = "Option::is_none",
7205 with = "ooxml_xml::ooxml_bool"
7206 )]
7207 pub user: Option<bool>,
7208 #[serde(rename = "@customRollUp")]
7209 #[serde(
7210 default,
7211 skip_serializing_if = "Option::is_none",
7212 with = "ooxml_xml::ooxml_bool"
7213 )]
7214 pub custom_roll_up: Option<bool>,
7215 #[serde(rename = "groups")]
7216 #[serde(default, skip_serializing_if = "Option::is_none")]
7217 pub groups: Option<Box<CTGroups>>,
7218 #[serde(rename = "extLst")]
7219 #[serde(default, skip_serializing_if = "Option::is_none")]
7220 pub extension_list: Option<Box<ExtensionList>>,
7221 #[cfg(feature = "extra-attrs")]
7223 #[serde(skip)]
7224 #[cfg(feature = "extra-attrs")]
7225 #[serde(default)]
7226 #[cfg(feature = "extra-attrs")]
7227 pub extra_attrs: std::collections::HashMap<String, String>,
7228 #[cfg(feature = "extra-children")]
7230 #[serde(skip)]
7231 #[cfg(feature = "extra-children")]
7232 pub extra_children: Vec<ooxml_xml::PositionedNode>,
7233}
7234
7235#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7236pub struct CTGroups {
7237 #[serde(rename = "@count")]
7238 #[serde(default, skip_serializing_if = "Option::is_none")]
7239 pub count: Option<u32>,
7240 #[serde(rename = "group")]
7241 #[serde(default, skip_serializing_if = "Vec::is_empty")]
7242 pub group: Vec<CTLevelGroup>,
7243 #[cfg(feature = "extra-attrs")]
7245 #[serde(skip)]
7246 #[cfg(feature = "extra-attrs")]
7247 #[serde(default)]
7248 #[cfg(feature = "extra-attrs")]
7249 pub extra_attrs: std::collections::HashMap<String, String>,
7250 #[cfg(feature = "extra-children")]
7252 #[serde(skip)]
7253 #[cfg(feature = "extra-children")]
7254 pub extra_children: Vec<ooxml_xml::PositionedNode>,
7255}
7256
7257#[derive(Debug, Clone, Serialize, Deserialize)]
7258pub struct CTLevelGroup {
7259 #[serde(rename = "@name")]
7260 pub name: XmlString,
7261 #[serde(rename = "@uniqueName")]
7262 pub unique_name: XmlString,
7263 #[serde(rename = "@caption")]
7264 pub caption: XmlString,
7265 #[serde(rename = "@uniqueParent")]
7266 #[serde(default, skip_serializing_if = "Option::is_none")]
7267 pub unique_parent: Option<XmlString>,
7268 #[serde(rename = "@id")]
7269 #[serde(default, skip_serializing_if = "Option::is_none")]
7270 pub id: Option<i32>,
7271 #[serde(rename = "groupMembers")]
7272 pub group_members: Box<CTGroupMembers>,
7273 #[cfg(feature = "extra-attrs")]
7275 #[serde(skip)]
7276 #[cfg(feature = "extra-attrs")]
7277 #[serde(default)]
7278 #[cfg(feature = "extra-attrs")]
7279 pub extra_attrs: std::collections::HashMap<String, String>,
7280 #[cfg(feature = "extra-children")]
7282 #[serde(skip)]
7283 #[cfg(feature = "extra-children")]
7284 pub extra_children: Vec<ooxml_xml::PositionedNode>,
7285}
7286
7287#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7288pub struct CTGroupMembers {
7289 #[serde(rename = "@count")]
7290 #[serde(default, skip_serializing_if = "Option::is_none")]
7291 pub count: Option<u32>,
7292 #[serde(rename = "groupMember")]
7293 #[serde(default, skip_serializing_if = "Vec::is_empty")]
7294 pub group_member: Vec<CTGroupMember>,
7295 #[cfg(feature = "extra-attrs")]
7297 #[serde(skip)]
7298 #[cfg(feature = "extra-attrs")]
7299 #[serde(default)]
7300 #[cfg(feature = "extra-attrs")]
7301 pub extra_attrs: std::collections::HashMap<String, String>,
7302 #[cfg(feature = "extra-children")]
7304 #[serde(skip)]
7305 #[cfg(feature = "extra-children")]
7306 pub extra_children: Vec<ooxml_xml::PositionedNode>,
7307}
7308
7309#[derive(Debug, Clone, Serialize, Deserialize)]
7310pub struct CTGroupMember {
7311 #[serde(rename = "@uniqueName")]
7312 pub unique_name: XmlString,
7313 #[serde(rename = "@group")]
7314 #[serde(
7315 default,
7316 skip_serializing_if = "Option::is_none",
7317 with = "ooxml_xml::ooxml_bool"
7318 )]
7319 pub group: Option<bool>,
7320 #[cfg(feature = "extra-attrs")]
7322 #[serde(skip)]
7323 #[cfg(feature = "extra-attrs")]
7324 #[serde(default)]
7325 #[cfg(feature = "extra-attrs")]
7326 pub extra_attrs: std::collections::HashMap<String, String>,
7327}
7328
7329#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7330pub struct CTTupleCache {
7331 #[serde(rename = "entries")]
7332 #[serde(default, skip_serializing_if = "Option::is_none")]
7333 pub entries: Option<Box<CTPCDSDTCEntries>>,
7334 #[serde(rename = "sets")]
7335 #[serde(default, skip_serializing_if = "Option::is_none")]
7336 pub sets: Option<Box<CTSets>>,
7337 #[serde(rename = "queryCache")]
7338 #[serde(default, skip_serializing_if = "Option::is_none")]
7339 pub query_cache: Option<Box<CTQueryCache>>,
7340 #[serde(rename = "serverFormats")]
7341 #[serde(default, skip_serializing_if = "Option::is_none")]
7342 pub server_formats: Option<Box<CTServerFormats>>,
7343 #[serde(rename = "extLst")]
7344 #[serde(default, skip_serializing_if = "Option::is_none")]
7345 pub extension_list: Option<Box<ExtensionList>>,
7346 #[cfg(feature = "extra-children")]
7348 #[serde(skip)]
7349 #[cfg(feature = "extra-children")]
7350 pub extra_children: Vec<ooxml_xml::PositionedNode>,
7351}
7352
7353#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7354pub struct CTServerFormat {
7355 #[serde(rename = "@culture")]
7356 #[serde(default, skip_serializing_if = "Option::is_none")]
7357 pub culture: Option<XmlString>,
7358 #[serde(rename = "@format")]
7359 #[serde(default, skip_serializing_if = "Option::is_none")]
7360 pub format: Option<XmlString>,
7361 #[cfg(feature = "extra-attrs")]
7363 #[serde(skip)]
7364 #[cfg(feature = "extra-attrs")]
7365 #[serde(default)]
7366 #[cfg(feature = "extra-attrs")]
7367 pub extra_attrs: std::collections::HashMap<String, String>,
7368}
7369
7370#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7371pub struct CTServerFormats {
7372 #[serde(rename = "@count")]
7373 #[serde(default, skip_serializing_if = "Option::is_none")]
7374 pub count: Option<u32>,
7375 #[serde(rename = "serverFormat")]
7376 #[serde(default, skip_serializing_if = "Vec::is_empty")]
7377 pub server_format: Vec<CTServerFormat>,
7378 #[cfg(feature = "extra-attrs")]
7380 #[serde(skip)]
7381 #[cfg(feature = "extra-attrs")]
7382 #[serde(default)]
7383 #[cfg(feature = "extra-attrs")]
7384 pub extra_attrs: std::collections::HashMap<String, String>,
7385 #[cfg(feature = "extra-children")]
7387 #[serde(skip)]
7388 #[cfg(feature = "extra-children")]
7389 pub extra_children: Vec<ooxml_xml::PositionedNode>,
7390}
7391
7392#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7393pub struct CTPCDSDTCEntries {
7394 #[serde(rename = "@count")]
7395 #[serde(default, skip_serializing_if = "Option::is_none")]
7396 pub count: Option<u32>,
7397 #[serde(rename = "m")]
7398 #[serde(default, skip_serializing_if = "Vec::is_empty")]
7399 pub m: Vec<CTMissing>,
7400 #[serde(rename = "n")]
7401 #[serde(default, skip_serializing_if = "Vec::is_empty")]
7402 pub n: Vec<CTNumber>,
7403 #[serde(rename = "e")]
7404 #[serde(default, skip_serializing_if = "Vec::is_empty")]
7405 pub e: Vec<CTError>,
7406 #[serde(rename = "s")]
7407 #[serde(default, skip_serializing_if = "Vec::is_empty")]
7408 pub style_index: Vec<CTString>,
7409 #[cfg(feature = "extra-attrs")]
7411 #[serde(skip)]
7412 #[cfg(feature = "extra-attrs")]
7413 #[serde(default)]
7414 #[cfg(feature = "extra-attrs")]
7415 pub extra_attrs: std::collections::HashMap<String, String>,
7416 #[cfg(feature = "extra-children")]
7418 #[serde(skip)]
7419 #[cfg(feature = "extra-children")]
7420 pub extra_children: Vec<ooxml_xml::PositionedNode>,
7421}
7422
7423#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7424pub struct CTTuples {
7425 #[serde(rename = "@c")]
7426 #[serde(default, skip_serializing_if = "Option::is_none")]
7427 pub cells: Option<u32>,
7428 #[serde(rename = "tpl")]
7429 #[serde(default, skip_serializing_if = "Vec::is_empty")]
7430 pub tpl: Vec<CTTuple>,
7431 #[cfg(feature = "extra-attrs")]
7433 #[serde(skip)]
7434 #[cfg(feature = "extra-attrs")]
7435 #[serde(default)]
7436 #[cfg(feature = "extra-attrs")]
7437 pub extra_attrs: std::collections::HashMap<String, String>,
7438 #[cfg(feature = "extra-children")]
7440 #[serde(skip)]
7441 #[cfg(feature = "extra-children")]
7442 pub extra_children: Vec<ooxml_xml::PositionedNode>,
7443}
7444
7445#[derive(Debug, Clone, Serialize, Deserialize)]
7446pub struct CTTuple {
7447 #[serde(rename = "@fld")]
7448 #[serde(default, skip_serializing_if = "Option::is_none")]
7449 pub fld: Option<u32>,
7450 #[serde(rename = "@hier")]
7451 #[serde(default, skip_serializing_if = "Option::is_none")]
7452 pub hier: Option<u32>,
7453 #[serde(rename = "@item")]
7454 pub item: u32,
7455 #[cfg(feature = "extra-attrs")]
7457 #[serde(skip)]
7458 #[cfg(feature = "extra-attrs")]
7459 #[serde(default)]
7460 #[cfg(feature = "extra-attrs")]
7461 pub extra_attrs: std::collections::HashMap<String, String>,
7462}
7463
7464#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7465pub struct CTSets {
7466 #[serde(rename = "@count")]
7467 #[serde(default, skip_serializing_if = "Option::is_none")]
7468 pub count: Option<u32>,
7469 #[serde(rename = "set")]
7470 #[serde(default, skip_serializing_if = "Vec::is_empty")]
7471 pub set: Vec<CTSet>,
7472 #[cfg(feature = "extra-attrs")]
7474 #[serde(skip)]
7475 #[cfg(feature = "extra-attrs")]
7476 #[serde(default)]
7477 #[cfg(feature = "extra-attrs")]
7478 pub extra_attrs: std::collections::HashMap<String, String>,
7479 #[cfg(feature = "extra-children")]
7481 #[serde(skip)]
7482 #[cfg(feature = "extra-children")]
7483 pub extra_children: Vec<ooxml_xml::PositionedNode>,
7484}
7485
7486#[derive(Debug, Clone, Serialize, Deserialize)]
7487pub struct CTSet {
7488 #[serde(rename = "@count")]
7489 #[serde(default, skip_serializing_if = "Option::is_none")]
7490 pub count: Option<u32>,
7491 #[serde(rename = "@maxRank")]
7492 pub max_rank: i32,
7493 #[serde(rename = "@setDefinition")]
7494 pub set_definition: XmlString,
7495 #[serde(rename = "@sortType")]
7496 #[serde(default, skip_serializing_if = "Option::is_none")]
7497 pub sort_type: Option<STSortType>,
7498 #[serde(rename = "@queryFailed")]
7499 #[serde(
7500 default,
7501 skip_serializing_if = "Option::is_none",
7502 with = "ooxml_xml::ooxml_bool"
7503 )]
7504 pub query_failed: Option<bool>,
7505 #[serde(rename = "tpls")]
7506 #[serde(default, skip_serializing_if = "Vec::is_empty")]
7507 pub tpls: Vec<CTTuples>,
7508 #[serde(rename = "sortByTuple")]
7509 #[serde(default, skip_serializing_if = "Option::is_none")]
7510 pub sort_by_tuple: Option<Box<CTTuples>>,
7511 #[cfg(feature = "extra-attrs")]
7513 #[serde(skip)]
7514 #[cfg(feature = "extra-attrs")]
7515 #[serde(default)]
7516 #[cfg(feature = "extra-attrs")]
7517 pub extra_attrs: std::collections::HashMap<String, String>,
7518 #[cfg(feature = "extra-children")]
7520 #[serde(skip)]
7521 #[cfg(feature = "extra-children")]
7522 pub extra_children: Vec<ooxml_xml::PositionedNode>,
7523}
7524
7525#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7526pub struct CTQueryCache {
7527 #[serde(rename = "@count")]
7528 #[serde(default, skip_serializing_if = "Option::is_none")]
7529 pub count: Option<u32>,
7530 #[serde(rename = "query")]
7531 #[serde(default, skip_serializing_if = "Vec::is_empty")]
7532 pub query: Vec<CTQuery>,
7533 #[cfg(feature = "extra-attrs")]
7535 #[serde(skip)]
7536 #[cfg(feature = "extra-attrs")]
7537 #[serde(default)]
7538 #[cfg(feature = "extra-attrs")]
7539 pub extra_attrs: std::collections::HashMap<String, String>,
7540 #[cfg(feature = "extra-children")]
7542 #[serde(skip)]
7543 #[cfg(feature = "extra-children")]
7544 pub extra_children: Vec<ooxml_xml::PositionedNode>,
7545}
7546
7547#[derive(Debug, Clone, Serialize, Deserialize)]
7548pub struct CTQuery {
7549 #[serde(rename = "@mdx")]
7550 pub mdx: XmlString,
7551 #[serde(rename = "tpls")]
7552 #[serde(default, skip_serializing_if = "Option::is_none")]
7553 pub tpls: Option<Box<CTTuples>>,
7554 #[cfg(feature = "extra-attrs")]
7556 #[serde(skip)]
7557 #[cfg(feature = "extra-attrs")]
7558 #[serde(default)]
7559 #[cfg(feature = "extra-attrs")]
7560 pub extra_attrs: std::collections::HashMap<String, String>,
7561 #[cfg(feature = "extra-children")]
7563 #[serde(skip)]
7564 #[cfg(feature = "extra-children")]
7565 pub extra_children: Vec<ooxml_xml::PositionedNode>,
7566}
7567
7568#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7569pub struct CTCalculatedItems {
7570 #[serde(rename = "@count")]
7571 #[serde(default, skip_serializing_if = "Option::is_none")]
7572 pub count: Option<u32>,
7573 #[serde(rename = "calculatedItem")]
7574 #[serde(default, skip_serializing_if = "Vec::is_empty")]
7575 pub calculated_item: Vec<CTCalculatedItem>,
7576 #[cfg(feature = "extra-attrs")]
7578 #[serde(skip)]
7579 #[cfg(feature = "extra-attrs")]
7580 #[serde(default)]
7581 #[cfg(feature = "extra-attrs")]
7582 pub extra_attrs: std::collections::HashMap<String, String>,
7583 #[cfg(feature = "extra-children")]
7585 #[serde(skip)]
7586 #[cfg(feature = "extra-children")]
7587 pub extra_children: Vec<ooxml_xml::PositionedNode>,
7588}
7589
7590#[derive(Debug, Clone, Serialize, Deserialize)]
7591pub struct CTCalculatedItem {
7592 #[serde(rename = "@field")]
7593 #[serde(default, skip_serializing_if = "Option::is_none")]
7594 pub field: Option<u32>,
7595 #[serde(rename = "@formula")]
7596 #[serde(default, skip_serializing_if = "Option::is_none")]
7597 pub formula: Option<XmlString>,
7598 #[serde(rename = "pivotArea")]
7599 pub pivot_area: Box<PivotArea>,
7600 #[serde(rename = "extLst")]
7601 #[serde(default, skip_serializing_if = "Option::is_none")]
7602 pub extension_list: Option<Box<ExtensionList>>,
7603 #[cfg(feature = "extra-attrs")]
7605 #[serde(skip)]
7606 #[cfg(feature = "extra-attrs")]
7607 #[serde(default)]
7608 #[cfg(feature = "extra-attrs")]
7609 pub extra_attrs: std::collections::HashMap<String, String>,
7610 #[cfg(feature = "extra-children")]
7612 #[serde(skip)]
7613 #[cfg(feature = "extra-children")]
7614 pub extra_children: Vec<ooxml_xml::PositionedNode>,
7615}
7616
7617#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7618pub struct CTCalculatedMembers {
7619 #[serde(rename = "@count")]
7620 #[serde(default, skip_serializing_if = "Option::is_none")]
7621 pub count: Option<u32>,
7622 #[serde(rename = "calculatedMember")]
7623 #[serde(default, skip_serializing_if = "Vec::is_empty")]
7624 pub calculated_member: Vec<CTCalculatedMember>,
7625 #[cfg(feature = "extra-attrs")]
7627 #[serde(skip)]
7628 #[cfg(feature = "extra-attrs")]
7629 #[serde(default)]
7630 #[cfg(feature = "extra-attrs")]
7631 pub extra_attrs: std::collections::HashMap<String, String>,
7632 #[cfg(feature = "extra-children")]
7634 #[serde(skip)]
7635 #[cfg(feature = "extra-children")]
7636 pub extra_children: Vec<ooxml_xml::PositionedNode>,
7637}
7638
7639#[derive(Debug, Clone, Serialize, Deserialize)]
7640pub struct CTCalculatedMember {
7641 #[serde(rename = "@name")]
7642 pub name: XmlString,
7643 #[serde(rename = "@mdx")]
7644 pub mdx: XmlString,
7645 #[serde(rename = "@memberName")]
7646 #[serde(default, skip_serializing_if = "Option::is_none")]
7647 pub member_name: Option<XmlString>,
7648 #[serde(rename = "@hierarchy")]
7649 #[serde(default, skip_serializing_if = "Option::is_none")]
7650 pub hierarchy: Option<XmlString>,
7651 #[serde(rename = "@parent")]
7652 #[serde(default, skip_serializing_if = "Option::is_none")]
7653 pub parent: Option<XmlString>,
7654 #[serde(rename = "@solveOrder")]
7655 #[serde(default, skip_serializing_if = "Option::is_none")]
7656 pub solve_order: Option<i32>,
7657 #[serde(rename = "@set")]
7658 #[serde(
7659 default,
7660 skip_serializing_if = "Option::is_none",
7661 with = "ooxml_xml::ooxml_bool"
7662 )]
7663 pub set: Option<bool>,
7664 #[serde(rename = "extLst")]
7665 #[serde(default, skip_serializing_if = "Option::is_none")]
7666 pub extension_list: Option<Box<ExtensionList>>,
7667 #[cfg(feature = "extra-attrs")]
7669 #[serde(skip)]
7670 #[cfg(feature = "extra-attrs")]
7671 #[serde(default)]
7672 #[cfg(feature = "extra-attrs")]
7673 pub extra_attrs: std::collections::HashMap<String, String>,
7674 #[cfg(feature = "extra-children")]
7676 #[serde(skip)]
7677 #[cfg(feature = "extra-children")]
7678 pub extra_children: Vec<ooxml_xml::PositionedNode>,
7679}
7680
7681#[derive(Debug, Clone, Serialize, Deserialize)]
7682pub struct CTPivotTableDefinition {
7683 #[serde(rename = "@name")]
7684 pub name: XmlString,
7685 #[serde(rename = "@cacheId")]
7686 pub cache_id: u32,
7687 #[serde(rename = "@dataOnRows")]
7688 #[serde(
7689 default,
7690 skip_serializing_if = "Option::is_none",
7691 with = "ooxml_xml::ooxml_bool"
7692 )]
7693 pub data_on_rows: Option<bool>,
7694 #[serde(rename = "@dataPosition")]
7695 #[serde(default, skip_serializing_if = "Option::is_none")]
7696 pub data_position: Option<u32>,
7697 #[serde(rename = "@autoFormatId")]
7698 #[serde(default, skip_serializing_if = "Option::is_none")]
7699 pub auto_format_id: Option<u32>,
7700 #[serde(rename = "@applyNumberFormats")]
7701 #[serde(
7702 default,
7703 skip_serializing_if = "Option::is_none",
7704 with = "ooxml_xml::ooxml_bool"
7705 )]
7706 pub apply_number_formats: Option<bool>,
7707 #[serde(rename = "@applyBorderFormats")]
7708 #[serde(
7709 default,
7710 skip_serializing_if = "Option::is_none",
7711 with = "ooxml_xml::ooxml_bool"
7712 )]
7713 pub apply_border_formats: Option<bool>,
7714 #[serde(rename = "@applyFontFormats")]
7715 #[serde(
7716 default,
7717 skip_serializing_if = "Option::is_none",
7718 with = "ooxml_xml::ooxml_bool"
7719 )]
7720 pub apply_font_formats: Option<bool>,
7721 #[serde(rename = "@applyPatternFormats")]
7722 #[serde(
7723 default,
7724 skip_serializing_if = "Option::is_none",
7725 with = "ooxml_xml::ooxml_bool"
7726 )]
7727 pub apply_pattern_formats: Option<bool>,
7728 #[serde(rename = "@applyAlignmentFormats")]
7729 #[serde(
7730 default,
7731 skip_serializing_if = "Option::is_none",
7732 with = "ooxml_xml::ooxml_bool"
7733 )]
7734 pub apply_alignment_formats: Option<bool>,
7735 #[serde(rename = "@applyWidthHeightFormats")]
7736 #[serde(
7737 default,
7738 skip_serializing_if = "Option::is_none",
7739 with = "ooxml_xml::ooxml_bool"
7740 )]
7741 pub apply_width_height_formats: Option<bool>,
7742 #[serde(rename = "@dataCaption")]
7743 pub data_caption: XmlString,
7744 #[serde(rename = "@grandTotalCaption")]
7745 #[serde(default, skip_serializing_if = "Option::is_none")]
7746 pub grand_total_caption: Option<XmlString>,
7747 #[serde(rename = "@errorCaption")]
7748 #[serde(default, skip_serializing_if = "Option::is_none")]
7749 pub error_caption: Option<XmlString>,
7750 #[serde(rename = "@showError")]
7751 #[serde(
7752 default,
7753 skip_serializing_if = "Option::is_none",
7754 with = "ooxml_xml::ooxml_bool"
7755 )]
7756 pub show_error: Option<bool>,
7757 #[serde(rename = "@missingCaption")]
7758 #[serde(default, skip_serializing_if = "Option::is_none")]
7759 pub missing_caption: Option<XmlString>,
7760 #[serde(rename = "@showMissing")]
7761 #[serde(
7762 default,
7763 skip_serializing_if = "Option::is_none",
7764 with = "ooxml_xml::ooxml_bool"
7765 )]
7766 pub show_missing: Option<bool>,
7767 #[serde(rename = "@pageStyle")]
7768 #[serde(default, skip_serializing_if = "Option::is_none")]
7769 pub page_style: Option<XmlString>,
7770 #[serde(rename = "@pivotTableStyle")]
7771 #[serde(default, skip_serializing_if = "Option::is_none")]
7772 pub pivot_table_style: Option<XmlString>,
7773 #[serde(rename = "@vacatedStyle")]
7774 #[serde(default, skip_serializing_if = "Option::is_none")]
7775 pub vacated_style: Option<XmlString>,
7776 #[serde(rename = "@tag")]
7777 #[serde(default, skip_serializing_if = "Option::is_none")]
7778 pub tag: Option<XmlString>,
7779 #[serde(rename = "@updatedVersion")]
7780 #[serde(default, skip_serializing_if = "Option::is_none")]
7781 pub updated_version: Option<u8>,
7782 #[serde(rename = "@minRefreshableVersion")]
7783 #[serde(default, skip_serializing_if = "Option::is_none")]
7784 pub min_refreshable_version: Option<u8>,
7785 #[serde(rename = "@asteriskTotals")]
7786 #[serde(
7787 default,
7788 skip_serializing_if = "Option::is_none",
7789 with = "ooxml_xml::ooxml_bool"
7790 )]
7791 pub asterisk_totals: Option<bool>,
7792 #[serde(rename = "@showItems")]
7793 #[serde(
7794 default,
7795 skip_serializing_if = "Option::is_none",
7796 with = "ooxml_xml::ooxml_bool"
7797 )]
7798 pub show_items: Option<bool>,
7799 #[serde(rename = "@editData")]
7800 #[serde(
7801 default,
7802 skip_serializing_if = "Option::is_none",
7803 with = "ooxml_xml::ooxml_bool"
7804 )]
7805 pub edit_data: Option<bool>,
7806 #[serde(rename = "@disableFieldList")]
7807 #[serde(
7808 default,
7809 skip_serializing_if = "Option::is_none",
7810 with = "ooxml_xml::ooxml_bool"
7811 )]
7812 pub disable_field_list: Option<bool>,
7813 #[serde(rename = "@showCalcMbrs")]
7814 #[serde(
7815 default,
7816 skip_serializing_if = "Option::is_none",
7817 with = "ooxml_xml::ooxml_bool"
7818 )]
7819 pub show_calc_mbrs: Option<bool>,
7820 #[serde(rename = "@visualTotals")]
7821 #[serde(
7822 default,
7823 skip_serializing_if = "Option::is_none",
7824 with = "ooxml_xml::ooxml_bool"
7825 )]
7826 pub visual_totals: Option<bool>,
7827 #[serde(rename = "@showMultipleLabel")]
7828 #[serde(
7829 default,
7830 skip_serializing_if = "Option::is_none",
7831 with = "ooxml_xml::ooxml_bool"
7832 )]
7833 pub show_multiple_label: Option<bool>,
7834 #[serde(rename = "@showDataDropDown")]
7835 #[serde(
7836 default,
7837 skip_serializing_if = "Option::is_none",
7838 with = "ooxml_xml::ooxml_bool"
7839 )]
7840 pub show_data_drop_down: Option<bool>,
7841 #[serde(rename = "@showDrill")]
7842 #[serde(
7843 default,
7844 skip_serializing_if = "Option::is_none",
7845 with = "ooxml_xml::ooxml_bool"
7846 )]
7847 pub show_drill: Option<bool>,
7848 #[serde(rename = "@printDrill")]
7849 #[serde(
7850 default,
7851 skip_serializing_if = "Option::is_none",
7852 with = "ooxml_xml::ooxml_bool"
7853 )]
7854 pub print_drill: Option<bool>,
7855 #[serde(rename = "@showMemberPropertyTips")]
7856 #[serde(
7857 default,
7858 skip_serializing_if = "Option::is_none",
7859 with = "ooxml_xml::ooxml_bool"
7860 )]
7861 pub show_member_property_tips: Option<bool>,
7862 #[serde(rename = "@showDataTips")]
7863 #[serde(
7864 default,
7865 skip_serializing_if = "Option::is_none",
7866 with = "ooxml_xml::ooxml_bool"
7867 )]
7868 pub show_data_tips: Option<bool>,
7869 #[serde(rename = "@enableWizard")]
7870 #[serde(
7871 default,
7872 skip_serializing_if = "Option::is_none",
7873 with = "ooxml_xml::ooxml_bool"
7874 )]
7875 pub enable_wizard: Option<bool>,
7876 #[serde(rename = "@enableDrill")]
7877 #[serde(
7878 default,
7879 skip_serializing_if = "Option::is_none",
7880 with = "ooxml_xml::ooxml_bool"
7881 )]
7882 pub enable_drill: Option<bool>,
7883 #[serde(rename = "@enableFieldProperties")]
7884 #[serde(
7885 default,
7886 skip_serializing_if = "Option::is_none",
7887 with = "ooxml_xml::ooxml_bool"
7888 )]
7889 pub enable_field_properties: Option<bool>,
7890 #[serde(rename = "@preserveFormatting")]
7891 #[serde(
7892 default,
7893 skip_serializing_if = "Option::is_none",
7894 with = "ooxml_xml::ooxml_bool"
7895 )]
7896 pub preserve_formatting: Option<bool>,
7897 #[serde(rename = "@useAutoFormatting")]
7898 #[serde(
7899 default,
7900 skip_serializing_if = "Option::is_none",
7901 with = "ooxml_xml::ooxml_bool"
7902 )]
7903 pub use_auto_formatting: Option<bool>,
7904 #[serde(rename = "@pageWrap")]
7905 #[serde(default, skip_serializing_if = "Option::is_none")]
7906 pub page_wrap: Option<u32>,
7907 #[serde(rename = "@pageOverThenDown")]
7908 #[serde(
7909 default,
7910 skip_serializing_if = "Option::is_none",
7911 with = "ooxml_xml::ooxml_bool"
7912 )]
7913 pub page_over_then_down: Option<bool>,
7914 #[serde(rename = "@subtotalHiddenItems")]
7915 #[serde(
7916 default,
7917 skip_serializing_if = "Option::is_none",
7918 with = "ooxml_xml::ooxml_bool"
7919 )]
7920 pub subtotal_hidden_items: Option<bool>,
7921 #[serde(rename = "@rowGrandTotals")]
7922 #[serde(
7923 default,
7924 skip_serializing_if = "Option::is_none",
7925 with = "ooxml_xml::ooxml_bool"
7926 )]
7927 pub row_grand_totals: Option<bool>,
7928 #[serde(rename = "@colGrandTotals")]
7929 #[serde(
7930 default,
7931 skip_serializing_if = "Option::is_none",
7932 with = "ooxml_xml::ooxml_bool"
7933 )]
7934 pub col_grand_totals: Option<bool>,
7935 #[serde(rename = "@fieldPrintTitles")]
7936 #[serde(
7937 default,
7938 skip_serializing_if = "Option::is_none",
7939 with = "ooxml_xml::ooxml_bool"
7940 )]
7941 pub field_print_titles: Option<bool>,
7942 #[serde(rename = "@itemPrintTitles")]
7943 #[serde(
7944 default,
7945 skip_serializing_if = "Option::is_none",
7946 with = "ooxml_xml::ooxml_bool"
7947 )]
7948 pub item_print_titles: Option<bool>,
7949 #[serde(rename = "@mergeItem")]
7950 #[serde(
7951 default,
7952 skip_serializing_if = "Option::is_none",
7953 with = "ooxml_xml::ooxml_bool"
7954 )]
7955 pub merge_item: Option<bool>,
7956 #[serde(rename = "@showDropZones")]
7957 #[serde(
7958 default,
7959 skip_serializing_if = "Option::is_none",
7960 with = "ooxml_xml::ooxml_bool"
7961 )]
7962 pub show_drop_zones: Option<bool>,
7963 #[serde(rename = "@createdVersion")]
7964 #[serde(default, skip_serializing_if = "Option::is_none")]
7965 pub created_version: Option<u8>,
7966 #[serde(rename = "@indent")]
7967 #[serde(default, skip_serializing_if = "Option::is_none")]
7968 pub indent: Option<u32>,
7969 #[serde(rename = "@showEmptyRow")]
7970 #[serde(
7971 default,
7972 skip_serializing_if = "Option::is_none",
7973 with = "ooxml_xml::ooxml_bool"
7974 )]
7975 pub show_empty_row: Option<bool>,
7976 #[serde(rename = "@showEmptyCol")]
7977 #[serde(
7978 default,
7979 skip_serializing_if = "Option::is_none",
7980 with = "ooxml_xml::ooxml_bool"
7981 )]
7982 pub show_empty_col: Option<bool>,
7983 #[serde(rename = "@showHeaders")]
7984 #[serde(
7985 default,
7986 skip_serializing_if = "Option::is_none",
7987 with = "ooxml_xml::ooxml_bool"
7988 )]
7989 pub show_headers: Option<bool>,
7990 #[serde(rename = "@compact")]
7991 #[serde(
7992 default,
7993 skip_serializing_if = "Option::is_none",
7994 with = "ooxml_xml::ooxml_bool"
7995 )]
7996 pub compact: Option<bool>,
7997 #[serde(rename = "@outline")]
7998 #[serde(
7999 default,
8000 skip_serializing_if = "Option::is_none",
8001 with = "ooxml_xml::ooxml_bool"
8002 )]
8003 pub outline: Option<bool>,
8004 #[serde(rename = "@outlineData")]
8005 #[serde(
8006 default,
8007 skip_serializing_if = "Option::is_none",
8008 with = "ooxml_xml::ooxml_bool"
8009 )]
8010 pub outline_data: Option<bool>,
8011 #[serde(rename = "@compactData")]
8012 #[serde(
8013 default,
8014 skip_serializing_if = "Option::is_none",
8015 with = "ooxml_xml::ooxml_bool"
8016 )]
8017 pub compact_data: Option<bool>,
8018 #[serde(rename = "@published")]
8019 #[serde(
8020 default,
8021 skip_serializing_if = "Option::is_none",
8022 with = "ooxml_xml::ooxml_bool"
8023 )]
8024 pub published: Option<bool>,
8025 #[serde(rename = "@gridDropZones")]
8026 #[serde(
8027 default,
8028 skip_serializing_if = "Option::is_none",
8029 with = "ooxml_xml::ooxml_bool"
8030 )]
8031 pub grid_drop_zones: Option<bool>,
8032 #[serde(rename = "@immersive")]
8033 #[serde(
8034 default,
8035 skip_serializing_if = "Option::is_none",
8036 with = "ooxml_xml::ooxml_bool"
8037 )]
8038 pub immersive: Option<bool>,
8039 #[serde(rename = "@multipleFieldFilters")]
8040 #[serde(
8041 default,
8042 skip_serializing_if = "Option::is_none",
8043 with = "ooxml_xml::ooxml_bool"
8044 )]
8045 pub multiple_field_filters: Option<bool>,
8046 #[serde(rename = "@chartFormat")]
8047 #[serde(default, skip_serializing_if = "Option::is_none")]
8048 pub chart_format: Option<u32>,
8049 #[serde(rename = "@rowHeaderCaption")]
8050 #[serde(default, skip_serializing_if = "Option::is_none")]
8051 pub row_header_caption: Option<XmlString>,
8052 #[serde(rename = "@colHeaderCaption")]
8053 #[serde(default, skip_serializing_if = "Option::is_none")]
8054 pub col_header_caption: Option<XmlString>,
8055 #[serde(rename = "@fieldListSortAscending")]
8056 #[serde(
8057 default,
8058 skip_serializing_if = "Option::is_none",
8059 with = "ooxml_xml::ooxml_bool"
8060 )]
8061 pub field_list_sort_ascending: Option<bool>,
8062 #[serde(rename = "@mdxSubqueries")]
8063 #[serde(
8064 default,
8065 skip_serializing_if = "Option::is_none",
8066 with = "ooxml_xml::ooxml_bool"
8067 )]
8068 pub mdx_subqueries: Option<bool>,
8069 #[serde(rename = "@customListSort")]
8070 #[serde(
8071 default,
8072 skip_serializing_if = "Option::is_none",
8073 with = "ooxml_xml::ooxml_bool"
8074 )]
8075 pub custom_list_sort: Option<bool>,
8076 #[serde(rename = "location")]
8077 pub location: Box<PivotLocation>,
8078 #[serde(rename = "pivotFields")]
8079 #[serde(default, skip_serializing_if = "Option::is_none")]
8080 pub pivot_fields: Option<Box<PivotFields>>,
8081 #[serde(rename = "rowFields")]
8082 #[serde(default, skip_serializing_if = "Option::is_none")]
8083 pub row_fields: Option<Box<RowFields>>,
8084 #[serde(rename = "rowItems")]
8085 #[serde(default, skip_serializing_if = "Option::is_none")]
8086 pub row_items: Option<Box<CTRowItems>>,
8087 #[serde(rename = "colFields")]
8088 #[serde(default, skip_serializing_if = "Option::is_none")]
8089 pub col_fields: Option<Box<ColFields>>,
8090 #[serde(rename = "colItems")]
8091 #[serde(default, skip_serializing_if = "Option::is_none")]
8092 pub col_items: Option<Box<CTColItems>>,
8093 #[serde(rename = "pageFields")]
8094 #[serde(default, skip_serializing_if = "Option::is_none")]
8095 pub page_fields: Option<Box<PageFields>>,
8096 #[serde(rename = "dataFields")]
8097 #[serde(default, skip_serializing_if = "Option::is_none")]
8098 pub data_fields: Option<Box<DataFields>>,
8099 #[serde(rename = "formats")]
8100 #[serde(default, skip_serializing_if = "Option::is_none")]
8101 pub formats: Option<Box<CTFormats>>,
8102 #[serde(rename = "conditionalFormats")]
8103 #[serde(default, skip_serializing_if = "Option::is_none")]
8104 pub conditional_formats: Option<Box<CTConditionalFormats>>,
8105 #[serde(rename = "chartFormats")]
8106 #[serde(default, skip_serializing_if = "Option::is_none")]
8107 pub chart_formats: Option<Box<CTChartFormats>>,
8108 #[serde(rename = "pivotHierarchies")]
8109 #[serde(default, skip_serializing_if = "Option::is_none")]
8110 pub pivot_hierarchies: Option<Box<CTPivotHierarchies>>,
8111 #[serde(rename = "pivotTableStyleInfo")]
8112 #[serde(default, skip_serializing_if = "Option::is_none")]
8113 pub pivot_table_style_info: Option<Box<CTPivotTableStyle>>,
8114 #[serde(rename = "filters")]
8115 #[serde(default, skip_serializing_if = "Option::is_none")]
8116 pub filters: Option<Box<PivotFilters>>,
8117 #[serde(rename = "rowHierarchiesUsage")]
8118 #[serde(default, skip_serializing_if = "Option::is_none")]
8119 pub row_hierarchies_usage: Option<Box<CTRowHierarchiesUsage>>,
8120 #[serde(rename = "colHierarchiesUsage")]
8121 #[serde(default, skip_serializing_if = "Option::is_none")]
8122 pub col_hierarchies_usage: Option<Box<CTColHierarchiesUsage>>,
8123 #[serde(rename = "extLst")]
8124 #[serde(default, skip_serializing_if = "Option::is_none")]
8125 pub extension_list: Option<Box<ExtensionList>>,
8126 #[cfg(feature = "extra-attrs")]
8128 #[serde(skip)]
8129 #[cfg(feature = "extra-attrs")]
8130 #[serde(default)]
8131 #[cfg(feature = "extra-attrs")]
8132 pub extra_attrs: std::collections::HashMap<String, String>,
8133 #[cfg(feature = "extra-children")]
8135 #[serde(skip)]
8136 #[cfg(feature = "extra-children")]
8137 pub extra_children: Vec<ooxml_xml::PositionedNode>,
8138}
8139
8140#[derive(Debug, Clone, Serialize, Deserialize)]
8141pub struct PivotLocation {
8142 #[serde(rename = "@ref")]
8143 pub reference: Reference,
8144 #[serde(rename = "@firstHeaderRow")]
8145 pub first_header_row: u32,
8146 #[serde(rename = "@firstDataRow")]
8147 pub first_data_row: u32,
8148 #[serde(rename = "@firstDataCol")]
8149 pub first_data_col: u32,
8150 #[serde(rename = "@rowPageCount")]
8151 #[serde(default, skip_serializing_if = "Option::is_none")]
8152 pub row_page_count: Option<u32>,
8153 #[serde(rename = "@colPageCount")]
8154 #[serde(default, skip_serializing_if = "Option::is_none")]
8155 pub col_page_count: Option<u32>,
8156 #[cfg(feature = "extra-attrs")]
8158 #[serde(skip)]
8159 #[cfg(feature = "extra-attrs")]
8160 #[serde(default)]
8161 #[cfg(feature = "extra-attrs")]
8162 pub extra_attrs: std::collections::HashMap<String, String>,
8163}
8164
8165#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8166pub struct PivotFields {
8167 #[serde(rename = "@count")]
8168 #[serde(default, skip_serializing_if = "Option::is_none")]
8169 pub count: Option<u32>,
8170 #[serde(rename = "pivotField")]
8171 #[serde(default, skip_serializing_if = "Vec::is_empty")]
8172 pub pivot_field: Vec<PivotField>,
8173 #[cfg(feature = "extra-attrs")]
8175 #[serde(skip)]
8176 #[cfg(feature = "extra-attrs")]
8177 #[serde(default)]
8178 #[cfg(feature = "extra-attrs")]
8179 pub extra_attrs: std::collections::HashMap<String, String>,
8180 #[cfg(feature = "extra-children")]
8182 #[serde(skip)]
8183 #[cfg(feature = "extra-children")]
8184 pub extra_children: Vec<ooxml_xml::PositionedNode>,
8185}
8186
8187#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8188pub struct PivotField {
8189 #[serde(rename = "@name")]
8190 #[serde(default, skip_serializing_if = "Option::is_none")]
8191 pub name: Option<XmlString>,
8192 #[serde(rename = "@axis")]
8193 #[serde(default, skip_serializing_if = "Option::is_none")]
8194 pub axis: Option<STAxis>,
8195 #[serde(rename = "@dataField")]
8196 #[serde(
8197 default,
8198 skip_serializing_if = "Option::is_none",
8199 with = "ooxml_xml::ooxml_bool"
8200 )]
8201 pub data_field: Option<bool>,
8202 #[serde(rename = "@subtotalCaption")]
8203 #[serde(default, skip_serializing_if = "Option::is_none")]
8204 pub subtotal_caption: Option<XmlString>,
8205 #[serde(rename = "@showDropDowns")]
8206 #[serde(
8207 default,
8208 skip_serializing_if = "Option::is_none",
8209 with = "ooxml_xml::ooxml_bool"
8210 )]
8211 pub show_drop_downs: Option<bool>,
8212 #[serde(rename = "@hiddenLevel")]
8213 #[serde(
8214 default,
8215 skip_serializing_if = "Option::is_none",
8216 with = "ooxml_xml::ooxml_bool"
8217 )]
8218 pub hidden_level: Option<bool>,
8219 #[serde(rename = "@uniqueMemberProperty")]
8220 #[serde(default, skip_serializing_if = "Option::is_none")]
8221 pub unique_member_property: Option<XmlString>,
8222 #[serde(rename = "@compact")]
8223 #[serde(
8224 default,
8225 skip_serializing_if = "Option::is_none",
8226 with = "ooxml_xml::ooxml_bool"
8227 )]
8228 pub compact: Option<bool>,
8229 #[serde(rename = "@allDrilled")]
8230 #[serde(
8231 default,
8232 skip_serializing_if = "Option::is_none",
8233 with = "ooxml_xml::ooxml_bool"
8234 )]
8235 pub all_drilled: Option<bool>,
8236 #[serde(rename = "@numFmtId")]
8237 #[serde(default, skip_serializing_if = "Option::is_none")]
8238 pub number_format_id: Option<STNumFmtId>,
8239 #[serde(rename = "@outline")]
8240 #[serde(
8241 default,
8242 skip_serializing_if = "Option::is_none",
8243 with = "ooxml_xml::ooxml_bool"
8244 )]
8245 pub outline: Option<bool>,
8246 #[serde(rename = "@subtotalTop")]
8247 #[serde(
8248 default,
8249 skip_serializing_if = "Option::is_none",
8250 with = "ooxml_xml::ooxml_bool"
8251 )]
8252 pub subtotal_top: Option<bool>,
8253 #[serde(rename = "@dragToRow")]
8254 #[serde(
8255 default,
8256 skip_serializing_if = "Option::is_none",
8257 with = "ooxml_xml::ooxml_bool"
8258 )]
8259 pub drag_to_row: Option<bool>,
8260 #[serde(rename = "@dragToCol")]
8261 #[serde(
8262 default,
8263 skip_serializing_if = "Option::is_none",
8264 with = "ooxml_xml::ooxml_bool"
8265 )]
8266 pub drag_to_col: Option<bool>,
8267 #[serde(rename = "@multipleItemSelectionAllowed")]
8268 #[serde(
8269 default,
8270 skip_serializing_if = "Option::is_none",
8271 with = "ooxml_xml::ooxml_bool"
8272 )]
8273 pub multiple_item_selection_allowed: Option<bool>,
8274 #[serde(rename = "@dragToPage")]
8275 #[serde(
8276 default,
8277 skip_serializing_if = "Option::is_none",
8278 with = "ooxml_xml::ooxml_bool"
8279 )]
8280 pub drag_to_page: Option<bool>,
8281 #[serde(rename = "@dragToData")]
8282 #[serde(
8283 default,
8284 skip_serializing_if = "Option::is_none",
8285 with = "ooxml_xml::ooxml_bool"
8286 )]
8287 pub drag_to_data: Option<bool>,
8288 #[serde(rename = "@dragOff")]
8289 #[serde(
8290 default,
8291 skip_serializing_if = "Option::is_none",
8292 with = "ooxml_xml::ooxml_bool"
8293 )]
8294 pub drag_off: Option<bool>,
8295 #[serde(rename = "@showAll")]
8296 #[serde(
8297 default,
8298 skip_serializing_if = "Option::is_none",
8299 with = "ooxml_xml::ooxml_bool"
8300 )]
8301 pub show_all: Option<bool>,
8302 #[serde(rename = "@insertBlankRow")]
8303 #[serde(
8304 default,
8305 skip_serializing_if = "Option::is_none",
8306 with = "ooxml_xml::ooxml_bool"
8307 )]
8308 pub insert_blank_row: Option<bool>,
8309 #[serde(rename = "@serverField")]
8310 #[serde(
8311 default,
8312 skip_serializing_if = "Option::is_none",
8313 with = "ooxml_xml::ooxml_bool"
8314 )]
8315 pub server_field: Option<bool>,
8316 #[serde(rename = "@insertPageBreak")]
8317 #[serde(
8318 default,
8319 skip_serializing_if = "Option::is_none",
8320 with = "ooxml_xml::ooxml_bool"
8321 )]
8322 pub insert_page_break: Option<bool>,
8323 #[serde(rename = "@autoShow")]
8324 #[serde(
8325 default,
8326 skip_serializing_if = "Option::is_none",
8327 with = "ooxml_xml::ooxml_bool"
8328 )]
8329 pub auto_show: Option<bool>,
8330 #[serde(rename = "@topAutoShow")]
8331 #[serde(
8332 default,
8333 skip_serializing_if = "Option::is_none",
8334 with = "ooxml_xml::ooxml_bool"
8335 )]
8336 pub top_auto_show: Option<bool>,
8337 #[serde(rename = "@hideNewItems")]
8338 #[serde(
8339 default,
8340 skip_serializing_if = "Option::is_none",
8341 with = "ooxml_xml::ooxml_bool"
8342 )]
8343 pub hide_new_items: Option<bool>,
8344 #[serde(rename = "@measureFilter")]
8345 #[serde(
8346 default,
8347 skip_serializing_if = "Option::is_none",
8348 with = "ooxml_xml::ooxml_bool"
8349 )]
8350 pub measure_filter: Option<bool>,
8351 #[serde(rename = "@includeNewItemsInFilter")]
8352 #[serde(
8353 default,
8354 skip_serializing_if = "Option::is_none",
8355 with = "ooxml_xml::ooxml_bool"
8356 )]
8357 pub include_new_items_in_filter: Option<bool>,
8358 #[serde(rename = "@itemPageCount")]
8359 #[serde(default, skip_serializing_if = "Option::is_none")]
8360 pub item_page_count: Option<u32>,
8361 #[serde(rename = "@sortType")]
8362 #[serde(default, skip_serializing_if = "Option::is_none")]
8363 pub sort_type: Option<STFieldSortType>,
8364 #[serde(rename = "@dataSourceSort")]
8365 #[serde(
8366 default,
8367 skip_serializing_if = "Option::is_none",
8368 with = "ooxml_xml::ooxml_bool"
8369 )]
8370 pub data_source_sort: Option<bool>,
8371 #[serde(rename = "@nonAutoSortDefault")]
8372 #[serde(
8373 default,
8374 skip_serializing_if = "Option::is_none",
8375 with = "ooxml_xml::ooxml_bool"
8376 )]
8377 pub non_auto_sort_default: Option<bool>,
8378 #[serde(rename = "@rankBy")]
8379 #[serde(default, skip_serializing_if = "Option::is_none")]
8380 pub rank_by: Option<u32>,
8381 #[serde(rename = "@defaultSubtotal")]
8382 #[serde(
8383 default,
8384 skip_serializing_if = "Option::is_none",
8385 with = "ooxml_xml::ooxml_bool"
8386 )]
8387 pub default_subtotal: Option<bool>,
8388 #[serde(rename = "@sumSubtotal")]
8389 #[serde(
8390 default,
8391 skip_serializing_if = "Option::is_none",
8392 with = "ooxml_xml::ooxml_bool"
8393 )]
8394 pub sum_subtotal: Option<bool>,
8395 #[serde(rename = "@countASubtotal")]
8396 #[serde(
8397 default,
8398 skip_serializing_if = "Option::is_none",
8399 with = "ooxml_xml::ooxml_bool"
8400 )]
8401 pub count_a_subtotal: Option<bool>,
8402 #[serde(rename = "@avgSubtotal")]
8403 #[serde(
8404 default,
8405 skip_serializing_if = "Option::is_none",
8406 with = "ooxml_xml::ooxml_bool"
8407 )]
8408 pub avg_subtotal: Option<bool>,
8409 #[serde(rename = "@maxSubtotal")]
8410 #[serde(
8411 default,
8412 skip_serializing_if = "Option::is_none",
8413 with = "ooxml_xml::ooxml_bool"
8414 )]
8415 pub max_subtotal: Option<bool>,
8416 #[serde(rename = "@minSubtotal")]
8417 #[serde(
8418 default,
8419 skip_serializing_if = "Option::is_none",
8420 with = "ooxml_xml::ooxml_bool"
8421 )]
8422 pub min_subtotal: Option<bool>,
8423 #[serde(rename = "@productSubtotal")]
8424 #[serde(
8425 default,
8426 skip_serializing_if = "Option::is_none",
8427 with = "ooxml_xml::ooxml_bool"
8428 )]
8429 pub product_subtotal: Option<bool>,
8430 #[serde(rename = "@countSubtotal")]
8431 #[serde(
8432 default,
8433 skip_serializing_if = "Option::is_none",
8434 with = "ooxml_xml::ooxml_bool"
8435 )]
8436 pub count_subtotal: Option<bool>,
8437 #[serde(rename = "@stdDevSubtotal")]
8438 #[serde(
8439 default,
8440 skip_serializing_if = "Option::is_none",
8441 with = "ooxml_xml::ooxml_bool"
8442 )]
8443 pub std_dev_subtotal: Option<bool>,
8444 #[serde(rename = "@stdDevPSubtotal")]
8445 #[serde(
8446 default,
8447 skip_serializing_if = "Option::is_none",
8448 with = "ooxml_xml::ooxml_bool"
8449 )]
8450 pub std_dev_p_subtotal: Option<bool>,
8451 #[serde(rename = "@varSubtotal")]
8452 #[serde(
8453 default,
8454 skip_serializing_if = "Option::is_none",
8455 with = "ooxml_xml::ooxml_bool"
8456 )]
8457 pub var_subtotal: Option<bool>,
8458 #[serde(rename = "@varPSubtotal")]
8459 #[serde(
8460 default,
8461 skip_serializing_if = "Option::is_none",
8462 with = "ooxml_xml::ooxml_bool"
8463 )]
8464 pub var_p_subtotal: Option<bool>,
8465 #[serde(rename = "@showPropCell")]
8466 #[serde(
8467 default,
8468 skip_serializing_if = "Option::is_none",
8469 with = "ooxml_xml::ooxml_bool"
8470 )]
8471 pub show_prop_cell: Option<bool>,
8472 #[serde(rename = "@showPropTip")]
8473 #[serde(
8474 default,
8475 skip_serializing_if = "Option::is_none",
8476 with = "ooxml_xml::ooxml_bool"
8477 )]
8478 pub show_prop_tip: Option<bool>,
8479 #[serde(rename = "@showPropAsCaption")]
8480 #[serde(
8481 default,
8482 skip_serializing_if = "Option::is_none",
8483 with = "ooxml_xml::ooxml_bool"
8484 )]
8485 pub show_prop_as_caption: Option<bool>,
8486 #[serde(rename = "@defaultAttributeDrillState")]
8487 #[serde(
8488 default,
8489 skip_serializing_if = "Option::is_none",
8490 with = "ooxml_xml::ooxml_bool"
8491 )]
8492 pub default_attribute_drill_state: Option<bool>,
8493 #[serde(rename = "items")]
8494 #[serde(default, skip_serializing_if = "Option::is_none")]
8495 pub items: Option<Box<PivotItems>>,
8496 #[serde(rename = "autoSortScope")]
8497 #[serde(default, skip_serializing_if = "Option::is_none")]
8498 pub auto_sort_scope: Option<AutoSortScopeElement>,
8499 #[serde(rename = "extLst")]
8500 #[serde(default, skip_serializing_if = "Option::is_none")]
8501 pub extension_list: Option<Box<ExtensionList>>,
8502 #[cfg(feature = "extra-attrs")]
8504 #[serde(skip)]
8505 #[cfg(feature = "extra-attrs")]
8506 #[serde(default)]
8507 #[cfg(feature = "extra-attrs")]
8508 pub extra_attrs: std::collections::HashMap<String, String>,
8509 #[cfg(feature = "extra-children")]
8511 #[serde(skip)]
8512 #[cfg(feature = "extra-children")]
8513 pub extra_children: Vec<ooxml_xml::PositionedNode>,
8514}
8515
8516pub type AutoSortScopeElement = Box<PivotArea>;
8517
8518#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8519pub struct PivotItems {
8520 #[serde(rename = "@count")]
8521 #[serde(default, skip_serializing_if = "Option::is_none")]
8522 pub count: Option<u32>,
8523 #[serde(rename = "item")]
8524 #[serde(default, skip_serializing_if = "Vec::is_empty")]
8525 pub item: Vec<PivotItem>,
8526 #[cfg(feature = "extra-attrs")]
8528 #[serde(skip)]
8529 #[cfg(feature = "extra-attrs")]
8530 #[serde(default)]
8531 #[cfg(feature = "extra-attrs")]
8532 pub extra_attrs: std::collections::HashMap<String, String>,
8533 #[cfg(feature = "extra-children")]
8535 #[serde(skip)]
8536 #[cfg(feature = "extra-children")]
8537 pub extra_children: Vec<ooxml_xml::PositionedNode>,
8538}
8539
8540#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8541pub struct PivotItem {
8542 #[serde(rename = "@n")]
8543 #[serde(default, skip_serializing_if = "Option::is_none")]
8544 pub n: Option<XmlString>,
8545 #[serde(rename = "@t")]
8546 #[serde(default, skip_serializing_if = "Option::is_none")]
8547 pub cell_type: Option<STItemType>,
8548 #[serde(rename = "@h")]
8549 #[serde(
8550 default,
8551 skip_serializing_if = "Option::is_none",
8552 with = "ooxml_xml::ooxml_bool"
8553 )]
8554 pub height: Option<bool>,
8555 #[serde(rename = "@s")]
8556 #[serde(
8557 default,
8558 skip_serializing_if = "Option::is_none",
8559 with = "ooxml_xml::ooxml_bool"
8560 )]
8561 pub style_index: Option<bool>,
8562 #[serde(rename = "@sd")]
8563 #[serde(
8564 default,
8565 skip_serializing_if = "Option::is_none",
8566 with = "ooxml_xml::ooxml_bool"
8567 )]
8568 pub sd: Option<bool>,
8569 #[serde(rename = "@f")]
8570 #[serde(
8571 default,
8572 skip_serializing_if = "Option::is_none",
8573 with = "ooxml_xml::ooxml_bool"
8574 )]
8575 pub formula: Option<bool>,
8576 #[serde(rename = "@m")]
8577 #[serde(
8578 default,
8579 skip_serializing_if = "Option::is_none",
8580 with = "ooxml_xml::ooxml_bool"
8581 )]
8582 pub m: Option<bool>,
8583 #[serde(rename = "@c")]
8584 #[serde(
8585 default,
8586 skip_serializing_if = "Option::is_none",
8587 with = "ooxml_xml::ooxml_bool"
8588 )]
8589 pub cells: Option<bool>,
8590 #[serde(rename = "@x")]
8591 #[serde(default, skip_serializing_if = "Option::is_none")]
8592 pub x: Option<u32>,
8593 #[serde(rename = "@d")]
8594 #[serde(
8595 default,
8596 skip_serializing_if = "Option::is_none",
8597 with = "ooxml_xml::ooxml_bool"
8598 )]
8599 pub d: Option<bool>,
8600 #[serde(rename = "@e")]
8601 #[serde(
8602 default,
8603 skip_serializing_if = "Option::is_none",
8604 with = "ooxml_xml::ooxml_bool"
8605 )]
8606 pub e: Option<bool>,
8607 #[cfg(feature = "extra-attrs")]
8609 #[serde(skip)]
8610 #[cfg(feature = "extra-attrs")]
8611 #[serde(default)]
8612 #[cfg(feature = "extra-attrs")]
8613 pub extra_attrs: std::collections::HashMap<String, String>,
8614}
8615
8616#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8617pub struct PageFields {
8618 #[serde(rename = "@count")]
8619 #[serde(default, skip_serializing_if = "Option::is_none")]
8620 pub count: Option<u32>,
8621 #[serde(rename = "pageField")]
8622 #[serde(default, skip_serializing_if = "Vec::is_empty")]
8623 pub page_field: Vec<PageField>,
8624 #[cfg(feature = "extra-attrs")]
8626 #[serde(skip)]
8627 #[cfg(feature = "extra-attrs")]
8628 #[serde(default)]
8629 #[cfg(feature = "extra-attrs")]
8630 pub extra_attrs: std::collections::HashMap<String, String>,
8631 #[cfg(feature = "extra-children")]
8633 #[serde(skip)]
8634 #[cfg(feature = "extra-children")]
8635 pub extra_children: Vec<ooxml_xml::PositionedNode>,
8636}
8637
8638#[derive(Debug, Clone, Serialize, Deserialize)]
8639pub struct PageField {
8640 #[serde(rename = "@fld")]
8641 pub fld: i32,
8642 #[serde(rename = "@item")]
8643 #[serde(default, skip_serializing_if = "Option::is_none")]
8644 pub item: Option<u32>,
8645 #[serde(rename = "@hier")]
8646 #[serde(default, skip_serializing_if = "Option::is_none")]
8647 pub hier: Option<i32>,
8648 #[serde(rename = "@name")]
8649 #[serde(default, skip_serializing_if = "Option::is_none")]
8650 pub name: Option<XmlString>,
8651 #[serde(rename = "@cap")]
8652 #[serde(default, skip_serializing_if = "Option::is_none")]
8653 pub cap: Option<XmlString>,
8654 #[serde(rename = "extLst")]
8655 #[serde(default, skip_serializing_if = "Option::is_none")]
8656 pub extension_list: Option<Box<ExtensionList>>,
8657 #[cfg(feature = "extra-attrs")]
8659 #[serde(skip)]
8660 #[cfg(feature = "extra-attrs")]
8661 #[serde(default)]
8662 #[cfg(feature = "extra-attrs")]
8663 pub extra_attrs: std::collections::HashMap<String, String>,
8664 #[cfg(feature = "extra-children")]
8666 #[serde(skip)]
8667 #[cfg(feature = "extra-children")]
8668 pub extra_children: Vec<ooxml_xml::PositionedNode>,
8669}
8670
8671#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8672pub struct DataFields {
8673 #[serde(rename = "@count")]
8674 #[serde(default, skip_serializing_if = "Option::is_none")]
8675 pub count: Option<u32>,
8676 #[serde(rename = "dataField")]
8677 #[serde(default, skip_serializing_if = "Vec::is_empty")]
8678 pub data_field: Vec<DataField>,
8679 #[cfg(feature = "extra-attrs")]
8681 #[serde(skip)]
8682 #[cfg(feature = "extra-attrs")]
8683 #[serde(default)]
8684 #[cfg(feature = "extra-attrs")]
8685 pub extra_attrs: std::collections::HashMap<String, String>,
8686 #[cfg(feature = "extra-children")]
8688 #[serde(skip)]
8689 #[cfg(feature = "extra-children")]
8690 pub extra_children: Vec<ooxml_xml::PositionedNode>,
8691}
8692
8693#[derive(Debug, Clone, Serialize, Deserialize)]
8694pub struct DataField {
8695 #[serde(rename = "@name")]
8696 #[serde(default, skip_serializing_if = "Option::is_none")]
8697 pub name: Option<XmlString>,
8698 #[serde(rename = "@fld")]
8699 pub fld: u32,
8700 #[serde(rename = "@subtotal")]
8701 #[serde(default, skip_serializing_if = "Option::is_none")]
8702 pub subtotal: Option<STDataConsolidateFunction>,
8703 #[serde(rename = "@showDataAs")]
8704 #[serde(default, skip_serializing_if = "Option::is_none")]
8705 pub show_data_as: Option<STShowDataAs>,
8706 #[serde(rename = "@baseField")]
8707 #[serde(default, skip_serializing_if = "Option::is_none")]
8708 pub base_field: Option<i32>,
8709 #[serde(rename = "@baseItem")]
8710 #[serde(default, skip_serializing_if = "Option::is_none")]
8711 pub base_item: Option<u32>,
8712 #[serde(rename = "@numFmtId")]
8713 #[serde(default, skip_serializing_if = "Option::is_none")]
8714 pub number_format_id: Option<STNumFmtId>,
8715 #[serde(rename = "extLst")]
8716 #[serde(default, skip_serializing_if = "Option::is_none")]
8717 pub extension_list: Option<Box<ExtensionList>>,
8718 #[cfg(feature = "extra-attrs")]
8720 #[serde(skip)]
8721 #[cfg(feature = "extra-attrs")]
8722 #[serde(default)]
8723 #[cfg(feature = "extra-attrs")]
8724 pub extra_attrs: std::collections::HashMap<String, String>,
8725 #[cfg(feature = "extra-children")]
8727 #[serde(skip)]
8728 #[cfg(feature = "extra-children")]
8729 pub extra_children: Vec<ooxml_xml::PositionedNode>,
8730}
8731
8732#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8733pub struct CTRowItems {
8734 #[serde(rename = "@count")]
8735 #[serde(default, skip_serializing_if = "Option::is_none")]
8736 pub count: Option<u32>,
8737 #[serde(rename = "i")]
8738 #[serde(default, skip_serializing_if = "Vec::is_empty")]
8739 pub i: Vec<CTI>,
8740 #[cfg(feature = "extra-attrs")]
8742 #[serde(skip)]
8743 #[cfg(feature = "extra-attrs")]
8744 #[serde(default)]
8745 #[cfg(feature = "extra-attrs")]
8746 pub extra_attrs: std::collections::HashMap<String, String>,
8747 #[cfg(feature = "extra-children")]
8749 #[serde(skip)]
8750 #[cfg(feature = "extra-children")]
8751 pub extra_children: Vec<ooxml_xml::PositionedNode>,
8752}
8753
8754#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8755pub struct CTColItems {
8756 #[serde(rename = "@count")]
8757 #[serde(default, skip_serializing_if = "Option::is_none")]
8758 pub count: Option<u32>,
8759 #[serde(rename = "i")]
8760 #[serde(default, skip_serializing_if = "Vec::is_empty")]
8761 pub i: Vec<CTI>,
8762 #[cfg(feature = "extra-attrs")]
8764 #[serde(skip)]
8765 #[cfg(feature = "extra-attrs")]
8766 #[serde(default)]
8767 #[cfg(feature = "extra-attrs")]
8768 pub extra_attrs: std::collections::HashMap<String, String>,
8769 #[cfg(feature = "extra-children")]
8771 #[serde(skip)]
8772 #[cfg(feature = "extra-children")]
8773 pub extra_children: Vec<ooxml_xml::PositionedNode>,
8774}
8775
8776#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8777pub struct CTI {
8778 #[serde(rename = "@t")]
8779 #[serde(default, skip_serializing_if = "Option::is_none")]
8780 pub cell_type: Option<STItemType>,
8781 #[serde(rename = "@r")]
8782 #[serde(default, skip_serializing_if = "Option::is_none")]
8783 pub reference: Option<u32>,
8784 #[serde(rename = "@i")]
8785 #[serde(default, skip_serializing_if = "Option::is_none")]
8786 pub i: Option<u32>,
8787 #[serde(rename = "x")]
8788 #[serde(default, skip_serializing_if = "Vec::is_empty")]
8789 pub x: Vec<CTX>,
8790 #[cfg(feature = "extra-attrs")]
8792 #[serde(skip)]
8793 #[cfg(feature = "extra-attrs")]
8794 #[serde(default)]
8795 #[cfg(feature = "extra-attrs")]
8796 pub extra_attrs: std::collections::HashMap<String, String>,
8797 #[cfg(feature = "extra-children")]
8799 #[serde(skip)]
8800 #[cfg(feature = "extra-children")]
8801 pub extra_children: Vec<ooxml_xml::PositionedNode>,
8802}
8803
8804#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8805pub struct CTX {
8806 #[serde(rename = "@v")]
8807 #[serde(default, skip_serializing_if = "Option::is_none")]
8808 pub value: Option<i32>,
8809 #[cfg(feature = "extra-attrs")]
8811 #[serde(skip)]
8812 #[cfg(feature = "extra-attrs")]
8813 #[serde(default)]
8814 #[cfg(feature = "extra-attrs")]
8815 pub extra_attrs: std::collections::HashMap<String, String>,
8816}
8817
8818#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8819pub struct RowFields {
8820 #[serde(rename = "@count")]
8821 #[serde(default, skip_serializing_if = "Option::is_none")]
8822 pub count: Option<u32>,
8823 #[serde(rename = "field")]
8824 #[serde(default, skip_serializing_if = "Vec::is_empty")]
8825 pub field: Vec<CTField>,
8826 #[cfg(feature = "extra-attrs")]
8828 #[serde(skip)]
8829 #[cfg(feature = "extra-attrs")]
8830 #[serde(default)]
8831 #[cfg(feature = "extra-attrs")]
8832 pub extra_attrs: std::collections::HashMap<String, String>,
8833 #[cfg(feature = "extra-children")]
8835 #[serde(skip)]
8836 #[cfg(feature = "extra-children")]
8837 pub extra_children: Vec<ooxml_xml::PositionedNode>,
8838}
8839
8840#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8841pub struct ColFields {
8842 #[serde(rename = "@count")]
8843 #[serde(default, skip_serializing_if = "Option::is_none")]
8844 pub count: Option<u32>,
8845 #[serde(rename = "field")]
8846 #[serde(default, skip_serializing_if = "Vec::is_empty")]
8847 pub field: Vec<CTField>,
8848 #[cfg(feature = "extra-attrs")]
8850 #[serde(skip)]
8851 #[cfg(feature = "extra-attrs")]
8852 #[serde(default)]
8853 #[cfg(feature = "extra-attrs")]
8854 pub extra_attrs: std::collections::HashMap<String, String>,
8855 #[cfg(feature = "extra-children")]
8857 #[serde(skip)]
8858 #[cfg(feature = "extra-children")]
8859 pub extra_children: Vec<ooxml_xml::PositionedNode>,
8860}
8861
8862#[derive(Debug, Clone, Serialize, Deserialize)]
8863pub struct CTField {
8864 #[serde(rename = "@x")]
8865 pub x: i32,
8866 #[cfg(feature = "extra-attrs")]
8868 #[serde(skip)]
8869 #[cfg(feature = "extra-attrs")]
8870 #[serde(default)]
8871 #[cfg(feature = "extra-attrs")]
8872 pub extra_attrs: std::collections::HashMap<String, String>,
8873}
8874
8875#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8876pub struct CTFormats {
8877 #[serde(rename = "@count")]
8878 #[serde(default, skip_serializing_if = "Option::is_none")]
8879 pub count: Option<u32>,
8880 #[serde(rename = "format")]
8881 #[serde(default, skip_serializing_if = "Vec::is_empty")]
8882 pub format: Vec<CTFormat>,
8883 #[cfg(feature = "extra-attrs")]
8885 #[serde(skip)]
8886 #[cfg(feature = "extra-attrs")]
8887 #[serde(default)]
8888 #[cfg(feature = "extra-attrs")]
8889 pub extra_attrs: std::collections::HashMap<String, String>,
8890 #[cfg(feature = "extra-children")]
8892 #[serde(skip)]
8893 #[cfg(feature = "extra-children")]
8894 pub extra_children: Vec<ooxml_xml::PositionedNode>,
8895}
8896
8897#[derive(Debug, Clone, Serialize, Deserialize)]
8898pub struct CTFormat {
8899 #[serde(rename = "@action")]
8900 #[serde(default, skip_serializing_if = "Option::is_none")]
8901 pub action: Option<STFormatAction>,
8902 #[serde(rename = "@dxfId")]
8903 #[serde(default, skip_serializing_if = "Option::is_none")]
8904 pub dxf_id: Option<STDxfId>,
8905 #[serde(rename = "pivotArea")]
8906 pub pivot_area: Box<PivotArea>,
8907 #[serde(rename = "extLst")]
8908 #[serde(default, skip_serializing_if = "Option::is_none")]
8909 pub extension_list: Option<Box<ExtensionList>>,
8910 #[cfg(feature = "extra-attrs")]
8912 #[serde(skip)]
8913 #[cfg(feature = "extra-attrs")]
8914 #[serde(default)]
8915 #[cfg(feature = "extra-attrs")]
8916 pub extra_attrs: std::collections::HashMap<String, String>,
8917 #[cfg(feature = "extra-children")]
8919 #[serde(skip)]
8920 #[cfg(feature = "extra-children")]
8921 pub extra_children: Vec<ooxml_xml::PositionedNode>,
8922}
8923
8924#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8925pub struct CTConditionalFormats {
8926 #[serde(rename = "@count")]
8927 #[serde(default, skip_serializing_if = "Option::is_none")]
8928 pub count: Option<u32>,
8929 #[serde(rename = "conditionalFormat")]
8930 #[serde(default, skip_serializing_if = "Vec::is_empty")]
8931 pub conditional_format: Vec<CTConditionalFormat>,
8932 #[cfg(feature = "extra-attrs")]
8934 #[serde(skip)]
8935 #[cfg(feature = "extra-attrs")]
8936 #[serde(default)]
8937 #[cfg(feature = "extra-attrs")]
8938 pub extra_attrs: std::collections::HashMap<String, String>,
8939 #[cfg(feature = "extra-children")]
8941 #[serde(skip)]
8942 #[cfg(feature = "extra-children")]
8943 pub extra_children: Vec<ooxml_xml::PositionedNode>,
8944}
8945
8946#[derive(Debug, Clone, Serialize, Deserialize)]
8947pub struct CTConditionalFormat {
8948 #[serde(rename = "@scope")]
8949 #[serde(default, skip_serializing_if = "Option::is_none")]
8950 pub scope: Option<STScope>,
8951 #[serde(rename = "@type")]
8952 #[serde(default, skip_serializing_if = "Option::is_none")]
8953 pub r#type: Option<STType>,
8954 #[serde(rename = "@priority")]
8955 pub priority: u32,
8956 #[serde(rename = "pivotAreas")]
8957 pub pivot_areas: Box<PivotAreas>,
8958 #[serde(rename = "extLst")]
8959 #[serde(default, skip_serializing_if = "Option::is_none")]
8960 pub extension_list: Option<Box<ExtensionList>>,
8961 #[cfg(feature = "extra-attrs")]
8963 #[serde(skip)]
8964 #[cfg(feature = "extra-attrs")]
8965 #[serde(default)]
8966 #[cfg(feature = "extra-attrs")]
8967 pub extra_attrs: std::collections::HashMap<String, String>,
8968 #[cfg(feature = "extra-children")]
8970 #[serde(skip)]
8971 #[cfg(feature = "extra-children")]
8972 pub extra_children: Vec<ooxml_xml::PositionedNode>,
8973}
8974
8975#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8976pub struct PivotAreas {
8977 #[serde(rename = "@count")]
8978 #[serde(default, skip_serializing_if = "Option::is_none")]
8979 pub count: Option<u32>,
8980 #[serde(rename = "pivotArea")]
8981 #[serde(default, skip_serializing_if = "Vec::is_empty")]
8982 pub pivot_area: Vec<PivotArea>,
8983 #[cfg(feature = "extra-attrs")]
8985 #[serde(skip)]
8986 #[cfg(feature = "extra-attrs")]
8987 #[serde(default)]
8988 #[cfg(feature = "extra-attrs")]
8989 pub extra_attrs: std::collections::HashMap<String, String>,
8990 #[cfg(feature = "extra-children")]
8992 #[serde(skip)]
8993 #[cfg(feature = "extra-children")]
8994 pub extra_children: Vec<ooxml_xml::PositionedNode>,
8995}
8996
8997#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8998pub struct CTChartFormats {
8999 #[serde(rename = "@count")]
9000 #[serde(default, skip_serializing_if = "Option::is_none")]
9001 pub count: Option<u32>,
9002 #[serde(rename = "chartFormat")]
9003 #[serde(default, skip_serializing_if = "Vec::is_empty")]
9004 pub chart_format: Vec<CTChartFormat>,
9005 #[cfg(feature = "extra-attrs")]
9007 #[serde(skip)]
9008 #[cfg(feature = "extra-attrs")]
9009 #[serde(default)]
9010 #[cfg(feature = "extra-attrs")]
9011 pub extra_attrs: std::collections::HashMap<String, String>,
9012 #[cfg(feature = "extra-children")]
9014 #[serde(skip)]
9015 #[cfg(feature = "extra-children")]
9016 pub extra_children: Vec<ooxml_xml::PositionedNode>,
9017}
9018
9019#[derive(Debug, Clone, Serialize, Deserialize)]
9020pub struct CTChartFormat {
9021 #[serde(rename = "@chart")]
9022 pub chart: u32,
9023 #[serde(rename = "@format")]
9024 pub format: u32,
9025 #[serde(rename = "@series")]
9026 #[serde(
9027 default,
9028 skip_serializing_if = "Option::is_none",
9029 with = "ooxml_xml::ooxml_bool"
9030 )]
9031 pub series: Option<bool>,
9032 #[serde(rename = "pivotArea")]
9033 pub pivot_area: Box<PivotArea>,
9034 #[cfg(feature = "extra-attrs")]
9036 #[serde(skip)]
9037 #[cfg(feature = "extra-attrs")]
9038 #[serde(default)]
9039 #[cfg(feature = "extra-attrs")]
9040 pub extra_attrs: std::collections::HashMap<String, String>,
9041 #[cfg(feature = "extra-children")]
9043 #[serde(skip)]
9044 #[cfg(feature = "extra-children")]
9045 pub extra_children: Vec<ooxml_xml::PositionedNode>,
9046}
9047
9048#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9049pub struct CTPivotHierarchies {
9050 #[serde(rename = "@count")]
9051 #[serde(default, skip_serializing_if = "Option::is_none")]
9052 pub count: Option<u32>,
9053 #[serde(rename = "pivotHierarchy")]
9054 #[serde(default, skip_serializing_if = "Vec::is_empty")]
9055 pub pivot_hierarchy: Vec<CTPivotHierarchy>,
9056 #[cfg(feature = "extra-attrs")]
9058 #[serde(skip)]
9059 #[cfg(feature = "extra-attrs")]
9060 #[serde(default)]
9061 #[cfg(feature = "extra-attrs")]
9062 pub extra_attrs: std::collections::HashMap<String, String>,
9063 #[cfg(feature = "extra-children")]
9065 #[serde(skip)]
9066 #[cfg(feature = "extra-children")]
9067 pub extra_children: Vec<ooxml_xml::PositionedNode>,
9068}
9069
9070#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9071pub struct CTPivotHierarchy {
9072 #[serde(rename = "@outline")]
9073 #[serde(
9074 default,
9075 skip_serializing_if = "Option::is_none",
9076 with = "ooxml_xml::ooxml_bool"
9077 )]
9078 pub outline: Option<bool>,
9079 #[serde(rename = "@multipleItemSelectionAllowed")]
9080 #[serde(
9081 default,
9082 skip_serializing_if = "Option::is_none",
9083 with = "ooxml_xml::ooxml_bool"
9084 )]
9085 pub multiple_item_selection_allowed: Option<bool>,
9086 #[serde(rename = "@subtotalTop")]
9087 #[serde(
9088 default,
9089 skip_serializing_if = "Option::is_none",
9090 with = "ooxml_xml::ooxml_bool"
9091 )]
9092 pub subtotal_top: Option<bool>,
9093 #[serde(rename = "@showInFieldList")]
9094 #[serde(
9095 default,
9096 skip_serializing_if = "Option::is_none",
9097 with = "ooxml_xml::ooxml_bool"
9098 )]
9099 pub show_in_field_list: Option<bool>,
9100 #[serde(rename = "@dragToRow")]
9101 #[serde(
9102 default,
9103 skip_serializing_if = "Option::is_none",
9104 with = "ooxml_xml::ooxml_bool"
9105 )]
9106 pub drag_to_row: Option<bool>,
9107 #[serde(rename = "@dragToCol")]
9108 #[serde(
9109 default,
9110 skip_serializing_if = "Option::is_none",
9111 with = "ooxml_xml::ooxml_bool"
9112 )]
9113 pub drag_to_col: Option<bool>,
9114 #[serde(rename = "@dragToPage")]
9115 #[serde(
9116 default,
9117 skip_serializing_if = "Option::is_none",
9118 with = "ooxml_xml::ooxml_bool"
9119 )]
9120 pub drag_to_page: Option<bool>,
9121 #[serde(rename = "@dragToData")]
9122 #[serde(
9123 default,
9124 skip_serializing_if = "Option::is_none",
9125 with = "ooxml_xml::ooxml_bool"
9126 )]
9127 pub drag_to_data: Option<bool>,
9128 #[serde(rename = "@dragOff")]
9129 #[serde(
9130 default,
9131 skip_serializing_if = "Option::is_none",
9132 with = "ooxml_xml::ooxml_bool"
9133 )]
9134 pub drag_off: Option<bool>,
9135 #[serde(rename = "@includeNewItemsInFilter")]
9136 #[serde(
9137 default,
9138 skip_serializing_if = "Option::is_none",
9139 with = "ooxml_xml::ooxml_bool"
9140 )]
9141 pub include_new_items_in_filter: Option<bool>,
9142 #[serde(rename = "@caption")]
9143 #[serde(default, skip_serializing_if = "Option::is_none")]
9144 pub caption: Option<XmlString>,
9145 #[serde(rename = "mps")]
9146 #[serde(default, skip_serializing_if = "Option::is_none")]
9147 pub mps: Option<Box<CTMemberProperties>>,
9148 #[serde(rename = "members")]
9149 #[serde(default, skip_serializing_if = "Vec::is_empty")]
9150 pub members: Vec<CTMembers>,
9151 #[serde(rename = "extLst")]
9152 #[serde(default, skip_serializing_if = "Option::is_none")]
9153 pub extension_list: Option<Box<ExtensionList>>,
9154 #[cfg(feature = "extra-attrs")]
9156 #[serde(skip)]
9157 #[cfg(feature = "extra-attrs")]
9158 #[serde(default)]
9159 #[cfg(feature = "extra-attrs")]
9160 pub extra_attrs: std::collections::HashMap<String, String>,
9161 #[cfg(feature = "extra-children")]
9163 #[serde(skip)]
9164 #[cfg(feature = "extra-children")]
9165 pub extra_children: Vec<ooxml_xml::PositionedNode>,
9166}
9167
9168#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9169pub struct CTRowHierarchiesUsage {
9170 #[serde(rename = "@count")]
9171 #[serde(default, skip_serializing_if = "Option::is_none")]
9172 pub count: Option<u32>,
9173 #[serde(rename = "rowHierarchyUsage")]
9174 #[serde(default, skip_serializing_if = "Vec::is_empty")]
9175 pub row_hierarchy_usage: Vec<CTHierarchyUsage>,
9176 #[cfg(feature = "extra-attrs")]
9178 #[serde(skip)]
9179 #[cfg(feature = "extra-attrs")]
9180 #[serde(default)]
9181 #[cfg(feature = "extra-attrs")]
9182 pub extra_attrs: std::collections::HashMap<String, String>,
9183 #[cfg(feature = "extra-children")]
9185 #[serde(skip)]
9186 #[cfg(feature = "extra-children")]
9187 pub extra_children: Vec<ooxml_xml::PositionedNode>,
9188}
9189
9190#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9191pub struct CTColHierarchiesUsage {
9192 #[serde(rename = "@count")]
9193 #[serde(default, skip_serializing_if = "Option::is_none")]
9194 pub count: Option<u32>,
9195 #[serde(rename = "colHierarchyUsage")]
9196 #[serde(default, skip_serializing_if = "Vec::is_empty")]
9197 pub col_hierarchy_usage: Vec<CTHierarchyUsage>,
9198 #[cfg(feature = "extra-attrs")]
9200 #[serde(skip)]
9201 #[cfg(feature = "extra-attrs")]
9202 #[serde(default)]
9203 #[cfg(feature = "extra-attrs")]
9204 pub extra_attrs: std::collections::HashMap<String, String>,
9205 #[cfg(feature = "extra-children")]
9207 #[serde(skip)]
9208 #[cfg(feature = "extra-children")]
9209 pub extra_children: Vec<ooxml_xml::PositionedNode>,
9210}
9211
9212#[derive(Debug, Clone, Serialize, Deserialize)]
9213pub struct CTHierarchyUsage {
9214 #[serde(rename = "@hierarchyUsage")]
9215 pub hierarchy_usage: i32,
9216 #[cfg(feature = "extra-attrs")]
9218 #[serde(skip)]
9219 #[cfg(feature = "extra-attrs")]
9220 #[serde(default)]
9221 #[cfg(feature = "extra-attrs")]
9222 pub extra_attrs: std::collections::HashMap<String, String>,
9223}
9224
9225#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9226pub struct CTMemberProperties {
9227 #[serde(rename = "@count")]
9228 #[serde(default, skip_serializing_if = "Option::is_none")]
9229 pub count: Option<u32>,
9230 #[serde(rename = "mp")]
9231 #[serde(default, skip_serializing_if = "Vec::is_empty")]
9232 pub mp: Vec<CTMemberProperty>,
9233 #[cfg(feature = "extra-attrs")]
9235 #[serde(skip)]
9236 #[cfg(feature = "extra-attrs")]
9237 #[serde(default)]
9238 #[cfg(feature = "extra-attrs")]
9239 pub extra_attrs: std::collections::HashMap<String, String>,
9240 #[cfg(feature = "extra-children")]
9242 #[serde(skip)]
9243 #[cfg(feature = "extra-children")]
9244 pub extra_children: Vec<ooxml_xml::PositionedNode>,
9245}
9246
9247#[derive(Debug, Clone, Serialize, Deserialize)]
9248pub struct CTMemberProperty {
9249 #[serde(rename = "@name")]
9250 #[serde(default, skip_serializing_if = "Option::is_none")]
9251 pub name: Option<XmlString>,
9252 #[serde(rename = "@showCell")]
9253 #[serde(
9254 default,
9255 skip_serializing_if = "Option::is_none",
9256 with = "ooxml_xml::ooxml_bool"
9257 )]
9258 pub show_cell: Option<bool>,
9259 #[serde(rename = "@showTip")]
9260 #[serde(
9261 default,
9262 skip_serializing_if = "Option::is_none",
9263 with = "ooxml_xml::ooxml_bool"
9264 )]
9265 pub show_tip: Option<bool>,
9266 #[serde(rename = "@showAsCaption")]
9267 #[serde(
9268 default,
9269 skip_serializing_if = "Option::is_none",
9270 with = "ooxml_xml::ooxml_bool"
9271 )]
9272 pub show_as_caption: Option<bool>,
9273 #[serde(rename = "@nameLen")]
9274 #[serde(default, skip_serializing_if = "Option::is_none")]
9275 pub name_len: Option<u32>,
9276 #[serde(rename = "@pPos")]
9277 #[serde(default, skip_serializing_if = "Option::is_none")]
9278 pub p_pos: Option<u32>,
9279 #[serde(rename = "@pLen")]
9280 #[serde(default, skip_serializing_if = "Option::is_none")]
9281 pub p_len: Option<u32>,
9282 #[serde(rename = "@level")]
9283 #[serde(default, skip_serializing_if = "Option::is_none")]
9284 pub level: Option<u32>,
9285 #[serde(rename = "@field")]
9286 pub field: u32,
9287 #[cfg(feature = "extra-attrs")]
9289 #[serde(skip)]
9290 #[cfg(feature = "extra-attrs")]
9291 #[serde(default)]
9292 #[cfg(feature = "extra-attrs")]
9293 pub extra_attrs: std::collections::HashMap<String, String>,
9294}
9295
9296#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9297pub struct CTMembers {
9298 #[serde(rename = "@count")]
9299 #[serde(default, skip_serializing_if = "Option::is_none")]
9300 pub count: Option<u32>,
9301 #[serde(rename = "@level")]
9302 #[serde(default, skip_serializing_if = "Option::is_none")]
9303 pub level: Option<u32>,
9304 #[serde(rename = "member")]
9305 #[serde(default, skip_serializing_if = "Vec::is_empty")]
9306 pub member: Vec<CTMember>,
9307 #[cfg(feature = "extra-attrs")]
9309 #[serde(skip)]
9310 #[cfg(feature = "extra-attrs")]
9311 #[serde(default)]
9312 #[cfg(feature = "extra-attrs")]
9313 pub extra_attrs: std::collections::HashMap<String, String>,
9314 #[cfg(feature = "extra-children")]
9316 #[serde(skip)]
9317 #[cfg(feature = "extra-children")]
9318 pub extra_children: Vec<ooxml_xml::PositionedNode>,
9319}
9320
9321#[derive(Debug, Clone, Serialize, Deserialize)]
9322pub struct CTMember {
9323 #[serde(rename = "@name")]
9324 pub name: XmlString,
9325 #[cfg(feature = "extra-attrs")]
9327 #[serde(skip)]
9328 #[cfg(feature = "extra-attrs")]
9329 #[serde(default)]
9330 #[cfg(feature = "extra-attrs")]
9331 pub extra_attrs: std::collections::HashMap<String, String>,
9332}
9333
9334#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9335pub struct CTDimensions {
9336 #[serde(rename = "@count")]
9337 #[serde(default, skip_serializing_if = "Option::is_none")]
9338 pub count: Option<u32>,
9339 #[serde(rename = "dimension")]
9340 #[serde(default, skip_serializing_if = "Vec::is_empty")]
9341 pub dimension: Vec<CTPivotDimension>,
9342 #[cfg(feature = "extra-attrs")]
9344 #[serde(skip)]
9345 #[cfg(feature = "extra-attrs")]
9346 #[serde(default)]
9347 #[cfg(feature = "extra-attrs")]
9348 pub extra_attrs: std::collections::HashMap<String, String>,
9349 #[cfg(feature = "extra-children")]
9351 #[serde(skip)]
9352 #[cfg(feature = "extra-children")]
9353 pub extra_children: Vec<ooxml_xml::PositionedNode>,
9354}
9355
9356#[derive(Debug, Clone, Serialize, Deserialize)]
9357pub struct CTPivotDimension {
9358 #[serde(rename = "@measure")]
9359 #[serde(
9360 default,
9361 skip_serializing_if = "Option::is_none",
9362 with = "ooxml_xml::ooxml_bool"
9363 )]
9364 pub measure: Option<bool>,
9365 #[serde(rename = "@name")]
9366 pub name: XmlString,
9367 #[serde(rename = "@uniqueName")]
9368 pub unique_name: XmlString,
9369 #[serde(rename = "@caption")]
9370 pub caption: XmlString,
9371 #[cfg(feature = "extra-attrs")]
9373 #[serde(skip)]
9374 #[cfg(feature = "extra-attrs")]
9375 #[serde(default)]
9376 #[cfg(feature = "extra-attrs")]
9377 pub extra_attrs: std::collections::HashMap<String, String>,
9378}
9379
9380#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9381pub struct CTMeasureGroups {
9382 #[serde(rename = "@count")]
9383 #[serde(default, skip_serializing_if = "Option::is_none")]
9384 pub count: Option<u32>,
9385 #[serde(rename = "measureGroup")]
9386 #[serde(default, skip_serializing_if = "Vec::is_empty")]
9387 pub measure_group: Vec<CTMeasureGroup>,
9388 #[cfg(feature = "extra-attrs")]
9390 #[serde(skip)]
9391 #[cfg(feature = "extra-attrs")]
9392 #[serde(default)]
9393 #[cfg(feature = "extra-attrs")]
9394 pub extra_attrs: std::collections::HashMap<String, String>,
9395 #[cfg(feature = "extra-children")]
9397 #[serde(skip)]
9398 #[cfg(feature = "extra-children")]
9399 pub extra_children: Vec<ooxml_xml::PositionedNode>,
9400}
9401
9402#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9403pub struct CTMeasureDimensionMaps {
9404 #[serde(rename = "@count")]
9405 #[serde(default, skip_serializing_if = "Option::is_none")]
9406 pub count: Option<u32>,
9407 #[serde(rename = "map")]
9408 #[serde(default, skip_serializing_if = "Vec::is_empty")]
9409 pub map: Vec<CTMeasureDimensionMap>,
9410 #[cfg(feature = "extra-attrs")]
9412 #[serde(skip)]
9413 #[cfg(feature = "extra-attrs")]
9414 #[serde(default)]
9415 #[cfg(feature = "extra-attrs")]
9416 pub extra_attrs: std::collections::HashMap<String, String>,
9417 #[cfg(feature = "extra-children")]
9419 #[serde(skip)]
9420 #[cfg(feature = "extra-children")]
9421 pub extra_children: Vec<ooxml_xml::PositionedNode>,
9422}
9423
9424#[derive(Debug, Clone, Serialize, Deserialize)]
9425pub struct CTMeasureGroup {
9426 #[serde(rename = "@name")]
9427 pub name: XmlString,
9428 #[serde(rename = "@caption")]
9429 pub caption: XmlString,
9430 #[cfg(feature = "extra-attrs")]
9432 #[serde(skip)]
9433 #[cfg(feature = "extra-attrs")]
9434 #[serde(default)]
9435 #[cfg(feature = "extra-attrs")]
9436 pub extra_attrs: std::collections::HashMap<String, String>,
9437}
9438
9439#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9440pub struct CTMeasureDimensionMap {
9441 #[serde(rename = "@measureGroup")]
9442 #[serde(default, skip_serializing_if = "Option::is_none")]
9443 pub measure_group: Option<u32>,
9444 #[serde(rename = "@dimension")]
9445 #[serde(default, skip_serializing_if = "Option::is_none")]
9446 pub dimension: Option<u32>,
9447 #[cfg(feature = "extra-attrs")]
9449 #[serde(skip)]
9450 #[cfg(feature = "extra-attrs")]
9451 #[serde(default)]
9452 #[cfg(feature = "extra-attrs")]
9453 pub extra_attrs: std::collections::HashMap<String, String>,
9454}
9455
9456#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9457pub struct CTPivotTableStyle {
9458 #[serde(rename = "@name")]
9459 #[serde(default, skip_serializing_if = "Option::is_none")]
9460 pub name: Option<String>,
9461 #[serde(rename = "@showRowHeaders")]
9462 #[serde(
9463 default,
9464 skip_serializing_if = "Option::is_none",
9465 with = "ooxml_xml::ooxml_bool"
9466 )]
9467 pub show_row_headers: Option<bool>,
9468 #[serde(rename = "@showColHeaders")]
9469 #[serde(
9470 default,
9471 skip_serializing_if = "Option::is_none",
9472 with = "ooxml_xml::ooxml_bool"
9473 )]
9474 pub show_col_headers: Option<bool>,
9475 #[serde(rename = "@showRowStripes")]
9476 #[serde(
9477 default,
9478 skip_serializing_if = "Option::is_none",
9479 with = "ooxml_xml::ooxml_bool"
9480 )]
9481 pub show_row_stripes: Option<bool>,
9482 #[serde(rename = "@showColStripes")]
9483 #[serde(
9484 default,
9485 skip_serializing_if = "Option::is_none",
9486 with = "ooxml_xml::ooxml_bool"
9487 )]
9488 pub show_col_stripes: Option<bool>,
9489 #[serde(rename = "@showLastColumn")]
9490 #[serde(
9491 default,
9492 skip_serializing_if = "Option::is_none",
9493 with = "ooxml_xml::ooxml_bool"
9494 )]
9495 pub show_last_column: Option<bool>,
9496 #[cfg(feature = "extra-attrs")]
9498 #[serde(skip)]
9499 #[cfg(feature = "extra-attrs")]
9500 #[serde(default)]
9501 #[cfg(feature = "extra-attrs")]
9502 pub extra_attrs: std::collections::HashMap<String, String>,
9503}
9504
9505#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9506pub struct PivotFilters {
9507 #[serde(rename = "@count")]
9508 #[serde(default, skip_serializing_if = "Option::is_none")]
9509 pub count: Option<u32>,
9510 #[serde(rename = "filter")]
9511 #[serde(default, skip_serializing_if = "Vec::is_empty")]
9512 pub filter: Vec<PivotFilter>,
9513 #[cfg(feature = "extra-attrs")]
9515 #[serde(skip)]
9516 #[cfg(feature = "extra-attrs")]
9517 #[serde(default)]
9518 #[cfg(feature = "extra-attrs")]
9519 pub extra_attrs: std::collections::HashMap<String, String>,
9520 #[cfg(feature = "extra-children")]
9522 #[serde(skip)]
9523 #[cfg(feature = "extra-children")]
9524 pub extra_children: Vec<ooxml_xml::PositionedNode>,
9525}
9526
9527#[derive(Debug, Clone, Serialize, Deserialize)]
9528pub struct PivotFilter {
9529 #[serde(rename = "@fld")]
9530 pub fld: u32,
9531 #[serde(rename = "@mpFld")]
9532 #[serde(default, skip_serializing_if = "Option::is_none")]
9533 pub mp_fld: Option<u32>,
9534 #[serde(rename = "@type")]
9535 pub r#type: STPivotFilterType,
9536 #[serde(rename = "@evalOrder")]
9537 #[serde(default, skip_serializing_if = "Option::is_none")]
9538 pub eval_order: Option<i32>,
9539 #[serde(rename = "@id")]
9540 pub id: u32,
9541 #[serde(rename = "@iMeasureHier")]
9542 #[serde(default, skip_serializing_if = "Option::is_none")]
9543 pub i_measure_hier: Option<u32>,
9544 #[serde(rename = "@iMeasureFld")]
9545 #[serde(default, skip_serializing_if = "Option::is_none")]
9546 pub i_measure_fld: Option<u32>,
9547 #[serde(rename = "@name")]
9548 #[serde(default, skip_serializing_if = "Option::is_none")]
9549 pub name: Option<XmlString>,
9550 #[serde(rename = "@description")]
9551 #[serde(default, skip_serializing_if = "Option::is_none")]
9552 pub description: Option<XmlString>,
9553 #[serde(rename = "@stringValue1")]
9554 #[serde(default, skip_serializing_if = "Option::is_none")]
9555 pub string_value1: Option<XmlString>,
9556 #[serde(rename = "@stringValue2")]
9557 #[serde(default, skip_serializing_if = "Option::is_none")]
9558 pub string_value2: Option<XmlString>,
9559 #[serde(rename = "autoFilter")]
9560 pub auto_filter: Box<AutoFilter>,
9561 #[serde(rename = "extLst")]
9562 #[serde(default, skip_serializing_if = "Option::is_none")]
9563 pub extension_list: Option<Box<ExtensionList>>,
9564 #[cfg(feature = "extra-attrs")]
9566 #[serde(skip)]
9567 #[cfg(feature = "extra-attrs")]
9568 #[serde(default)]
9569 #[cfg(feature = "extra-attrs")]
9570 pub extra_attrs: std::collections::HashMap<String, String>,
9571 #[cfg(feature = "extra-children")]
9573 #[serde(skip)]
9574 #[cfg(feature = "extra-children")]
9575 pub extra_children: Vec<ooxml_xml::PositionedNode>,
9576}
9577
9578#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9579pub struct PivotArea {
9580 #[serde(rename = "@field")]
9581 #[serde(default, skip_serializing_if = "Option::is_none")]
9582 pub field: Option<i32>,
9583 #[serde(rename = "@type")]
9584 #[serde(default, skip_serializing_if = "Option::is_none")]
9585 pub r#type: Option<STPivotAreaType>,
9586 #[serde(rename = "@dataOnly")]
9587 #[serde(
9588 default,
9589 skip_serializing_if = "Option::is_none",
9590 with = "ooxml_xml::ooxml_bool"
9591 )]
9592 pub data_only: Option<bool>,
9593 #[serde(rename = "@labelOnly")]
9594 #[serde(
9595 default,
9596 skip_serializing_if = "Option::is_none",
9597 with = "ooxml_xml::ooxml_bool"
9598 )]
9599 pub label_only: Option<bool>,
9600 #[serde(rename = "@grandRow")]
9601 #[serde(
9602 default,
9603 skip_serializing_if = "Option::is_none",
9604 with = "ooxml_xml::ooxml_bool"
9605 )]
9606 pub grand_row: Option<bool>,
9607 #[serde(rename = "@grandCol")]
9608 #[serde(
9609 default,
9610 skip_serializing_if = "Option::is_none",
9611 with = "ooxml_xml::ooxml_bool"
9612 )]
9613 pub grand_col: Option<bool>,
9614 #[serde(rename = "@cacheIndex")]
9615 #[serde(
9616 default,
9617 skip_serializing_if = "Option::is_none",
9618 with = "ooxml_xml::ooxml_bool"
9619 )]
9620 pub cache_index: Option<bool>,
9621 #[serde(rename = "@outline")]
9622 #[serde(
9623 default,
9624 skip_serializing_if = "Option::is_none",
9625 with = "ooxml_xml::ooxml_bool"
9626 )]
9627 pub outline: Option<bool>,
9628 #[serde(rename = "@offset")]
9629 #[serde(default, skip_serializing_if = "Option::is_none")]
9630 pub offset: Option<Reference>,
9631 #[serde(rename = "@collapsedLevelsAreSubtotals")]
9632 #[serde(
9633 default,
9634 skip_serializing_if = "Option::is_none",
9635 with = "ooxml_xml::ooxml_bool"
9636 )]
9637 pub collapsed_levels_are_subtotals: Option<bool>,
9638 #[serde(rename = "@axis")]
9639 #[serde(default, skip_serializing_if = "Option::is_none")]
9640 pub axis: Option<STAxis>,
9641 #[serde(rename = "@fieldPosition")]
9642 #[serde(default, skip_serializing_if = "Option::is_none")]
9643 pub field_position: Option<u32>,
9644 #[serde(rename = "references")]
9645 #[serde(default, skip_serializing_if = "Option::is_none")]
9646 pub references: Option<Box<CTPivotAreaReferences>>,
9647 #[serde(rename = "extLst")]
9648 #[serde(default, skip_serializing_if = "Option::is_none")]
9649 pub extension_list: Option<Box<ExtensionList>>,
9650 #[cfg(feature = "extra-attrs")]
9652 #[serde(skip)]
9653 #[cfg(feature = "extra-attrs")]
9654 #[serde(default)]
9655 #[cfg(feature = "extra-attrs")]
9656 pub extra_attrs: std::collections::HashMap<String, String>,
9657 #[cfg(feature = "extra-children")]
9659 #[serde(skip)]
9660 #[cfg(feature = "extra-children")]
9661 pub extra_children: Vec<ooxml_xml::PositionedNode>,
9662}
9663
9664#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9665pub struct CTPivotAreaReferences {
9666 #[serde(rename = "@count")]
9667 #[serde(default, skip_serializing_if = "Option::is_none")]
9668 pub count: Option<u32>,
9669 #[serde(rename = "reference")]
9670 #[serde(default, skip_serializing_if = "Vec::is_empty")]
9671 pub reference: Vec<CTPivotAreaReference>,
9672 #[cfg(feature = "extra-attrs")]
9674 #[serde(skip)]
9675 #[cfg(feature = "extra-attrs")]
9676 #[serde(default)]
9677 #[cfg(feature = "extra-attrs")]
9678 pub extra_attrs: std::collections::HashMap<String, String>,
9679 #[cfg(feature = "extra-children")]
9681 #[serde(skip)]
9682 #[cfg(feature = "extra-children")]
9683 pub extra_children: Vec<ooxml_xml::PositionedNode>,
9684}
9685
9686#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9687pub struct CTPivotAreaReference {
9688 #[serde(rename = "@field")]
9689 #[serde(default, skip_serializing_if = "Option::is_none")]
9690 pub field: Option<u32>,
9691 #[serde(rename = "@count")]
9692 #[serde(default, skip_serializing_if = "Option::is_none")]
9693 pub count: Option<u32>,
9694 #[serde(rename = "@selected")]
9695 #[serde(
9696 default,
9697 skip_serializing_if = "Option::is_none",
9698 with = "ooxml_xml::ooxml_bool"
9699 )]
9700 pub selected: Option<bool>,
9701 #[serde(rename = "@byPosition")]
9702 #[serde(
9703 default,
9704 skip_serializing_if = "Option::is_none",
9705 with = "ooxml_xml::ooxml_bool"
9706 )]
9707 pub by_position: Option<bool>,
9708 #[serde(rename = "@relative")]
9709 #[serde(
9710 default,
9711 skip_serializing_if = "Option::is_none",
9712 with = "ooxml_xml::ooxml_bool"
9713 )]
9714 pub relative: Option<bool>,
9715 #[serde(rename = "@defaultSubtotal")]
9716 #[serde(
9717 default,
9718 skip_serializing_if = "Option::is_none",
9719 with = "ooxml_xml::ooxml_bool"
9720 )]
9721 pub default_subtotal: Option<bool>,
9722 #[serde(rename = "@sumSubtotal")]
9723 #[serde(
9724 default,
9725 skip_serializing_if = "Option::is_none",
9726 with = "ooxml_xml::ooxml_bool"
9727 )]
9728 pub sum_subtotal: Option<bool>,
9729 #[serde(rename = "@countASubtotal")]
9730 #[serde(
9731 default,
9732 skip_serializing_if = "Option::is_none",
9733 with = "ooxml_xml::ooxml_bool"
9734 )]
9735 pub count_a_subtotal: Option<bool>,
9736 #[serde(rename = "@avgSubtotal")]
9737 #[serde(
9738 default,
9739 skip_serializing_if = "Option::is_none",
9740 with = "ooxml_xml::ooxml_bool"
9741 )]
9742 pub avg_subtotal: Option<bool>,
9743 #[serde(rename = "@maxSubtotal")]
9744 #[serde(
9745 default,
9746 skip_serializing_if = "Option::is_none",
9747 with = "ooxml_xml::ooxml_bool"
9748 )]
9749 pub max_subtotal: Option<bool>,
9750 #[serde(rename = "@minSubtotal")]
9751 #[serde(
9752 default,
9753 skip_serializing_if = "Option::is_none",
9754 with = "ooxml_xml::ooxml_bool"
9755 )]
9756 pub min_subtotal: Option<bool>,
9757 #[serde(rename = "@productSubtotal")]
9758 #[serde(
9759 default,
9760 skip_serializing_if = "Option::is_none",
9761 with = "ooxml_xml::ooxml_bool"
9762 )]
9763 pub product_subtotal: Option<bool>,
9764 #[serde(rename = "@countSubtotal")]
9765 #[serde(
9766 default,
9767 skip_serializing_if = "Option::is_none",
9768 with = "ooxml_xml::ooxml_bool"
9769 )]
9770 pub count_subtotal: Option<bool>,
9771 #[serde(rename = "@stdDevSubtotal")]
9772 #[serde(
9773 default,
9774 skip_serializing_if = "Option::is_none",
9775 with = "ooxml_xml::ooxml_bool"
9776 )]
9777 pub std_dev_subtotal: Option<bool>,
9778 #[serde(rename = "@stdDevPSubtotal")]
9779 #[serde(
9780 default,
9781 skip_serializing_if = "Option::is_none",
9782 with = "ooxml_xml::ooxml_bool"
9783 )]
9784 pub std_dev_p_subtotal: Option<bool>,
9785 #[serde(rename = "@varSubtotal")]
9786 #[serde(
9787 default,
9788 skip_serializing_if = "Option::is_none",
9789 with = "ooxml_xml::ooxml_bool"
9790 )]
9791 pub var_subtotal: Option<bool>,
9792 #[serde(rename = "@varPSubtotal")]
9793 #[serde(
9794 default,
9795 skip_serializing_if = "Option::is_none",
9796 with = "ooxml_xml::ooxml_bool"
9797 )]
9798 pub var_p_subtotal: Option<bool>,
9799 #[serde(rename = "x")]
9800 #[serde(default, skip_serializing_if = "Vec::is_empty")]
9801 pub x: Vec<CTIndex>,
9802 #[serde(rename = "extLst")]
9803 #[serde(default, skip_serializing_if = "Option::is_none")]
9804 pub extension_list: Option<Box<ExtensionList>>,
9805 #[cfg(feature = "extra-attrs")]
9807 #[serde(skip)]
9808 #[cfg(feature = "extra-attrs")]
9809 #[serde(default)]
9810 #[cfg(feature = "extra-attrs")]
9811 pub extra_attrs: std::collections::HashMap<String, String>,
9812 #[cfg(feature = "extra-children")]
9814 #[serde(skip)]
9815 #[cfg(feature = "extra-children")]
9816 pub extra_children: Vec<ooxml_xml::PositionedNode>,
9817}
9818
9819#[derive(Debug, Clone, Serialize, Deserialize)]
9820pub struct CTIndex {
9821 #[serde(rename = "@v")]
9822 pub value: u32,
9823 #[cfg(feature = "extra-attrs")]
9825 #[serde(skip)]
9826 #[cfg(feature = "extra-attrs")]
9827 #[serde(default)]
9828 #[cfg(feature = "extra-attrs")]
9829 pub extra_attrs: std::collections::HashMap<String, String>,
9830}
9831
9832pub type SmlQueryTable = Box<QueryTable>;
9833
9834#[derive(Debug, Clone, Serialize, Deserialize)]
9835pub struct QueryTable {
9836 #[serde(rename = "@name")]
9837 pub name: XmlString,
9838 #[serde(rename = "@headers")]
9839 #[serde(
9840 default,
9841 skip_serializing_if = "Option::is_none",
9842 with = "ooxml_xml::ooxml_bool"
9843 )]
9844 pub headers: Option<bool>,
9845 #[serde(rename = "@rowNumbers")]
9846 #[serde(
9847 default,
9848 skip_serializing_if = "Option::is_none",
9849 with = "ooxml_xml::ooxml_bool"
9850 )]
9851 pub row_numbers: Option<bool>,
9852 #[serde(rename = "@disableRefresh")]
9853 #[serde(
9854 default,
9855 skip_serializing_if = "Option::is_none",
9856 with = "ooxml_xml::ooxml_bool"
9857 )]
9858 pub disable_refresh: Option<bool>,
9859 #[serde(rename = "@backgroundRefresh")]
9860 #[serde(
9861 default,
9862 skip_serializing_if = "Option::is_none",
9863 with = "ooxml_xml::ooxml_bool"
9864 )]
9865 pub background_refresh: Option<bool>,
9866 #[serde(rename = "@firstBackgroundRefresh")]
9867 #[serde(
9868 default,
9869 skip_serializing_if = "Option::is_none",
9870 with = "ooxml_xml::ooxml_bool"
9871 )]
9872 pub first_background_refresh: Option<bool>,
9873 #[serde(rename = "@refreshOnLoad")]
9874 #[serde(
9875 default,
9876 skip_serializing_if = "Option::is_none",
9877 with = "ooxml_xml::ooxml_bool"
9878 )]
9879 pub refresh_on_load: Option<bool>,
9880 #[serde(rename = "@growShrinkType")]
9881 #[serde(default, skip_serializing_if = "Option::is_none")]
9882 pub grow_shrink_type: Option<STGrowShrinkType>,
9883 #[serde(rename = "@fillFormulas")]
9884 #[serde(
9885 default,
9886 skip_serializing_if = "Option::is_none",
9887 with = "ooxml_xml::ooxml_bool"
9888 )]
9889 pub fill_formulas: Option<bool>,
9890 #[serde(rename = "@removeDataOnSave")]
9891 #[serde(
9892 default,
9893 skip_serializing_if = "Option::is_none",
9894 with = "ooxml_xml::ooxml_bool"
9895 )]
9896 pub remove_data_on_save: Option<bool>,
9897 #[serde(rename = "@disableEdit")]
9898 #[serde(
9899 default,
9900 skip_serializing_if = "Option::is_none",
9901 with = "ooxml_xml::ooxml_bool"
9902 )]
9903 pub disable_edit: Option<bool>,
9904 #[serde(rename = "@preserveFormatting")]
9905 #[serde(
9906 default,
9907 skip_serializing_if = "Option::is_none",
9908 with = "ooxml_xml::ooxml_bool"
9909 )]
9910 pub preserve_formatting: Option<bool>,
9911 #[serde(rename = "@adjustColumnWidth")]
9912 #[serde(
9913 default,
9914 skip_serializing_if = "Option::is_none",
9915 with = "ooxml_xml::ooxml_bool"
9916 )]
9917 pub adjust_column_width: Option<bool>,
9918 #[serde(rename = "@intermediate")]
9919 #[serde(
9920 default,
9921 skip_serializing_if = "Option::is_none",
9922 with = "ooxml_xml::ooxml_bool"
9923 )]
9924 pub intermediate: Option<bool>,
9925 #[serde(rename = "@connectionId")]
9926 pub connection_id: u32,
9927 #[serde(rename = "@autoFormatId")]
9928 #[serde(default, skip_serializing_if = "Option::is_none")]
9929 pub auto_format_id: Option<u32>,
9930 #[serde(rename = "@applyNumberFormats")]
9931 #[serde(
9932 default,
9933 skip_serializing_if = "Option::is_none",
9934 with = "ooxml_xml::ooxml_bool"
9935 )]
9936 pub apply_number_formats: Option<bool>,
9937 #[serde(rename = "@applyBorderFormats")]
9938 #[serde(
9939 default,
9940 skip_serializing_if = "Option::is_none",
9941 with = "ooxml_xml::ooxml_bool"
9942 )]
9943 pub apply_border_formats: Option<bool>,
9944 #[serde(rename = "@applyFontFormats")]
9945 #[serde(
9946 default,
9947 skip_serializing_if = "Option::is_none",
9948 with = "ooxml_xml::ooxml_bool"
9949 )]
9950 pub apply_font_formats: Option<bool>,
9951 #[serde(rename = "@applyPatternFormats")]
9952 #[serde(
9953 default,
9954 skip_serializing_if = "Option::is_none",
9955 with = "ooxml_xml::ooxml_bool"
9956 )]
9957 pub apply_pattern_formats: Option<bool>,
9958 #[serde(rename = "@applyAlignmentFormats")]
9959 #[serde(
9960 default,
9961 skip_serializing_if = "Option::is_none",
9962 with = "ooxml_xml::ooxml_bool"
9963 )]
9964 pub apply_alignment_formats: Option<bool>,
9965 #[serde(rename = "@applyWidthHeightFormats")]
9966 #[serde(
9967 default,
9968 skip_serializing_if = "Option::is_none",
9969 with = "ooxml_xml::ooxml_bool"
9970 )]
9971 pub apply_width_height_formats: Option<bool>,
9972 #[serde(rename = "queryTableRefresh")]
9973 #[serde(default, skip_serializing_if = "Option::is_none")]
9974 pub query_table_refresh: Option<Box<QueryTableRefresh>>,
9975 #[serde(rename = "extLst")]
9976 #[serde(default, skip_serializing_if = "Option::is_none")]
9977 pub extension_list: Option<Box<ExtensionList>>,
9978 #[cfg(feature = "extra-attrs")]
9980 #[serde(skip)]
9981 #[cfg(feature = "extra-attrs")]
9982 #[serde(default)]
9983 #[cfg(feature = "extra-attrs")]
9984 pub extra_attrs: std::collections::HashMap<String, String>,
9985 #[cfg(feature = "extra-children")]
9987 #[serde(skip)]
9988 #[cfg(feature = "extra-children")]
9989 pub extra_children: Vec<ooxml_xml::PositionedNode>,
9990}
9991
9992#[derive(Debug, Clone, Serialize, Deserialize)]
9993pub struct QueryTableRefresh {
9994 #[serde(rename = "@preserveSortFilterLayout")]
9995 #[serde(
9996 default,
9997 skip_serializing_if = "Option::is_none",
9998 with = "ooxml_xml::ooxml_bool"
9999 )]
10000 pub preserve_sort_filter_layout: Option<bool>,
10001 #[serde(rename = "@fieldIdWrapped")]
10002 #[serde(
10003 default,
10004 skip_serializing_if = "Option::is_none",
10005 with = "ooxml_xml::ooxml_bool"
10006 )]
10007 pub field_id_wrapped: Option<bool>,
10008 #[serde(rename = "@headersInLastRefresh")]
10009 #[serde(
10010 default,
10011 skip_serializing_if = "Option::is_none",
10012 with = "ooxml_xml::ooxml_bool"
10013 )]
10014 pub headers_in_last_refresh: Option<bool>,
10015 #[serde(rename = "@minimumVersion")]
10016 #[serde(default, skip_serializing_if = "Option::is_none")]
10017 pub minimum_version: Option<u8>,
10018 #[serde(rename = "@nextId")]
10019 #[serde(default, skip_serializing_if = "Option::is_none")]
10020 pub next_id: Option<u32>,
10021 #[serde(rename = "@unboundColumnsLeft")]
10022 #[serde(default, skip_serializing_if = "Option::is_none")]
10023 pub unbound_columns_left: Option<u32>,
10024 #[serde(rename = "@unboundColumnsRight")]
10025 #[serde(default, skip_serializing_if = "Option::is_none")]
10026 pub unbound_columns_right: Option<u32>,
10027 #[serde(rename = "queryTableFields")]
10028 pub query_table_fields: Box<QueryTableFields>,
10029 #[serde(rename = "queryTableDeletedFields")]
10030 #[serde(default, skip_serializing_if = "Option::is_none")]
10031 pub query_table_deleted_fields: Option<Box<QueryTableDeletedFields>>,
10032 #[serde(rename = "sortState")]
10033 #[serde(default, skip_serializing_if = "Option::is_none")]
10034 pub sort_state: Option<Box<SortState>>,
10035 #[serde(rename = "extLst")]
10036 #[serde(default, skip_serializing_if = "Option::is_none")]
10037 pub extension_list: Option<Box<ExtensionList>>,
10038 #[cfg(feature = "extra-attrs")]
10040 #[serde(skip)]
10041 #[cfg(feature = "extra-attrs")]
10042 #[serde(default)]
10043 #[cfg(feature = "extra-attrs")]
10044 pub extra_attrs: std::collections::HashMap<String, String>,
10045 #[cfg(feature = "extra-children")]
10047 #[serde(skip)]
10048 #[cfg(feature = "extra-children")]
10049 pub extra_children: Vec<ooxml_xml::PositionedNode>,
10050}
10051
10052#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10053pub struct QueryTableDeletedFields {
10054 #[serde(rename = "@count")]
10055 #[serde(default, skip_serializing_if = "Option::is_none")]
10056 pub count: Option<u32>,
10057 #[serde(rename = "deletedField")]
10058 #[serde(default, skip_serializing_if = "Vec::is_empty")]
10059 pub deleted_field: Vec<CTDeletedField>,
10060 #[cfg(feature = "extra-attrs")]
10062 #[serde(skip)]
10063 #[cfg(feature = "extra-attrs")]
10064 #[serde(default)]
10065 #[cfg(feature = "extra-attrs")]
10066 pub extra_attrs: std::collections::HashMap<String, String>,
10067 #[cfg(feature = "extra-children")]
10069 #[serde(skip)]
10070 #[cfg(feature = "extra-children")]
10071 pub extra_children: Vec<ooxml_xml::PositionedNode>,
10072}
10073
10074#[derive(Debug, Clone, Serialize, Deserialize)]
10075pub struct CTDeletedField {
10076 #[serde(rename = "@name")]
10077 pub name: XmlString,
10078 #[cfg(feature = "extra-attrs")]
10080 #[serde(skip)]
10081 #[cfg(feature = "extra-attrs")]
10082 #[serde(default)]
10083 #[cfg(feature = "extra-attrs")]
10084 pub extra_attrs: std::collections::HashMap<String, String>,
10085}
10086
10087#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10088pub struct QueryTableFields {
10089 #[serde(rename = "@count")]
10090 #[serde(default, skip_serializing_if = "Option::is_none")]
10091 pub count: Option<u32>,
10092 #[serde(rename = "queryTableField")]
10093 #[serde(default, skip_serializing_if = "Vec::is_empty")]
10094 pub query_table_field: Vec<QueryTableField>,
10095 #[cfg(feature = "extra-attrs")]
10097 #[serde(skip)]
10098 #[cfg(feature = "extra-attrs")]
10099 #[serde(default)]
10100 #[cfg(feature = "extra-attrs")]
10101 pub extra_attrs: std::collections::HashMap<String, String>,
10102 #[cfg(feature = "extra-children")]
10104 #[serde(skip)]
10105 #[cfg(feature = "extra-children")]
10106 pub extra_children: Vec<ooxml_xml::PositionedNode>,
10107}
10108
10109#[derive(Debug, Clone, Serialize, Deserialize)]
10110pub struct QueryTableField {
10111 #[serde(rename = "@id")]
10112 pub id: u32,
10113 #[serde(rename = "@name")]
10114 #[serde(default, skip_serializing_if = "Option::is_none")]
10115 pub name: Option<XmlString>,
10116 #[serde(rename = "@dataBound")]
10117 #[serde(
10118 default,
10119 skip_serializing_if = "Option::is_none",
10120 with = "ooxml_xml::ooxml_bool"
10121 )]
10122 pub data_bound: Option<bool>,
10123 #[serde(rename = "@rowNumbers")]
10124 #[serde(
10125 default,
10126 skip_serializing_if = "Option::is_none",
10127 with = "ooxml_xml::ooxml_bool"
10128 )]
10129 pub row_numbers: Option<bool>,
10130 #[serde(rename = "@fillFormulas")]
10131 #[serde(
10132 default,
10133 skip_serializing_if = "Option::is_none",
10134 with = "ooxml_xml::ooxml_bool"
10135 )]
10136 pub fill_formulas: Option<bool>,
10137 #[serde(rename = "@clipped")]
10138 #[serde(
10139 default,
10140 skip_serializing_if = "Option::is_none",
10141 with = "ooxml_xml::ooxml_bool"
10142 )]
10143 pub clipped: Option<bool>,
10144 #[serde(rename = "@tableColumnId")]
10145 #[serde(default, skip_serializing_if = "Option::is_none")]
10146 pub table_column_id: Option<u32>,
10147 #[serde(rename = "extLst")]
10148 #[serde(default, skip_serializing_if = "Option::is_none")]
10149 pub extension_list: Option<Box<ExtensionList>>,
10150 #[cfg(feature = "extra-attrs")]
10152 #[serde(skip)]
10153 #[cfg(feature = "extra-attrs")]
10154 #[serde(default)]
10155 #[cfg(feature = "extra-attrs")]
10156 pub extra_attrs: std::collections::HashMap<String, String>,
10157 #[cfg(feature = "extra-children")]
10159 #[serde(skip)]
10160 #[cfg(feature = "extra-children")]
10161 pub extra_children: Vec<ooxml_xml::PositionedNode>,
10162}
10163
10164pub type SmlSst = Box<SharedStrings>;
10165
10166#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10167#[serde(rename = "sst")]
10168pub struct SharedStrings {
10169 #[serde(rename = "@count")]
10170 #[serde(default, skip_serializing_if = "Option::is_none")]
10171 pub count: Option<u32>,
10172 #[serde(rename = "@uniqueCount")]
10173 #[serde(default, skip_serializing_if = "Option::is_none")]
10174 pub unique_count: Option<u32>,
10175 #[serde(rename = "si")]
10176 #[serde(default, skip_serializing_if = "Vec::is_empty")]
10177 pub si: Vec<RichString>,
10178 #[serde(rename = "extLst")]
10179 #[serde(default, skip_serializing_if = "Option::is_none")]
10180 pub extension_list: Option<Box<ExtensionList>>,
10181 #[cfg(feature = "extra-attrs")]
10183 #[serde(skip)]
10184 #[cfg(feature = "extra-attrs")]
10185 #[serde(default)]
10186 #[cfg(feature = "extra-attrs")]
10187 pub extra_attrs: std::collections::HashMap<String, String>,
10188 #[cfg(feature = "extra-children")]
10190 #[serde(skip)]
10191 #[cfg(feature = "extra-children")]
10192 pub extra_children: Vec<ooxml_xml::PositionedNode>,
10193}
10194
10195#[derive(Debug, Clone, Serialize, Deserialize)]
10196pub struct PhoneticRun {
10197 #[serde(rename = "@sb")]
10198 pub sb: u32,
10199 #[serde(rename = "@eb")]
10200 pub eb: u32,
10201 #[serde(rename = "t")]
10202 pub cell_type: XmlString,
10203 #[cfg(feature = "extra-attrs")]
10205 #[serde(skip)]
10206 #[cfg(feature = "extra-attrs")]
10207 #[serde(default)]
10208 #[cfg(feature = "extra-attrs")]
10209 pub extra_attrs: std::collections::HashMap<String, String>,
10210 #[cfg(feature = "extra-children")]
10212 #[serde(skip)]
10213 #[cfg(feature = "extra-children")]
10214 pub extra_children: Vec<ooxml_xml::PositionedNode>,
10215}
10216
10217#[derive(Debug, Clone, Serialize, Deserialize)]
10218#[serde(rename = "r")]
10219pub struct RichTextElement {
10220 #[serde(rename = "rPr")]
10221 #[serde(default, skip_serializing_if = "Option::is_none")]
10222 pub r_pr: Option<Box<RichTextRunProperties>>,
10223 #[serde(rename = "t")]
10224 pub cell_type: XmlString,
10225 #[cfg(feature = "extra-children")]
10227 #[serde(skip)]
10228 #[cfg(feature = "extra-children")]
10229 pub extra_children: Vec<ooxml_xml::PositionedNode>,
10230}
10231
10232#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10233#[serde(rename = "rPr")]
10234pub struct RichTextRunProperties {
10235 #[serde(rename = "rFont")]
10236 #[serde(default, skip_serializing_if = "Option::is_none")]
10237 pub r_font: Option<Box<FontName>>,
10238 #[serde(rename = "charset")]
10239 #[serde(default, skip_serializing_if = "Option::is_none")]
10240 pub charset: Option<Box<IntProperty>>,
10241 #[serde(rename = "family")]
10242 #[serde(default, skip_serializing_if = "Option::is_none")]
10243 pub family: Option<Box<IntProperty>>,
10244 #[serde(rename = "b")]
10245 #[serde(default, skip_serializing_if = "Option::is_none")]
10246 pub b: Option<Box<BooleanProperty>>,
10247 #[serde(rename = "i")]
10248 #[serde(default, skip_serializing_if = "Option::is_none")]
10249 pub i: Option<Box<BooleanProperty>>,
10250 #[serde(rename = "strike")]
10251 #[serde(default, skip_serializing_if = "Option::is_none")]
10252 pub strike: Option<Box<BooleanProperty>>,
10253 #[serde(rename = "outline")]
10254 #[serde(default, skip_serializing_if = "Option::is_none")]
10255 pub outline: Option<Box<BooleanProperty>>,
10256 #[serde(rename = "shadow")]
10257 #[serde(default, skip_serializing_if = "Option::is_none")]
10258 pub shadow: Option<Box<BooleanProperty>>,
10259 #[serde(rename = "condense")]
10260 #[serde(default, skip_serializing_if = "Option::is_none")]
10261 pub condense: Option<Box<BooleanProperty>>,
10262 #[serde(rename = "extend")]
10263 #[serde(default, skip_serializing_if = "Option::is_none")]
10264 pub extend: Option<Box<BooleanProperty>>,
10265 #[serde(rename = "color")]
10266 #[serde(default, skip_serializing_if = "Option::is_none")]
10267 pub color: Option<Box<Color>>,
10268 #[serde(rename = "sz")]
10269 #[serde(default, skip_serializing_if = "Option::is_none")]
10270 pub sz: Option<Box<FontSize>>,
10271 #[serde(rename = "u")]
10272 #[serde(default, skip_serializing_if = "Option::is_none")]
10273 pub u: Option<Box<UnderlineProperty>>,
10274 #[serde(rename = "vertAlign")]
10275 #[serde(default, skip_serializing_if = "Option::is_none")]
10276 pub vert_align: Option<Box<VerticalAlignFontProperty>>,
10277 #[serde(rename = "scheme")]
10278 #[serde(default, skip_serializing_if = "Option::is_none")]
10279 pub scheme: Option<Box<FontSchemeProperty>>,
10280 #[cfg(feature = "extra-children")]
10282 #[serde(skip)]
10283 #[cfg(feature = "extra-children")]
10284 pub extra_children: Vec<ooxml_xml::PositionedNode>,
10285}
10286
10287#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10288#[serde(rename = "is")]
10289pub struct RichString {
10290 #[serde(rename = "t")]
10291 #[serde(default, skip_serializing_if = "Option::is_none")]
10292 pub cell_type: Option<XmlString>,
10293 #[serde(rename = "r")]
10294 #[serde(default, skip_serializing_if = "Vec::is_empty")]
10295 pub reference: Vec<RichTextElement>,
10296 #[serde(rename = "rPh")]
10297 #[serde(default, skip_serializing_if = "Vec::is_empty")]
10298 pub r_ph: Vec<PhoneticRun>,
10299 #[serde(rename = "phoneticPr")]
10300 #[serde(default, skip_serializing_if = "Option::is_none")]
10301 pub phonetic_pr: Option<Box<PhoneticProperties>>,
10302 #[cfg(feature = "extra-children")]
10304 #[serde(skip)]
10305 #[cfg(feature = "extra-children")]
10306 pub extra_children: Vec<ooxml_xml::PositionedNode>,
10307}
10308
10309#[derive(Debug, Clone, Serialize, Deserialize)]
10310pub struct PhoneticProperties {
10311 #[serde(rename = "@fontId")]
10312 pub font_id: STFontId,
10313 #[serde(rename = "@type")]
10314 #[serde(default, skip_serializing_if = "Option::is_none")]
10315 pub r#type: Option<STPhoneticType>,
10316 #[serde(rename = "@alignment")]
10317 #[serde(default, skip_serializing_if = "Option::is_none")]
10318 pub alignment: Option<STPhoneticAlignment>,
10319 #[cfg(feature = "extra-attrs")]
10321 #[serde(skip)]
10322 #[cfg(feature = "extra-attrs")]
10323 #[serde(default)]
10324 #[cfg(feature = "extra-attrs")]
10325 pub extra_attrs: std::collections::HashMap<String, String>,
10326}
10327
10328pub type SmlHeaders = Box<RevisionHeaders>;
10329
10330pub type SmlRevisions = Box<Revisions>;
10331
10332#[derive(Debug, Clone, Serialize, Deserialize)]
10333pub struct RevisionHeaders {
10334 #[serde(rename = "@guid")]
10335 pub guid: Guid,
10336 #[serde(rename = "@lastGuid")]
10337 #[serde(default, skip_serializing_if = "Option::is_none")]
10338 pub last_guid: Option<Guid>,
10339 #[serde(rename = "@shared")]
10340 #[serde(
10341 default,
10342 skip_serializing_if = "Option::is_none",
10343 with = "ooxml_xml::ooxml_bool"
10344 )]
10345 pub shared: Option<bool>,
10346 #[serde(rename = "@diskRevisions")]
10347 #[serde(
10348 default,
10349 skip_serializing_if = "Option::is_none",
10350 with = "ooxml_xml::ooxml_bool"
10351 )]
10352 pub disk_revisions: Option<bool>,
10353 #[serde(rename = "@history")]
10354 #[serde(
10355 default,
10356 skip_serializing_if = "Option::is_none",
10357 with = "ooxml_xml::ooxml_bool"
10358 )]
10359 pub history: Option<bool>,
10360 #[serde(rename = "@trackRevisions")]
10361 #[serde(
10362 default,
10363 skip_serializing_if = "Option::is_none",
10364 with = "ooxml_xml::ooxml_bool"
10365 )]
10366 pub track_revisions: Option<bool>,
10367 #[serde(rename = "@exclusive")]
10368 #[serde(
10369 default,
10370 skip_serializing_if = "Option::is_none",
10371 with = "ooxml_xml::ooxml_bool"
10372 )]
10373 pub exclusive: Option<bool>,
10374 #[serde(rename = "@revisionId")]
10375 #[serde(default, skip_serializing_if = "Option::is_none")]
10376 pub revision_id: Option<u32>,
10377 #[serde(rename = "@version")]
10378 #[serde(default, skip_serializing_if = "Option::is_none")]
10379 pub version: Option<i32>,
10380 #[serde(rename = "@keepChangeHistory")]
10381 #[serde(
10382 default,
10383 skip_serializing_if = "Option::is_none",
10384 with = "ooxml_xml::ooxml_bool"
10385 )]
10386 pub keep_change_history: Option<bool>,
10387 #[serde(rename = "@protected")]
10388 #[serde(
10389 default,
10390 skip_serializing_if = "Option::is_none",
10391 with = "ooxml_xml::ooxml_bool"
10392 )]
10393 pub protected: Option<bool>,
10394 #[serde(rename = "@preserveHistory")]
10395 #[serde(default, skip_serializing_if = "Option::is_none")]
10396 pub preserve_history: Option<u32>,
10397 #[serde(rename = "header")]
10398 #[serde(default, skip_serializing_if = "Vec::is_empty")]
10399 pub header: Vec<RevisionHeader>,
10400 #[cfg(feature = "extra-attrs")]
10402 #[serde(skip)]
10403 #[cfg(feature = "extra-attrs")]
10404 #[serde(default)]
10405 #[cfg(feature = "extra-attrs")]
10406 pub extra_attrs: std::collections::HashMap<String, String>,
10407 #[cfg(feature = "extra-children")]
10409 #[serde(skip)]
10410 #[cfg(feature = "extra-children")]
10411 pub extra_children: Vec<ooxml_xml::PositionedNode>,
10412}
10413
10414#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10415pub struct Revisions {
10416 #[cfg(feature = "extra-children")]
10418 #[serde(skip)]
10419 #[cfg(feature = "extra-children")]
10420 pub extra_children: Vec<ooxml_xml::PositionedNode>,
10421}
10422
10423#[derive(Debug, Clone, Serialize, Deserialize)]
10424pub struct SmlAGRevData {
10425 #[serde(rename = "@rId")]
10426 pub r_id: u32,
10427 #[serde(rename = "@ua")]
10428 #[serde(
10429 default,
10430 skip_serializing_if = "Option::is_none",
10431 with = "ooxml_xml::ooxml_bool"
10432 )]
10433 pub ua: Option<bool>,
10434 #[serde(rename = "@ra")]
10435 #[serde(
10436 default,
10437 skip_serializing_if = "Option::is_none",
10438 with = "ooxml_xml::ooxml_bool"
10439 )]
10440 pub ra: Option<bool>,
10441 #[cfg(feature = "extra-attrs")]
10443 #[serde(skip)]
10444 #[cfg(feature = "extra-attrs")]
10445 #[serde(default)]
10446 #[cfg(feature = "extra-attrs")]
10447 pub extra_attrs: std::collections::HashMap<String, String>,
10448}
10449
10450#[derive(Debug, Clone, Serialize, Deserialize)]
10451pub struct RevisionHeader {
10452 #[serde(rename = "@guid")]
10453 pub guid: Guid,
10454 #[serde(rename = "@dateTime")]
10455 pub date_time: String,
10456 #[serde(rename = "@maxSheetId")]
10457 pub max_sheet_id: u32,
10458 #[serde(rename = "@userName")]
10459 pub user_name: XmlString,
10460 #[serde(rename = "@r:id")]
10461 pub id: STRelationshipId,
10462 #[serde(rename = "@minRId")]
10463 #[serde(default, skip_serializing_if = "Option::is_none")]
10464 pub min_r_id: Option<u32>,
10465 #[serde(rename = "@maxRId")]
10466 #[serde(default, skip_serializing_if = "Option::is_none")]
10467 pub max_r_id: Option<u32>,
10468 #[serde(rename = "sheetIdMap")]
10469 pub sheet_id_map: Box<CTSheetIdMap>,
10470 #[serde(rename = "reviewedList")]
10471 #[serde(default, skip_serializing_if = "Option::is_none")]
10472 pub reviewed_list: Option<Box<ReviewedRevisions>>,
10473 #[serde(rename = "extLst")]
10474 #[serde(default, skip_serializing_if = "Option::is_none")]
10475 pub extension_list: Option<Box<ExtensionList>>,
10476 #[cfg(feature = "extra-attrs")]
10478 #[serde(skip)]
10479 #[cfg(feature = "extra-attrs")]
10480 #[serde(default)]
10481 #[cfg(feature = "extra-attrs")]
10482 pub extra_attrs: std::collections::HashMap<String, String>,
10483 #[cfg(feature = "extra-children")]
10485 #[serde(skip)]
10486 #[cfg(feature = "extra-children")]
10487 pub extra_children: Vec<ooxml_xml::PositionedNode>,
10488}
10489
10490#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10491pub struct CTSheetIdMap {
10492 #[serde(rename = "@count")]
10493 #[serde(default, skip_serializing_if = "Option::is_none")]
10494 pub count: Option<u32>,
10495 #[serde(rename = "sheetId")]
10496 #[serde(default, skip_serializing_if = "Vec::is_empty")]
10497 pub sheet_id: Vec<CTSheetId>,
10498 #[cfg(feature = "extra-attrs")]
10500 #[serde(skip)]
10501 #[cfg(feature = "extra-attrs")]
10502 #[serde(default)]
10503 #[cfg(feature = "extra-attrs")]
10504 pub extra_attrs: std::collections::HashMap<String, String>,
10505 #[cfg(feature = "extra-children")]
10507 #[serde(skip)]
10508 #[cfg(feature = "extra-children")]
10509 pub extra_children: Vec<ooxml_xml::PositionedNode>,
10510}
10511
10512#[derive(Debug, Clone, Serialize, Deserialize)]
10513pub struct CTSheetId {
10514 #[serde(rename = "@val")]
10515 pub value: u32,
10516 #[cfg(feature = "extra-attrs")]
10518 #[serde(skip)]
10519 #[cfg(feature = "extra-attrs")]
10520 #[serde(default)]
10521 #[cfg(feature = "extra-attrs")]
10522 pub extra_attrs: std::collections::HashMap<String, String>,
10523}
10524
10525#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10526pub struct ReviewedRevisions {
10527 #[serde(rename = "@count")]
10528 #[serde(default, skip_serializing_if = "Option::is_none")]
10529 pub count: Option<u32>,
10530 #[serde(rename = "reviewed")]
10531 #[serde(default, skip_serializing_if = "Vec::is_empty")]
10532 pub reviewed: Vec<Reviewed>,
10533 #[cfg(feature = "extra-attrs")]
10535 #[serde(skip)]
10536 #[cfg(feature = "extra-attrs")]
10537 #[serde(default)]
10538 #[cfg(feature = "extra-attrs")]
10539 pub extra_attrs: std::collections::HashMap<String, String>,
10540 #[cfg(feature = "extra-children")]
10542 #[serde(skip)]
10543 #[cfg(feature = "extra-children")]
10544 pub extra_children: Vec<ooxml_xml::PositionedNode>,
10545}
10546
10547#[derive(Debug, Clone, Serialize, Deserialize)]
10548pub struct Reviewed {
10549 #[serde(rename = "@rId")]
10550 pub r_id: u32,
10551 #[cfg(feature = "extra-attrs")]
10553 #[serde(skip)]
10554 #[cfg(feature = "extra-attrs")]
10555 #[serde(default)]
10556 #[cfg(feature = "extra-attrs")]
10557 pub extra_attrs: std::collections::HashMap<String, String>,
10558}
10559
10560#[derive(Debug, Clone, Serialize, Deserialize)]
10561pub struct UndoInfo {
10562 #[serde(rename = "@index")]
10563 pub index: u32,
10564 #[serde(rename = "@exp")]
10565 pub exp: STFormulaExpression,
10566 #[serde(rename = "@ref3D")]
10567 #[serde(
10568 default,
10569 skip_serializing_if = "Option::is_none",
10570 with = "ooxml_xml::ooxml_bool"
10571 )]
10572 pub ref3_d: Option<bool>,
10573 #[serde(rename = "@array")]
10574 #[serde(
10575 default,
10576 skip_serializing_if = "Option::is_none",
10577 with = "ooxml_xml::ooxml_bool"
10578 )]
10579 pub array: Option<bool>,
10580 #[serde(rename = "@v")]
10581 #[serde(
10582 default,
10583 skip_serializing_if = "Option::is_none",
10584 with = "ooxml_xml::ooxml_bool"
10585 )]
10586 pub value: Option<bool>,
10587 #[serde(rename = "@nf")]
10588 #[serde(
10589 default,
10590 skip_serializing_if = "Option::is_none",
10591 with = "ooxml_xml::ooxml_bool"
10592 )]
10593 pub nf: Option<bool>,
10594 #[serde(rename = "@cs")]
10595 #[serde(
10596 default,
10597 skip_serializing_if = "Option::is_none",
10598 with = "ooxml_xml::ooxml_bool"
10599 )]
10600 pub cs: Option<bool>,
10601 #[serde(rename = "@dr")]
10602 pub dr: STRefA,
10603 #[serde(rename = "@dn")]
10604 #[serde(default, skip_serializing_if = "Option::is_none")]
10605 pub dn: Option<XmlString>,
10606 #[serde(rename = "@r")]
10607 #[serde(default, skip_serializing_if = "Option::is_none")]
10608 pub reference: Option<CellRef>,
10609 #[serde(rename = "@sId")]
10610 #[serde(default, skip_serializing_if = "Option::is_none")]
10611 pub s_id: Option<u32>,
10612 #[cfg(feature = "extra-attrs")]
10614 #[serde(skip)]
10615 #[cfg(feature = "extra-attrs")]
10616 #[serde(default)]
10617 #[cfg(feature = "extra-attrs")]
10618 pub extra_attrs: std::collections::HashMap<String, String>,
10619}
10620
10621#[derive(Debug, Clone, Serialize, Deserialize)]
10622pub struct RevisionRowColumn {
10623 #[serde(rename = "@rId")]
10624 pub r_id: u32,
10625 #[serde(rename = "@ua")]
10626 #[serde(
10627 default,
10628 skip_serializing_if = "Option::is_none",
10629 with = "ooxml_xml::ooxml_bool"
10630 )]
10631 pub ua: Option<bool>,
10632 #[serde(rename = "@ra")]
10633 #[serde(
10634 default,
10635 skip_serializing_if = "Option::is_none",
10636 with = "ooxml_xml::ooxml_bool"
10637 )]
10638 pub ra: Option<bool>,
10639 #[serde(rename = "@sId")]
10640 pub s_id: u32,
10641 #[serde(rename = "@eol")]
10642 #[serde(
10643 default,
10644 skip_serializing_if = "Option::is_none",
10645 with = "ooxml_xml::ooxml_bool"
10646 )]
10647 pub eol: Option<bool>,
10648 #[serde(rename = "@ref")]
10649 pub reference: Reference,
10650 #[serde(rename = "@action")]
10651 pub action: STRwColActionType,
10652 #[serde(rename = "@edge")]
10653 #[serde(
10654 default,
10655 skip_serializing_if = "Option::is_none",
10656 with = "ooxml_xml::ooxml_bool"
10657 )]
10658 pub edge: Option<bool>,
10659 #[cfg(feature = "extra-attrs")]
10661 #[serde(skip)]
10662 #[cfg(feature = "extra-attrs")]
10663 #[serde(default)]
10664 #[cfg(feature = "extra-attrs")]
10665 pub extra_attrs: std::collections::HashMap<String, String>,
10666}
10667
10668#[derive(Debug, Clone, Serialize, Deserialize)]
10669pub struct RevisionMove {
10670 #[serde(rename = "@rId")]
10671 pub r_id: u32,
10672 #[serde(rename = "@ua")]
10673 #[serde(
10674 default,
10675 skip_serializing_if = "Option::is_none",
10676 with = "ooxml_xml::ooxml_bool"
10677 )]
10678 pub ua: Option<bool>,
10679 #[serde(rename = "@ra")]
10680 #[serde(
10681 default,
10682 skip_serializing_if = "Option::is_none",
10683 with = "ooxml_xml::ooxml_bool"
10684 )]
10685 pub ra: Option<bool>,
10686 #[serde(rename = "@sheetId")]
10687 pub sheet_id: u32,
10688 #[serde(rename = "@source")]
10689 pub source: Reference,
10690 #[serde(rename = "@destination")]
10691 pub destination: Reference,
10692 #[serde(rename = "@sourceSheetId")]
10693 #[serde(default, skip_serializing_if = "Option::is_none")]
10694 pub source_sheet_id: Option<u32>,
10695 #[cfg(feature = "extra-attrs")]
10697 #[serde(skip)]
10698 #[cfg(feature = "extra-attrs")]
10699 #[serde(default)]
10700 #[cfg(feature = "extra-attrs")]
10701 pub extra_attrs: std::collections::HashMap<String, String>,
10702}
10703
10704#[derive(Debug, Clone, Serialize, Deserialize)]
10705pub struct RevisionCustomView {
10706 #[serde(rename = "@guid")]
10707 pub guid: Guid,
10708 #[serde(rename = "@action")]
10709 pub action: STRevisionAction,
10710 #[cfg(feature = "extra-attrs")]
10712 #[serde(skip)]
10713 #[cfg(feature = "extra-attrs")]
10714 #[serde(default)]
10715 #[cfg(feature = "extra-attrs")]
10716 pub extra_attrs: std::collections::HashMap<String, String>,
10717}
10718
10719#[derive(Debug, Clone, Serialize, Deserialize)]
10720pub struct RevisionSheetRename {
10721 #[serde(rename = "@rId")]
10722 pub r_id: u32,
10723 #[serde(rename = "@ua")]
10724 #[serde(
10725 default,
10726 skip_serializing_if = "Option::is_none",
10727 with = "ooxml_xml::ooxml_bool"
10728 )]
10729 pub ua: Option<bool>,
10730 #[serde(rename = "@ra")]
10731 #[serde(
10732 default,
10733 skip_serializing_if = "Option::is_none",
10734 with = "ooxml_xml::ooxml_bool"
10735 )]
10736 pub ra: Option<bool>,
10737 #[serde(rename = "@sheetId")]
10738 pub sheet_id: u32,
10739 #[serde(rename = "@oldName")]
10740 pub old_name: XmlString,
10741 #[serde(rename = "@newName")]
10742 pub new_name: XmlString,
10743 #[serde(rename = "extLst")]
10744 #[serde(default, skip_serializing_if = "Option::is_none")]
10745 pub extension_list: Option<Box<ExtensionList>>,
10746 #[cfg(feature = "extra-attrs")]
10748 #[serde(skip)]
10749 #[cfg(feature = "extra-attrs")]
10750 #[serde(default)]
10751 #[cfg(feature = "extra-attrs")]
10752 pub extra_attrs: std::collections::HashMap<String, String>,
10753 #[cfg(feature = "extra-children")]
10755 #[serde(skip)]
10756 #[cfg(feature = "extra-children")]
10757 pub extra_children: Vec<ooxml_xml::PositionedNode>,
10758}
10759
10760#[derive(Debug, Clone, Serialize, Deserialize)]
10761pub struct RevisionInsertSheet {
10762 #[serde(rename = "@rId")]
10763 pub r_id: u32,
10764 #[serde(rename = "@ua")]
10765 #[serde(
10766 default,
10767 skip_serializing_if = "Option::is_none",
10768 with = "ooxml_xml::ooxml_bool"
10769 )]
10770 pub ua: Option<bool>,
10771 #[serde(rename = "@ra")]
10772 #[serde(
10773 default,
10774 skip_serializing_if = "Option::is_none",
10775 with = "ooxml_xml::ooxml_bool"
10776 )]
10777 pub ra: Option<bool>,
10778 #[serde(rename = "@sheetId")]
10779 pub sheet_id: u32,
10780 #[serde(rename = "@name")]
10781 pub name: XmlString,
10782 #[serde(rename = "@sheetPosition")]
10783 pub sheet_position: u32,
10784 #[cfg(feature = "extra-attrs")]
10786 #[serde(skip)]
10787 #[cfg(feature = "extra-attrs")]
10788 #[serde(default)]
10789 #[cfg(feature = "extra-attrs")]
10790 pub extra_attrs: std::collections::HashMap<String, String>,
10791}
10792
10793#[derive(Debug, Clone, Serialize, Deserialize)]
10794pub struct RevisionCellChange {
10795 #[serde(rename = "@rId")]
10796 pub r_id: u32,
10797 #[serde(rename = "@ua")]
10798 #[serde(
10799 default,
10800 skip_serializing_if = "Option::is_none",
10801 with = "ooxml_xml::ooxml_bool"
10802 )]
10803 pub ua: Option<bool>,
10804 #[serde(rename = "@ra")]
10805 #[serde(
10806 default,
10807 skip_serializing_if = "Option::is_none",
10808 with = "ooxml_xml::ooxml_bool"
10809 )]
10810 pub ra: Option<bool>,
10811 #[serde(rename = "@sId")]
10812 pub s_id: u32,
10813 #[serde(rename = "@odxf")]
10814 #[serde(
10815 default,
10816 skip_serializing_if = "Option::is_none",
10817 with = "ooxml_xml::ooxml_bool"
10818 )]
10819 pub odxf: Option<bool>,
10820 #[serde(rename = "@xfDxf")]
10821 #[serde(
10822 default,
10823 skip_serializing_if = "Option::is_none",
10824 with = "ooxml_xml::ooxml_bool"
10825 )]
10826 pub xf_dxf: Option<bool>,
10827 #[serde(rename = "@s")]
10828 #[serde(
10829 default,
10830 skip_serializing_if = "Option::is_none",
10831 with = "ooxml_xml::ooxml_bool"
10832 )]
10833 pub style_index: Option<bool>,
10834 #[serde(rename = "@dxf")]
10835 #[serde(
10836 default,
10837 skip_serializing_if = "Option::is_none",
10838 with = "ooxml_xml::ooxml_bool"
10839 )]
10840 pub dxf: Option<bool>,
10841 #[serde(rename = "@numFmtId")]
10842 #[serde(default, skip_serializing_if = "Option::is_none")]
10843 pub number_format_id: Option<STNumFmtId>,
10844 #[serde(rename = "@quotePrefix")]
10845 #[serde(
10846 default,
10847 skip_serializing_if = "Option::is_none",
10848 with = "ooxml_xml::ooxml_bool"
10849 )]
10850 pub quote_prefix: Option<bool>,
10851 #[serde(rename = "@oldQuotePrefix")]
10852 #[serde(
10853 default,
10854 skip_serializing_if = "Option::is_none",
10855 with = "ooxml_xml::ooxml_bool"
10856 )]
10857 pub old_quote_prefix: Option<bool>,
10858 #[serde(rename = "@ph")]
10859 #[serde(
10860 default,
10861 skip_serializing_if = "Option::is_none",
10862 with = "ooxml_xml::ooxml_bool"
10863 )]
10864 pub placeholder: Option<bool>,
10865 #[serde(rename = "@oldPh")]
10866 #[serde(
10867 default,
10868 skip_serializing_if = "Option::is_none",
10869 with = "ooxml_xml::ooxml_bool"
10870 )]
10871 pub old_ph: Option<bool>,
10872 #[serde(rename = "@endOfListFormulaUpdate")]
10873 #[serde(
10874 default,
10875 skip_serializing_if = "Option::is_none",
10876 with = "ooxml_xml::ooxml_bool"
10877 )]
10878 pub end_of_list_formula_update: Option<bool>,
10879 #[serde(rename = "oc")]
10880 #[serde(default, skip_serializing_if = "Option::is_none")]
10881 pub oc: Option<Box<Cell>>,
10882 #[serde(rename = "nc")]
10883 pub nc: Box<Cell>,
10884 #[serde(rename = "ndxf")]
10885 #[serde(default, skip_serializing_if = "Option::is_none")]
10886 pub ndxf: Option<Box<DifferentialFormat>>,
10887 #[serde(rename = "extLst")]
10888 #[serde(default, skip_serializing_if = "Option::is_none")]
10889 pub extension_list: Option<Box<ExtensionList>>,
10890 #[cfg(feature = "extra-attrs")]
10892 #[serde(skip)]
10893 #[cfg(feature = "extra-attrs")]
10894 #[serde(default)]
10895 #[cfg(feature = "extra-attrs")]
10896 pub extra_attrs: std::collections::HashMap<String, String>,
10897 #[cfg(feature = "extra-children")]
10899 #[serde(skip)]
10900 #[cfg(feature = "extra-children")]
10901 pub extra_children: Vec<ooxml_xml::PositionedNode>,
10902}
10903
10904#[derive(Debug, Clone, Serialize, Deserialize)]
10905pub struct RevisionFormatting {
10906 #[serde(rename = "@sheetId")]
10907 pub sheet_id: u32,
10908 #[serde(rename = "@xfDxf")]
10909 #[serde(
10910 default,
10911 skip_serializing_if = "Option::is_none",
10912 with = "ooxml_xml::ooxml_bool"
10913 )]
10914 pub xf_dxf: Option<bool>,
10915 #[serde(rename = "@s")]
10916 #[serde(
10917 default,
10918 skip_serializing_if = "Option::is_none",
10919 with = "ooxml_xml::ooxml_bool"
10920 )]
10921 pub style_index: Option<bool>,
10922 #[serde(rename = "@sqref")]
10923 pub square_reference: SquareRef,
10924 #[serde(rename = "@start")]
10925 #[serde(default, skip_serializing_if = "Option::is_none")]
10926 pub start: Option<u32>,
10927 #[serde(rename = "@length")]
10928 #[serde(default, skip_serializing_if = "Option::is_none")]
10929 pub length: Option<u32>,
10930 #[serde(rename = "dxf")]
10931 #[serde(default, skip_serializing_if = "Option::is_none")]
10932 pub dxf: Option<Box<DifferentialFormat>>,
10933 #[serde(rename = "extLst")]
10934 #[serde(default, skip_serializing_if = "Option::is_none")]
10935 pub extension_list: Option<Box<ExtensionList>>,
10936 #[cfg(feature = "extra-attrs")]
10938 #[serde(skip)]
10939 #[cfg(feature = "extra-attrs")]
10940 #[serde(default)]
10941 #[cfg(feature = "extra-attrs")]
10942 pub extra_attrs: std::collections::HashMap<String, String>,
10943 #[cfg(feature = "extra-children")]
10945 #[serde(skip)]
10946 #[cfg(feature = "extra-children")]
10947 pub extra_children: Vec<ooxml_xml::PositionedNode>,
10948}
10949
10950#[derive(Debug, Clone, Serialize, Deserialize)]
10951pub struct RevisionAutoFormatting {
10952 #[serde(rename = "@sheetId")]
10953 pub sheet_id: u32,
10954 #[serde(rename = "@autoFormatId")]
10955 #[serde(default, skip_serializing_if = "Option::is_none")]
10956 pub auto_format_id: Option<u32>,
10957 #[serde(rename = "@applyNumberFormats")]
10958 #[serde(
10959 default,
10960 skip_serializing_if = "Option::is_none",
10961 with = "ooxml_xml::ooxml_bool"
10962 )]
10963 pub apply_number_formats: Option<bool>,
10964 #[serde(rename = "@applyBorderFormats")]
10965 #[serde(
10966 default,
10967 skip_serializing_if = "Option::is_none",
10968 with = "ooxml_xml::ooxml_bool"
10969 )]
10970 pub apply_border_formats: Option<bool>,
10971 #[serde(rename = "@applyFontFormats")]
10972 #[serde(
10973 default,
10974 skip_serializing_if = "Option::is_none",
10975 with = "ooxml_xml::ooxml_bool"
10976 )]
10977 pub apply_font_formats: Option<bool>,
10978 #[serde(rename = "@applyPatternFormats")]
10979 #[serde(
10980 default,
10981 skip_serializing_if = "Option::is_none",
10982 with = "ooxml_xml::ooxml_bool"
10983 )]
10984 pub apply_pattern_formats: Option<bool>,
10985 #[serde(rename = "@applyAlignmentFormats")]
10986 #[serde(
10987 default,
10988 skip_serializing_if = "Option::is_none",
10989 with = "ooxml_xml::ooxml_bool"
10990 )]
10991 pub apply_alignment_formats: Option<bool>,
10992 #[serde(rename = "@applyWidthHeightFormats")]
10993 #[serde(
10994 default,
10995 skip_serializing_if = "Option::is_none",
10996 with = "ooxml_xml::ooxml_bool"
10997 )]
10998 pub apply_width_height_formats: Option<bool>,
10999 #[serde(rename = "@ref")]
11000 pub reference: Reference,
11001 #[cfg(feature = "extra-attrs")]
11003 #[serde(skip)]
11004 #[cfg(feature = "extra-attrs")]
11005 #[serde(default)]
11006 #[cfg(feature = "extra-attrs")]
11007 pub extra_attrs: std::collections::HashMap<String, String>,
11008}
11009
11010#[derive(Debug, Clone, Serialize, Deserialize)]
11011pub struct RevisionComment {
11012 #[serde(rename = "@sheetId")]
11013 pub sheet_id: u32,
11014 #[serde(rename = "@cell")]
11015 pub cell: CellRef,
11016 #[serde(rename = "@guid")]
11017 pub guid: Guid,
11018 #[serde(rename = "@action")]
11019 #[serde(default, skip_serializing_if = "Option::is_none")]
11020 pub action: Option<STRevisionAction>,
11021 #[serde(rename = "@alwaysShow")]
11022 #[serde(
11023 default,
11024 skip_serializing_if = "Option::is_none",
11025 with = "ooxml_xml::ooxml_bool"
11026 )]
11027 pub always_show: Option<bool>,
11028 #[serde(rename = "@old")]
11029 #[serde(
11030 default,
11031 skip_serializing_if = "Option::is_none",
11032 with = "ooxml_xml::ooxml_bool"
11033 )]
11034 pub old: Option<bool>,
11035 #[serde(rename = "@hiddenRow")]
11036 #[serde(
11037 default,
11038 skip_serializing_if = "Option::is_none",
11039 with = "ooxml_xml::ooxml_bool"
11040 )]
11041 pub hidden_row: Option<bool>,
11042 #[serde(rename = "@hiddenColumn")]
11043 #[serde(
11044 default,
11045 skip_serializing_if = "Option::is_none",
11046 with = "ooxml_xml::ooxml_bool"
11047 )]
11048 pub hidden_column: Option<bool>,
11049 #[serde(rename = "@author")]
11050 pub author: XmlString,
11051 #[serde(rename = "@oldLength")]
11052 #[serde(default, skip_serializing_if = "Option::is_none")]
11053 pub old_length: Option<u32>,
11054 #[serde(rename = "@newLength")]
11055 #[serde(default, skip_serializing_if = "Option::is_none")]
11056 pub new_length: Option<u32>,
11057 #[cfg(feature = "extra-attrs")]
11059 #[serde(skip)]
11060 #[cfg(feature = "extra-attrs")]
11061 #[serde(default)]
11062 #[cfg(feature = "extra-attrs")]
11063 pub extra_attrs: std::collections::HashMap<String, String>,
11064}
11065
11066#[derive(Debug, Clone, Serialize, Deserialize)]
11067pub struct RevisionDefinedName {
11068 #[serde(rename = "@rId")]
11069 pub r_id: u32,
11070 #[serde(rename = "@ua")]
11071 #[serde(
11072 default,
11073 skip_serializing_if = "Option::is_none",
11074 with = "ooxml_xml::ooxml_bool"
11075 )]
11076 pub ua: Option<bool>,
11077 #[serde(rename = "@ra")]
11078 #[serde(
11079 default,
11080 skip_serializing_if = "Option::is_none",
11081 with = "ooxml_xml::ooxml_bool"
11082 )]
11083 pub ra: Option<bool>,
11084 #[serde(rename = "@localSheetId")]
11085 #[serde(default, skip_serializing_if = "Option::is_none")]
11086 pub local_sheet_id: Option<u32>,
11087 #[serde(rename = "@customView")]
11088 #[serde(
11089 default,
11090 skip_serializing_if = "Option::is_none",
11091 with = "ooxml_xml::ooxml_bool"
11092 )]
11093 pub custom_view: Option<bool>,
11094 #[serde(rename = "@name")]
11095 pub name: XmlString,
11096 #[serde(rename = "@function")]
11097 #[serde(
11098 default,
11099 skip_serializing_if = "Option::is_none",
11100 with = "ooxml_xml::ooxml_bool"
11101 )]
11102 pub function: Option<bool>,
11103 #[serde(rename = "@oldFunction")]
11104 #[serde(
11105 default,
11106 skip_serializing_if = "Option::is_none",
11107 with = "ooxml_xml::ooxml_bool"
11108 )]
11109 pub old_function: Option<bool>,
11110 #[serde(rename = "@functionGroupId")]
11111 #[serde(default, skip_serializing_if = "Option::is_none")]
11112 pub function_group_id: Option<u8>,
11113 #[serde(rename = "@oldFunctionGroupId")]
11114 #[serde(default, skip_serializing_if = "Option::is_none")]
11115 pub old_function_group_id: Option<u8>,
11116 #[serde(rename = "@shortcutKey")]
11117 #[serde(default, skip_serializing_if = "Option::is_none")]
11118 pub shortcut_key: Option<u8>,
11119 #[serde(rename = "@oldShortcutKey")]
11120 #[serde(default, skip_serializing_if = "Option::is_none")]
11121 pub old_shortcut_key: Option<u8>,
11122 #[serde(rename = "@hidden")]
11123 #[serde(
11124 default,
11125 skip_serializing_if = "Option::is_none",
11126 with = "ooxml_xml::ooxml_bool"
11127 )]
11128 pub hidden: Option<bool>,
11129 #[serde(rename = "@oldHidden")]
11130 #[serde(
11131 default,
11132 skip_serializing_if = "Option::is_none",
11133 with = "ooxml_xml::ooxml_bool"
11134 )]
11135 pub old_hidden: Option<bool>,
11136 #[serde(rename = "@customMenu")]
11137 #[serde(default, skip_serializing_if = "Option::is_none")]
11138 pub custom_menu: Option<XmlString>,
11139 #[serde(rename = "@oldCustomMenu")]
11140 #[serde(default, skip_serializing_if = "Option::is_none")]
11141 pub old_custom_menu: Option<XmlString>,
11142 #[serde(rename = "@description")]
11143 #[serde(default, skip_serializing_if = "Option::is_none")]
11144 pub description: Option<XmlString>,
11145 #[serde(rename = "@oldDescription")]
11146 #[serde(default, skip_serializing_if = "Option::is_none")]
11147 pub old_description: Option<XmlString>,
11148 #[serde(rename = "@help")]
11149 #[serde(default, skip_serializing_if = "Option::is_none")]
11150 pub help: Option<XmlString>,
11151 #[serde(rename = "@oldHelp")]
11152 #[serde(default, skip_serializing_if = "Option::is_none")]
11153 pub old_help: Option<XmlString>,
11154 #[serde(rename = "@statusBar")]
11155 #[serde(default, skip_serializing_if = "Option::is_none")]
11156 pub status_bar: Option<XmlString>,
11157 #[serde(rename = "@oldStatusBar")]
11158 #[serde(default, skip_serializing_if = "Option::is_none")]
11159 pub old_status_bar: Option<XmlString>,
11160 #[serde(rename = "@comment")]
11161 #[serde(default, skip_serializing_if = "Option::is_none")]
11162 pub comment: Option<XmlString>,
11163 #[serde(rename = "@oldComment")]
11164 #[serde(default, skip_serializing_if = "Option::is_none")]
11165 pub old_comment: Option<XmlString>,
11166 #[serde(rename = "formula")]
11167 #[serde(default, skip_serializing_if = "Option::is_none")]
11168 pub formula: Option<STFormula>,
11169 #[serde(rename = "oldFormula")]
11170 #[serde(default, skip_serializing_if = "Option::is_none")]
11171 pub old_formula: Option<STFormula>,
11172 #[serde(rename = "extLst")]
11173 #[serde(default, skip_serializing_if = "Option::is_none")]
11174 pub extension_list: Option<Box<ExtensionList>>,
11175 #[cfg(feature = "extra-attrs")]
11177 #[serde(skip)]
11178 #[cfg(feature = "extra-attrs")]
11179 #[serde(default)]
11180 #[cfg(feature = "extra-attrs")]
11181 pub extra_attrs: std::collections::HashMap<String, String>,
11182 #[cfg(feature = "extra-children")]
11184 #[serde(skip)]
11185 #[cfg(feature = "extra-children")]
11186 pub extra_children: Vec<ooxml_xml::PositionedNode>,
11187}
11188
11189#[derive(Debug, Clone, Serialize, Deserialize)]
11190pub struct RevisionConflict {
11191 #[serde(rename = "@rId")]
11192 pub r_id: u32,
11193 #[serde(rename = "@ua")]
11194 #[serde(
11195 default,
11196 skip_serializing_if = "Option::is_none",
11197 with = "ooxml_xml::ooxml_bool"
11198 )]
11199 pub ua: Option<bool>,
11200 #[serde(rename = "@ra")]
11201 #[serde(
11202 default,
11203 skip_serializing_if = "Option::is_none",
11204 with = "ooxml_xml::ooxml_bool"
11205 )]
11206 pub ra: Option<bool>,
11207 #[serde(rename = "@sheetId")]
11208 #[serde(default, skip_serializing_if = "Option::is_none")]
11209 pub sheet_id: Option<u32>,
11210 #[cfg(feature = "extra-attrs")]
11212 #[serde(skip)]
11213 #[cfg(feature = "extra-attrs")]
11214 #[serde(default)]
11215 #[cfg(feature = "extra-attrs")]
11216 pub extra_attrs: std::collections::HashMap<String, String>,
11217}
11218
11219#[derive(Debug, Clone, Serialize, Deserialize)]
11220pub struct RevisionQueryTableField {
11221 #[serde(rename = "@sheetId")]
11222 pub sheet_id: u32,
11223 #[serde(rename = "@ref")]
11224 pub reference: Reference,
11225 #[serde(rename = "@fieldId")]
11226 pub field_id: u32,
11227 #[cfg(feature = "extra-attrs")]
11229 #[serde(skip)]
11230 #[cfg(feature = "extra-attrs")]
11231 #[serde(default)]
11232 #[cfg(feature = "extra-attrs")]
11233 pub extra_attrs: std::collections::HashMap<String, String>,
11234}
11235
11236pub type SmlUsers = Box<Users>;
11237
11238#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11239pub struct Users {
11240 #[serde(rename = "@count")]
11241 #[serde(default, skip_serializing_if = "Option::is_none")]
11242 pub count: Option<u32>,
11243 #[serde(rename = "userInfo")]
11244 #[serde(default, skip_serializing_if = "Vec::is_empty")]
11245 pub user_info: Vec<SharedUser>,
11246 #[cfg(feature = "extra-attrs")]
11248 #[serde(skip)]
11249 #[cfg(feature = "extra-attrs")]
11250 #[serde(default)]
11251 #[cfg(feature = "extra-attrs")]
11252 pub extra_attrs: std::collections::HashMap<String, String>,
11253 #[cfg(feature = "extra-children")]
11255 #[serde(skip)]
11256 #[cfg(feature = "extra-children")]
11257 pub extra_children: Vec<ooxml_xml::PositionedNode>,
11258}
11259
11260#[derive(Debug, Clone, Serialize, Deserialize)]
11261pub struct SharedUser {
11262 #[serde(rename = "@guid")]
11263 pub guid: Guid,
11264 #[serde(rename = "@name")]
11265 pub name: XmlString,
11266 #[serde(rename = "@id")]
11267 pub id: i32,
11268 #[serde(rename = "@dateTime")]
11269 pub date_time: String,
11270 #[serde(rename = "extLst")]
11271 #[serde(default, skip_serializing_if = "Option::is_none")]
11272 pub extension_list: Option<Box<ExtensionList>>,
11273 #[cfg(feature = "extra-attrs")]
11275 #[serde(skip)]
11276 #[cfg(feature = "extra-attrs")]
11277 #[serde(default)]
11278 #[cfg(feature = "extra-attrs")]
11279 pub extra_attrs: std::collections::HashMap<String, String>,
11280 #[cfg(feature = "extra-children")]
11282 #[serde(skip)]
11283 #[cfg(feature = "extra-children")]
11284 pub extra_children: Vec<ooxml_xml::PositionedNode>,
11285}
11286
11287pub type SmlWorksheet = Box<Worksheet>;
11288
11289pub type SmlChartsheet = Box<Chartsheet>;
11290
11291pub type SmlDialogsheet = Box<CTDialogsheet>;
11292
11293#[derive(Debug, Clone, Serialize, Deserialize)]
11294pub struct CTMacrosheet {
11295 #[serde(rename = "sheetPr")]
11296 #[serde(default, skip_serializing_if = "Option::is_none")]
11297 pub sheet_properties: Option<Box<SheetProperties>>,
11298 #[serde(rename = "dimension")]
11299 #[serde(default, skip_serializing_if = "Option::is_none")]
11300 pub dimension: Option<Box<SheetDimension>>,
11301 #[serde(rename = "sheetViews")]
11302 #[serde(default, skip_serializing_if = "Option::is_none")]
11303 pub sheet_views: Option<Box<SheetViews>>,
11304 #[serde(rename = "sheetFormatPr")]
11305 #[serde(default, skip_serializing_if = "Option::is_none")]
11306 pub sheet_format: Option<Box<SheetFormat>>,
11307 #[serde(rename = "cols")]
11308 #[serde(default, skip_serializing_if = "Vec::is_empty")]
11309 pub cols: Vec<Columns>,
11310 #[serde(rename = "sheetData")]
11311 pub sheet_data: Box<SheetData>,
11312 #[serde(rename = "sheetProtection")]
11313 #[serde(default, skip_serializing_if = "Option::is_none")]
11314 pub sheet_protection: Option<Box<SheetProtection>>,
11315 #[serde(rename = "autoFilter")]
11316 #[serde(default, skip_serializing_if = "Option::is_none")]
11317 pub auto_filter: Option<Box<AutoFilter>>,
11318 #[serde(rename = "sortState")]
11319 #[serde(default, skip_serializing_if = "Option::is_none")]
11320 pub sort_state: Option<Box<SortState>>,
11321 #[serde(rename = "dataConsolidate")]
11322 #[serde(default, skip_serializing_if = "Option::is_none")]
11323 pub data_consolidate: Option<Box<CTDataConsolidate>>,
11324 #[serde(rename = "customSheetViews")]
11325 #[serde(default, skip_serializing_if = "Option::is_none")]
11326 pub custom_sheet_views: Option<Box<CustomSheetViews>>,
11327 #[serde(rename = "phoneticPr")]
11328 #[serde(default, skip_serializing_if = "Option::is_none")]
11329 pub phonetic_pr: Option<Box<PhoneticProperties>>,
11330 #[serde(rename = "conditionalFormatting")]
11331 #[serde(default, skip_serializing_if = "Vec::is_empty")]
11332 pub conditional_formatting: Vec<ConditionalFormatting>,
11333 #[serde(rename = "printOptions")]
11334 #[serde(default, skip_serializing_if = "Option::is_none")]
11335 pub print_options: Option<Box<PrintOptions>>,
11336 #[serde(rename = "pageMargins")]
11337 #[serde(default, skip_serializing_if = "Option::is_none")]
11338 pub page_margins: Option<Box<PageMargins>>,
11339 #[serde(rename = "pageSetup")]
11340 #[serde(default, skip_serializing_if = "Option::is_none")]
11341 pub page_setup: Option<Box<PageSetup>>,
11342 #[serde(rename = "headerFooter")]
11343 #[serde(default, skip_serializing_if = "Option::is_none")]
11344 pub header_footer: Option<Box<HeaderFooter>>,
11345 #[serde(rename = "rowBreaks")]
11346 #[serde(default, skip_serializing_if = "Option::is_none")]
11347 pub row_breaks: Option<Box<PageBreaks>>,
11348 #[serde(rename = "colBreaks")]
11349 #[serde(default, skip_serializing_if = "Option::is_none")]
11350 pub col_breaks: Option<Box<PageBreaks>>,
11351 #[serde(rename = "customProperties")]
11352 #[serde(default, skip_serializing_if = "Option::is_none")]
11353 pub custom_properties: Option<Box<CTCustomProperties>>,
11354 #[serde(rename = "drawing")]
11355 #[serde(default, skip_serializing_if = "Option::is_none")]
11356 pub drawing: Option<Box<Drawing>>,
11357 #[serde(rename = "legacyDrawing")]
11358 #[serde(default, skip_serializing_if = "Option::is_none")]
11359 pub legacy_drawing: Option<Box<LegacyDrawing>>,
11360 #[serde(rename = "legacyDrawingHF")]
11361 #[serde(default, skip_serializing_if = "Option::is_none")]
11362 pub legacy_drawing_h_f: Option<Box<LegacyDrawing>>,
11363 #[serde(rename = "drawingHF")]
11364 #[serde(default, skip_serializing_if = "Option::is_none")]
11365 pub drawing_h_f: Option<Box<DrawingHeaderFooter>>,
11366 #[serde(rename = "picture")]
11367 #[serde(default, skip_serializing_if = "Option::is_none")]
11368 pub picture: Option<Box<SheetBackgroundPicture>>,
11369 #[serde(rename = "oleObjects")]
11370 #[serde(default, skip_serializing_if = "Option::is_none")]
11371 pub ole_objects: Option<Box<OleObjects>>,
11372 #[serde(rename = "extLst")]
11373 #[serde(default, skip_serializing_if = "Option::is_none")]
11374 pub extension_list: Option<Box<ExtensionList>>,
11375 #[cfg(feature = "extra-children")]
11377 #[serde(skip)]
11378 #[cfg(feature = "extra-children")]
11379 pub extra_children: Vec<ooxml_xml::PositionedNode>,
11380}
11381
11382#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11383pub struct CTDialogsheet {
11384 #[serde(rename = "sheetPr")]
11385 #[serde(default, skip_serializing_if = "Option::is_none")]
11386 pub sheet_properties: Option<Box<SheetProperties>>,
11387 #[serde(rename = "sheetViews")]
11388 #[serde(default, skip_serializing_if = "Option::is_none")]
11389 pub sheet_views: Option<Box<SheetViews>>,
11390 #[serde(rename = "sheetFormatPr")]
11391 #[serde(default, skip_serializing_if = "Option::is_none")]
11392 pub sheet_format: Option<Box<SheetFormat>>,
11393 #[serde(rename = "sheetProtection")]
11394 #[serde(default, skip_serializing_if = "Option::is_none")]
11395 pub sheet_protection: Option<Box<SheetProtection>>,
11396 #[serde(rename = "customSheetViews")]
11397 #[serde(default, skip_serializing_if = "Option::is_none")]
11398 pub custom_sheet_views: Option<Box<CustomSheetViews>>,
11399 #[serde(rename = "printOptions")]
11400 #[serde(default, skip_serializing_if = "Option::is_none")]
11401 pub print_options: Option<Box<PrintOptions>>,
11402 #[serde(rename = "pageMargins")]
11403 #[serde(default, skip_serializing_if = "Option::is_none")]
11404 pub page_margins: Option<Box<PageMargins>>,
11405 #[serde(rename = "pageSetup")]
11406 #[serde(default, skip_serializing_if = "Option::is_none")]
11407 pub page_setup: Option<Box<PageSetup>>,
11408 #[serde(rename = "headerFooter")]
11409 #[serde(default, skip_serializing_if = "Option::is_none")]
11410 pub header_footer: Option<Box<HeaderFooter>>,
11411 #[serde(rename = "drawing")]
11412 #[serde(default, skip_serializing_if = "Option::is_none")]
11413 pub drawing: Option<Box<Drawing>>,
11414 #[serde(rename = "legacyDrawing")]
11415 #[serde(default, skip_serializing_if = "Option::is_none")]
11416 pub legacy_drawing: Option<Box<LegacyDrawing>>,
11417 #[serde(rename = "legacyDrawingHF")]
11418 #[serde(default, skip_serializing_if = "Option::is_none")]
11419 pub legacy_drawing_h_f: Option<Box<LegacyDrawing>>,
11420 #[serde(rename = "drawingHF")]
11421 #[serde(default, skip_serializing_if = "Option::is_none")]
11422 pub drawing_h_f: Option<Box<DrawingHeaderFooter>>,
11423 #[serde(rename = "oleObjects")]
11424 #[serde(default, skip_serializing_if = "Option::is_none")]
11425 pub ole_objects: Option<Box<OleObjects>>,
11426 #[serde(rename = "controls")]
11427 #[serde(default, skip_serializing_if = "Option::is_none")]
11428 pub controls: Option<Box<Controls>>,
11429 #[serde(rename = "extLst")]
11430 #[serde(default, skip_serializing_if = "Option::is_none")]
11431 pub extension_list: Option<Box<ExtensionList>>,
11432 #[cfg(feature = "extra-children")]
11434 #[serde(skip)]
11435 #[cfg(feature = "extra-children")]
11436 pub extra_children: Vec<ooxml_xml::PositionedNode>,
11437}
11438
11439#[derive(Debug, Clone, Serialize, Deserialize)]
11440#[serde(rename = "worksheet")]
11441pub struct Worksheet {
11442 #[cfg(feature = "sml-styling")]
11443 #[serde(rename = "sheetPr")]
11444 #[serde(default, skip_serializing_if = "Option::is_none")]
11445 pub sheet_properties: Option<Box<SheetProperties>>,
11446 #[serde(rename = "dimension")]
11447 #[serde(default, skip_serializing_if = "Option::is_none")]
11448 pub dimension: Option<Box<SheetDimension>>,
11449 #[serde(rename = "sheetViews")]
11450 #[serde(default, skip_serializing_if = "Option::is_none")]
11451 pub sheet_views: Option<Box<SheetViews>>,
11452 #[cfg(feature = "sml-styling")]
11453 #[serde(rename = "sheetFormatPr")]
11454 #[serde(default, skip_serializing_if = "Option::is_none")]
11455 pub sheet_format: Option<Box<SheetFormat>>,
11456 #[cfg(feature = "sml-styling")]
11457 #[serde(rename = "cols")]
11458 #[serde(default, skip_serializing_if = "Vec::is_empty")]
11459 pub cols: Vec<Columns>,
11460 #[serde(rename = "sheetData")]
11461 pub sheet_data: Box<SheetData>,
11462 #[cfg(feature = "sml-formulas")]
11463 #[serde(rename = "sheetCalcPr")]
11464 #[serde(default, skip_serializing_if = "Option::is_none")]
11465 pub sheet_calc_pr: Option<Box<SheetCalcProperties>>,
11466 #[cfg(feature = "sml-protection")]
11467 #[serde(rename = "sheetProtection")]
11468 #[serde(default, skip_serializing_if = "Option::is_none")]
11469 pub sheet_protection: Option<Box<SheetProtection>>,
11470 #[cfg(feature = "sml-protection")]
11471 #[serde(rename = "protectedRanges")]
11472 #[serde(default, skip_serializing_if = "Option::is_none")]
11473 pub protected_ranges: Option<Box<ProtectedRanges>>,
11474 #[cfg(feature = "sml-formulas-advanced")]
11475 #[serde(rename = "scenarios")]
11476 #[serde(default, skip_serializing_if = "Option::is_none")]
11477 pub scenarios: Option<Box<Scenarios>>,
11478 #[cfg(feature = "sml-filtering")]
11479 #[serde(rename = "autoFilter")]
11480 #[serde(default, skip_serializing_if = "Option::is_none")]
11481 pub auto_filter: Option<Box<AutoFilter>>,
11482 #[cfg(feature = "sml-filtering")]
11483 #[serde(rename = "sortState")]
11484 #[serde(default, skip_serializing_if = "Option::is_none")]
11485 pub sort_state: Option<Box<SortState>>,
11486 #[cfg(feature = "sml-formulas-advanced")]
11487 #[serde(rename = "dataConsolidate")]
11488 #[serde(default, skip_serializing_if = "Option::is_none")]
11489 pub data_consolidate: Option<Box<CTDataConsolidate>>,
11490 #[cfg(feature = "sml-structure")]
11491 #[serde(rename = "customSheetViews")]
11492 #[serde(default, skip_serializing_if = "Option::is_none")]
11493 pub custom_sheet_views: Option<Box<CustomSheetViews>>,
11494 #[serde(rename = "mergeCells")]
11495 #[serde(default, skip_serializing_if = "Option::is_none")]
11496 pub merged_cells: Option<Box<MergedCells>>,
11497 #[cfg(feature = "sml-i18n")]
11498 #[serde(rename = "phoneticPr")]
11499 #[serde(default, skip_serializing_if = "Option::is_none")]
11500 pub phonetic_pr: Option<Box<PhoneticProperties>>,
11501 #[cfg(feature = "sml-styling")]
11502 #[serde(rename = "conditionalFormatting")]
11503 #[serde(default, skip_serializing_if = "Vec::is_empty")]
11504 pub conditional_formatting: Vec<ConditionalFormatting>,
11505 #[cfg(feature = "sml-validation")]
11506 #[serde(rename = "dataValidations")]
11507 #[serde(default, skip_serializing_if = "Option::is_none")]
11508 pub data_validations: Option<Box<DataValidations>>,
11509 #[cfg(feature = "sml-hyperlinks")]
11510 #[serde(rename = "hyperlinks")]
11511 #[serde(default, skip_serializing_if = "Option::is_none")]
11512 pub hyperlinks: Option<Box<Hyperlinks>>,
11513 #[cfg(feature = "sml-layout")]
11514 #[serde(rename = "printOptions")]
11515 #[serde(default, skip_serializing_if = "Option::is_none")]
11516 pub print_options: Option<Box<PrintOptions>>,
11517 #[cfg(feature = "sml-layout")]
11518 #[serde(rename = "pageMargins")]
11519 #[serde(default, skip_serializing_if = "Option::is_none")]
11520 pub page_margins: Option<Box<PageMargins>>,
11521 #[cfg(feature = "sml-layout")]
11522 #[serde(rename = "pageSetup")]
11523 #[serde(default, skip_serializing_if = "Option::is_none")]
11524 pub page_setup: Option<Box<PageSetup>>,
11525 #[cfg(feature = "sml-layout")]
11526 #[serde(rename = "headerFooter")]
11527 #[serde(default, skip_serializing_if = "Option::is_none")]
11528 pub header_footer: Option<Box<HeaderFooter>>,
11529 #[cfg(feature = "sml-layout")]
11530 #[serde(rename = "rowBreaks")]
11531 #[serde(default, skip_serializing_if = "Option::is_none")]
11532 pub row_breaks: Option<Box<PageBreaks>>,
11533 #[cfg(feature = "sml-layout")]
11534 #[serde(rename = "colBreaks")]
11535 #[serde(default, skip_serializing_if = "Option::is_none")]
11536 pub col_breaks: Option<Box<PageBreaks>>,
11537 #[cfg(feature = "sml-metadata")]
11538 #[serde(rename = "customProperties")]
11539 #[serde(default, skip_serializing_if = "Option::is_none")]
11540 pub custom_properties: Option<Box<CTCustomProperties>>,
11541 #[cfg(feature = "sml-formulas-advanced")]
11542 #[serde(rename = "cellWatches")]
11543 #[serde(default, skip_serializing_if = "Option::is_none")]
11544 pub cell_watches: Option<Box<CellWatches>>,
11545 #[cfg(feature = "sml-validation")]
11546 #[serde(rename = "ignoredErrors")]
11547 #[serde(default, skip_serializing_if = "Option::is_none")]
11548 pub ignored_errors: Option<Box<IgnoredErrors>>,
11549 #[cfg(feature = "sml-metadata")]
11550 #[serde(rename = "smartTags")]
11551 #[serde(default, skip_serializing_if = "Option::is_none")]
11552 pub smart_tags: Option<Box<SmartTags>>,
11553 #[cfg(feature = "sml-drawings")]
11554 #[serde(rename = "drawing")]
11555 #[serde(default, skip_serializing_if = "Option::is_none")]
11556 pub drawing: Option<Box<Drawing>>,
11557 #[cfg(feature = "sml-comments")]
11558 #[serde(rename = "legacyDrawing")]
11559 #[serde(default, skip_serializing_if = "Option::is_none")]
11560 pub legacy_drawing: Option<Box<LegacyDrawing>>,
11561 #[cfg(feature = "sml-layout")]
11562 #[serde(rename = "legacyDrawingHF")]
11563 #[serde(default, skip_serializing_if = "Option::is_none")]
11564 pub legacy_drawing_h_f: Option<Box<LegacyDrawing>>,
11565 #[cfg(feature = "sml-drawings")]
11566 #[serde(rename = "drawingHF")]
11567 #[serde(default, skip_serializing_if = "Option::is_none")]
11568 pub drawing_h_f: Option<Box<DrawingHeaderFooter>>,
11569 #[cfg(feature = "sml-drawings")]
11570 #[serde(rename = "picture")]
11571 #[serde(default, skip_serializing_if = "Option::is_none")]
11572 pub picture: Option<Box<SheetBackgroundPicture>>,
11573 #[cfg(feature = "sml-external")]
11574 #[serde(rename = "oleObjects")]
11575 #[serde(default, skip_serializing_if = "Option::is_none")]
11576 pub ole_objects: Option<Box<OleObjects>>,
11577 #[cfg(feature = "sml-external")]
11578 #[serde(rename = "controls")]
11579 #[serde(default, skip_serializing_if = "Option::is_none")]
11580 pub controls: Option<Box<Controls>>,
11581 #[cfg(feature = "sml-external")]
11582 #[serde(rename = "webPublishItems")]
11583 #[serde(default, skip_serializing_if = "Option::is_none")]
11584 pub web_publish_items: Option<Box<WebPublishItems>>,
11585 #[cfg(feature = "sml-tables")]
11586 #[serde(rename = "tableParts")]
11587 #[serde(default, skip_serializing_if = "Option::is_none")]
11588 pub table_parts: Option<Box<TableParts>>,
11589 #[cfg(feature = "sml-extensions")]
11590 #[serde(rename = "extLst")]
11591 #[serde(default, skip_serializing_if = "Option::is_none")]
11592 pub extension_list: Option<Box<ExtensionList>>,
11593 #[cfg(feature = "extra-children")]
11595 #[serde(skip)]
11596 #[cfg(feature = "extra-children")]
11597 pub extra_children: Vec<ooxml_xml::PositionedNode>,
11598}
11599
11600#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11601#[serde(rename = "sheetData")]
11602pub struct SheetData {
11603 #[serde(rename = "row")]
11604 #[serde(default, skip_serializing_if = "Vec::is_empty")]
11605 pub row: Vec<Row>,
11606 #[cfg(feature = "extra-children")]
11608 #[serde(skip)]
11609 #[cfg(feature = "extra-children")]
11610 pub extra_children: Vec<ooxml_xml::PositionedNode>,
11611}
11612
11613#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11614pub struct SheetCalcProperties {
11615 #[serde(rename = "@fullCalcOnLoad")]
11616 #[serde(
11617 default,
11618 skip_serializing_if = "Option::is_none",
11619 with = "ooxml_xml::ooxml_bool"
11620 )]
11621 pub full_calc_on_load: Option<bool>,
11622 #[cfg(feature = "extra-attrs")]
11624 #[serde(skip)]
11625 #[cfg(feature = "extra-attrs")]
11626 #[serde(default)]
11627 #[cfg(feature = "extra-attrs")]
11628 pub extra_attrs: std::collections::HashMap<String, String>,
11629}
11630
11631#[derive(Debug, Clone, Serialize, Deserialize)]
11632#[serde(rename = "sheetFormatPr")]
11633pub struct SheetFormat {
11634 #[serde(rename = "@baseColWidth")]
11635 #[serde(default, skip_serializing_if = "Option::is_none")]
11636 pub base_col_width: Option<u32>,
11637 #[serde(rename = "@defaultColWidth")]
11638 #[serde(default, skip_serializing_if = "Option::is_none")]
11639 pub default_col_width: Option<f64>,
11640 #[serde(rename = "@defaultRowHeight")]
11641 pub default_row_height: f64,
11642 #[serde(rename = "@customHeight")]
11643 #[serde(
11644 default,
11645 skip_serializing_if = "Option::is_none",
11646 with = "ooxml_xml::ooxml_bool"
11647 )]
11648 pub custom_height: Option<bool>,
11649 #[serde(rename = "@zeroHeight")]
11650 #[serde(
11651 default,
11652 skip_serializing_if = "Option::is_none",
11653 with = "ooxml_xml::ooxml_bool"
11654 )]
11655 pub zero_height: Option<bool>,
11656 #[serde(rename = "@thickTop")]
11657 #[serde(
11658 default,
11659 skip_serializing_if = "Option::is_none",
11660 with = "ooxml_xml::ooxml_bool"
11661 )]
11662 pub thick_top: Option<bool>,
11663 #[serde(rename = "@thickBottom")]
11664 #[serde(
11665 default,
11666 skip_serializing_if = "Option::is_none",
11667 with = "ooxml_xml::ooxml_bool"
11668 )]
11669 pub thick_bottom: Option<bool>,
11670 #[serde(rename = "@outlineLevelRow")]
11671 #[serde(default, skip_serializing_if = "Option::is_none")]
11672 pub outline_level_row: Option<u8>,
11673 #[serde(rename = "@outlineLevelCol")]
11674 #[serde(default, skip_serializing_if = "Option::is_none")]
11675 pub outline_level_col: Option<u8>,
11676 #[cfg(feature = "extra-attrs")]
11678 #[serde(skip)]
11679 #[cfg(feature = "extra-attrs")]
11680 #[serde(default)]
11681 #[cfg(feature = "extra-attrs")]
11682 pub extra_attrs: std::collections::HashMap<String, String>,
11683}
11684
11685#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11686#[serde(rename = "cols")]
11687pub struct Columns {
11688 #[serde(rename = "col")]
11689 #[serde(default, skip_serializing_if = "Vec::is_empty")]
11690 pub col: Vec<Column>,
11691 #[cfg(feature = "extra-children")]
11693 #[serde(skip)]
11694 #[cfg(feature = "extra-children")]
11695 pub extra_children: Vec<ooxml_xml::PositionedNode>,
11696}
11697
11698#[derive(Debug, Clone, Serialize, Deserialize)]
11699#[serde(rename = "col")]
11700pub struct Column {
11701 #[cfg(feature = "sml-styling")]
11702 #[serde(rename = "@min")]
11703 pub start_column: u32,
11704 #[cfg(feature = "sml-styling")]
11705 #[serde(rename = "@max")]
11706 pub end_column: u32,
11707 #[cfg(feature = "sml-styling")]
11708 #[serde(rename = "@width")]
11709 #[serde(default, skip_serializing_if = "Option::is_none")]
11710 pub width: Option<f64>,
11711 #[cfg(feature = "sml-styling")]
11712 #[serde(rename = "@style")]
11713 #[serde(default, skip_serializing_if = "Option::is_none")]
11714 pub style: Option<u32>,
11715 #[cfg(feature = "sml-structure")]
11716 #[serde(rename = "@hidden")]
11717 #[serde(
11718 default,
11719 skip_serializing_if = "Option::is_none",
11720 with = "ooxml_xml::ooxml_bool"
11721 )]
11722 pub hidden: Option<bool>,
11723 #[cfg(feature = "sml-styling")]
11724 #[serde(rename = "@bestFit")]
11725 #[serde(
11726 default,
11727 skip_serializing_if = "Option::is_none",
11728 with = "ooxml_xml::ooxml_bool"
11729 )]
11730 pub best_fit: Option<bool>,
11731 #[cfg(feature = "sml-styling")]
11732 #[serde(rename = "@customWidth")]
11733 #[serde(
11734 default,
11735 skip_serializing_if = "Option::is_none",
11736 with = "ooxml_xml::ooxml_bool"
11737 )]
11738 pub custom_width: Option<bool>,
11739 #[cfg(feature = "sml-i18n")]
11740 #[serde(rename = "@phonetic")]
11741 #[serde(
11742 default,
11743 skip_serializing_if = "Option::is_none",
11744 with = "ooxml_xml::ooxml_bool"
11745 )]
11746 pub phonetic: Option<bool>,
11747 #[cfg(feature = "sml-structure")]
11748 #[serde(rename = "@outlineLevel")]
11749 #[serde(default, skip_serializing_if = "Option::is_none")]
11750 pub outline_level: Option<u8>,
11751 #[cfg(feature = "sml-structure")]
11752 #[serde(rename = "@collapsed")]
11753 #[serde(
11754 default,
11755 skip_serializing_if = "Option::is_none",
11756 with = "ooxml_xml::ooxml_bool"
11757 )]
11758 pub collapsed: Option<bool>,
11759 #[cfg(feature = "extra-attrs")]
11761 #[serde(skip)]
11762 #[cfg(feature = "extra-attrs")]
11763 #[serde(default)]
11764 #[cfg(feature = "extra-attrs")]
11765 pub extra_attrs: std::collections::HashMap<String, String>,
11766}
11767
11768#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11769#[serde(rename = "row")]
11770pub struct Row {
11771 #[serde(rename = "@r")]
11772 #[serde(default, skip_serializing_if = "Option::is_none")]
11773 pub reference: Option<u32>,
11774 #[serde(rename = "@spans")]
11775 #[serde(default, skip_serializing_if = "Option::is_none")]
11776 pub cell_spans: Option<CellSpans>,
11777 #[serde(rename = "@s")]
11778 #[serde(default, skip_serializing_if = "Option::is_none")]
11779 pub style_index: Option<u32>,
11780 #[cfg(feature = "sml-styling")]
11781 #[serde(rename = "@customFormat")]
11782 #[serde(
11783 default,
11784 skip_serializing_if = "Option::is_none",
11785 with = "ooxml_xml::ooxml_bool"
11786 )]
11787 pub custom_format: Option<bool>,
11788 #[cfg(feature = "sml-styling")]
11789 #[serde(rename = "@ht")]
11790 #[serde(default, skip_serializing_if = "Option::is_none")]
11791 pub height: Option<f64>,
11792 #[cfg(feature = "sml-structure")]
11793 #[serde(rename = "@hidden")]
11794 #[serde(
11795 default,
11796 skip_serializing_if = "Option::is_none",
11797 with = "ooxml_xml::ooxml_bool"
11798 )]
11799 pub hidden: Option<bool>,
11800 #[cfg(feature = "sml-styling")]
11801 #[serde(rename = "@customHeight")]
11802 #[serde(
11803 default,
11804 skip_serializing_if = "Option::is_none",
11805 with = "ooxml_xml::ooxml_bool"
11806 )]
11807 pub custom_height: Option<bool>,
11808 #[cfg(feature = "sml-structure")]
11809 #[serde(rename = "@outlineLevel")]
11810 #[serde(default, skip_serializing_if = "Option::is_none")]
11811 pub outline_level: Option<u8>,
11812 #[cfg(feature = "sml-structure")]
11813 #[serde(rename = "@collapsed")]
11814 #[serde(
11815 default,
11816 skip_serializing_if = "Option::is_none",
11817 with = "ooxml_xml::ooxml_bool"
11818 )]
11819 pub collapsed: Option<bool>,
11820 #[cfg(feature = "sml-styling")]
11821 #[serde(rename = "@thickTop")]
11822 #[serde(
11823 default,
11824 skip_serializing_if = "Option::is_none",
11825 with = "ooxml_xml::ooxml_bool"
11826 )]
11827 pub thick_top: Option<bool>,
11828 #[cfg(feature = "sml-styling")]
11829 #[serde(rename = "@thickBot")]
11830 #[serde(
11831 default,
11832 skip_serializing_if = "Option::is_none",
11833 with = "ooxml_xml::ooxml_bool"
11834 )]
11835 pub thick_bot: Option<bool>,
11836 #[cfg(feature = "sml-i18n")]
11837 #[serde(rename = "@ph")]
11838 #[serde(
11839 default,
11840 skip_serializing_if = "Option::is_none",
11841 with = "ooxml_xml::ooxml_bool"
11842 )]
11843 pub placeholder: Option<bool>,
11844 #[serde(rename = "c")]
11845 #[serde(default, skip_serializing_if = "Vec::is_empty")]
11846 pub cells: Vec<Cell>,
11847 #[cfg(feature = "sml-extensions")]
11848 #[serde(rename = "extLst")]
11849 #[serde(default, skip_serializing_if = "Option::is_none")]
11850 pub extension_list: Option<Box<ExtensionList>>,
11851 #[cfg(feature = "extra-attrs")]
11853 #[serde(skip)]
11854 #[cfg(feature = "extra-attrs")]
11855 #[serde(default)]
11856 #[cfg(feature = "extra-attrs")]
11857 pub extra_attrs: std::collections::HashMap<String, String>,
11858 #[cfg(feature = "extra-children")]
11860 #[serde(skip)]
11861 #[cfg(feature = "extra-children")]
11862 pub extra_children: Vec<ooxml_xml::PositionedNode>,
11863}
11864
11865#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11866#[serde(rename = "c")]
11867pub struct Cell {
11868 #[serde(rename = "@r")]
11869 #[serde(default, skip_serializing_if = "Option::is_none")]
11870 pub reference: Option<CellRef>,
11871 #[serde(rename = "@s")]
11872 #[serde(default, skip_serializing_if = "Option::is_none")]
11873 pub style_index: Option<u32>,
11874 #[serde(rename = "@t")]
11875 #[serde(default, skip_serializing_if = "Option::is_none")]
11876 pub cell_type: Option<CellType>,
11877 #[cfg(feature = "sml-metadata")]
11878 #[serde(rename = "@cm")]
11879 #[serde(default, skip_serializing_if = "Option::is_none")]
11880 pub cm: Option<u32>,
11881 #[cfg(feature = "sml-metadata")]
11882 #[serde(rename = "@vm")]
11883 #[serde(default, skip_serializing_if = "Option::is_none")]
11884 pub vm: Option<u32>,
11885 #[cfg(feature = "sml-i18n")]
11886 #[serde(rename = "@ph")]
11887 #[serde(
11888 default,
11889 skip_serializing_if = "Option::is_none",
11890 with = "ooxml_xml::ooxml_bool"
11891 )]
11892 pub placeholder: Option<bool>,
11893 #[serde(rename = "f")]
11894 #[serde(default, skip_serializing_if = "Option::is_none")]
11895 pub formula: Option<Box<CellFormula>>,
11896 #[serde(rename = "v")]
11897 #[serde(default, skip_serializing_if = "Option::is_none")]
11898 pub value: Option<XmlString>,
11899 #[serde(rename = "is")]
11900 #[serde(default, skip_serializing_if = "Option::is_none")]
11901 pub is: Option<Box<RichString>>,
11902 #[cfg(feature = "sml-extensions")]
11903 #[serde(rename = "extLst")]
11904 #[serde(default, skip_serializing_if = "Option::is_none")]
11905 pub extension_list: Option<Box<ExtensionList>>,
11906 #[cfg(feature = "extra-attrs")]
11908 #[serde(skip)]
11909 #[cfg(feature = "extra-attrs")]
11910 #[serde(default)]
11911 #[cfg(feature = "extra-attrs")]
11912 pub extra_attrs: std::collections::HashMap<String, String>,
11913 #[cfg(feature = "extra-children")]
11915 #[serde(skip)]
11916 #[cfg(feature = "extra-children")]
11917 pub extra_children: Vec<ooxml_xml::PositionedNode>,
11918}
11919
11920#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11921#[serde(rename = "sheetPr")]
11922pub struct SheetProperties {
11923 #[cfg(feature = "sml-structure")]
11924 #[serde(rename = "@syncHorizontal")]
11925 #[serde(
11926 default,
11927 skip_serializing_if = "Option::is_none",
11928 with = "ooxml_xml::ooxml_bool"
11929 )]
11930 pub sync_horizontal: Option<bool>,
11931 #[cfg(feature = "sml-structure")]
11932 #[serde(rename = "@syncVertical")]
11933 #[serde(
11934 default,
11935 skip_serializing_if = "Option::is_none",
11936 with = "ooxml_xml::ooxml_bool"
11937 )]
11938 pub sync_vertical: Option<bool>,
11939 #[cfg(feature = "sml-structure")]
11940 #[serde(rename = "@syncRef")]
11941 #[serde(default, skip_serializing_if = "Option::is_none")]
11942 pub sync_ref: Option<Reference>,
11943 #[cfg(feature = "sml-formulas")]
11944 #[serde(rename = "@transitionEvaluation")]
11945 #[serde(
11946 default,
11947 skip_serializing_if = "Option::is_none",
11948 with = "ooxml_xml::ooxml_bool"
11949 )]
11950 pub transition_evaluation: Option<bool>,
11951 #[cfg(feature = "sml-formulas")]
11952 #[serde(rename = "@transitionEntry")]
11953 #[serde(
11954 default,
11955 skip_serializing_if = "Option::is_none",
11956 with = "ooxml_xml::ooxml_bool"
11957 )]
11958 pub transition_entry: Option<bool>,
11959 #[cfg(feature = "sml-external")]
11960 #[serde(rename = "@published")]
11961 #[serde(
11962 default,
11963 skip_serializing_if = "Option::is_none",
11964 with = "ooxml_xml::ooxml_bool"
11965 )]
11966 pub published: Option<bool>,
11967 #[cfg(feature = "sml-structure")]
11968 #[serde(rename = "@codeName")]
11969 #[serde(default, skip_serializing_if = "Option::is_none")]
11970 pub code_name: Option<String>,
11971 #[cfg(feature = "sml-filtering")]
11972 #[serde(rename = "@filterMode")]
11973 #[serde(
11974 default,
11975 skip_serializing_if = "Option::is_none",
11976 with = "ooxml_xml::ooxml_bool"
11977 )]
11978 pub filter_mode: Option<bool>,
11979 #[cfg(feature = "sml-styling")]
11980 #[serde(rename = "@enableFormatConditionsCalculation")]
11981 #[serde(
11982 default,
11983 skip_serializing_if = "Option::is_none",
11984 with = "ooxml_xml::ooxml_bool"
11985 )]
11986 pub enable_format_conditions_calculation: Option<bool>,
11987 #[cfg(feature = "sml-styling")]
11988 #[serde(rename = "tabColor")]
11989 #[serde(default, skip_serializing_if = "Option::is_none")]
11990 pub tab_color: Option<Box<Color>>,
11991 #[cfg(feature = "sml-structure")]
11992 #[serde(rename = "outlinePr")]
11993 #[serde(default, skip_serializing_if = "Option::is_none")]
11994 pub outline_pr: Option<Box<OutlineProperties>>,
11995 #[cfg(feature = "sml-layout")]
11996 #[serde(rename = "pageSetUpPr")]
11997 #[serde(default, skip_serializing_if = "Option::is_none")]
11998 pub page_set_up_pr: Option<Box<PageSetupProperties>>,
11999 #[cfg(feature = "extra-attrs")]
12001 #[serde(skip)]
12002 #[cfg(feature = "extra-attrs")]
12003 #[serde(default)]
12004 #[cfg(feature = "extra-attrs")]
12005 pub extra_attrs: std::collections::HashMap<String, String>,
12006 #[cfg(feature = "extra-children")]
12008 #[serde(skip)]
12009 #[cfg(feature = "extra-children")]
12010 pub extra_children: Vec<ooxml_xml::PositionedNode>,
12011}
12012
12013#[derive(Debug, Clone, Serialize, Deserialize)]
12014#[serde(rename = "dimension")]
12015pub struct SheetDimension {
12016 #[serde(rename = "@ref")]
12017 pub reference: Reference,
12018 #[cfg(feature = "extra-attrs")]
12020 #[serde(skip)]
12021 #[cfg(feature = "extra-attrs")]
12022 #[serde(default)]
12023 #[cfg(feature = "extra-attrs")]
12024 pub extra_attrs: std::collections::HashMap<String, String>,
12025}
12026
12027#[derive(Debug, Clone, Default, Serialize, Deserialize)]
12028#[serde(rename = "sheetViews")]
12029pub struct SheetViews {
12030 #[serde(rename = "sheetView")]
12031 #[serde(default, skip_serializing_if = "Vec::is_empty")]
12032 pub sheet_view: Vec<SheetView>,
12033 #[serde(rename = "extLst")]
12034 #[serde(default, skip_serializing_if = "Option::is_none")]
12035 pub extension_list: Option<Box<ExtensionList>>,
12036 #[cfg(feature = "extra-children")]
12038 #[serde(skip)]
12039 #[cfg(feature = "extra-children")]
12040 pub extra_children: Vec<ooxml_xml::PositionedNode>,
12041}
12042
12043#[derive(Debug, Clone, Serialize, Deserialize)]
12044#[serde(rename = "sheetView")]
12045pub struct SheetView {
12046 #[cfg(feature = "sml-protection")]
12047 #[serde(rename = "@windowProtection")]
12048 #[serde(
12049 default,
12050 skip_serializing_if = "Option::is_none",
12051 with = "ooxml_xml::ooxml_bool"
12052 )]
12053 pub window_protection: Option<bool>,
12054 #[cfg(feature = "sml-formulas")]
12055 #[serde(rename = "@showFormulas")]
12056 #[serde(
12057 default,
12058 skip_serializing_if = "Option::is_none",
12059 with = "ooxml_xml::ooxml_bool"
12060 )]
12061 pub show_formulas: Option<bool>,
12062 #[cfg(feature = "sml-styling")]
12063 #[serde(rename = "@showGridLines")]
12064 #[serde(
12065 default,
12066 skip_serializing_if = "Option::is_none",
12067 with = "ooxml_xml::ooxml_bool"
12068 )]
12069 pub show_grid_lines: Option<bool>,
12070 #[cfg(feature = "sml-styling")]
12071 #[serde(rename = "@showRowColHeaders")]
12072 #[serde(
12073 default,
12074 skip_serializing_if = "Option::is_none",
12075 with = "ooxml_xml::ooxml_bool"
12076 )]
12077 pub show_row_col_headers: Option<bool>,
12078 #[cfg(feature = "sml-styling")]
12079 #[serde(rename = "@showZeros")]
12080 #[serde(
12081 default,
12082 skip_serializing_if = "Option::is_none",
12083 with = "ooxml_xml::ooxml_bool"
12084 )]
12085 pub show_zeros: Option<bool>,
12086 #[cfg(feature = "sml-i18n")]
12087 #[serde(rename = "@rightToLeft")]
12088 #[serde(
12089 default,
12090 skip_serializing_if = "Option::is_none",
12091 with = "ooxml_xml::ooxml_bool"
12092 )]
12093 pub right_to_left: Option<bool>,
12094 #[serde(rename = "@tabSelected")]
12095 #[serde(
12096 default,
12097 skip_serializing_if = "Option::is_none",
12098 with = "ooxml_xml::ooxml_bool"
12099 )]
12100 pub tab_selected: Option<bool>,
12101 #[cfg(feature = "sml-layout")]
12102 #[serde(rename = "@showRuler")]
12103 #[serde(
12104 default,
12105 skip_serializing_if = "Option::is_none",
12106 with = "ooxml_xml::ooxml_bool"
12107 )]
12108 pub show_ruler: Option<bool>,
12109 #[cfg(feature = "sml-structure")]
12110 #[serde(rename = "@showOutlineSymbols")]
12111 #[serde(
12112 default,
12113 skip_serializing_if = "Option::is_none",
12114 with = "ooxml_xml::ooxml_bool"
12115 )]
12116 pub show_outline_symbols: Option<bool>,
12117 #[cfg(feature = "sml-styling")]
12118 #[serde(rename = "@defaultGridColor")]
12119 #[serde(
12120 default,
12121 skip_serializing_if = "Option::is_none",
12122 with = "ooxml_xml::ooxml_bool"
12123 )]
12124 pub default_grid_color: Option<bool>,
12125 #[cfg(feature = "sml-layout")]
12126 #[serde(rename = "@showWhiteSpace")]
12127 #[serde(
12128 default,
12129 skip_serializing_if = "Option::is_none",
12130 with = "ooxml_xml::ooxml_bool"
12131 )]
12132 pub show_white_space: Option<bool>,
12133 #[serde(rename = "@view")]
12134 #[serde(default, skip_serializing_if = "Option::is_none")]
12135 pub view: Option<SheetViewType>,
12136 #[serde(rename = "@topLeftCell")]
12137 #[serde(default, skip_serializing_if = "Option::is_none")]
12138 pub top_left_cell: Option<CellRef>,
12139 #[cfg(feature = "sml-styling")]
12140 #[serde(rename = "@colorId")]
12141 #[serde(default, skip_serializing_if = "Option::is_none")]
12142 pub color_id: Option<u32>,
12143 #[serde(rename = "@zoomScale")]
12144 #[serde(default, skip_serializing_if = "Option::is_none")]
12145 pub zoom_scale: Option<u32>,
12146 #[serde(rename = "@zoomScaleNormal")]
12147 #[serde(default, skip_serializing_if = "Option::is_none")]
12148 pub zoom_scale_normal: Option<u32>,
12149 #[cfg(feature = "sml-layout")]
12150 #[serde(rename = "@zoomScaleSheetLayoutView")]
12151 #[serde(default, skip_serializing_if = "Option::is_none")]
12152 pub zoom_scale_sheet_layout_view: Option<u32>,
12153 #[cfg(feature = "sml-layout")]
12154 #[serde(rename = "@zoomScalePageLayoutView")]
12155 #[serde(default, skip_serializing_if = "Option::is_none")]
12156 pub zoom_scale_page_layout_view: Option<u32>,
12157 #[serde(rename = "@workbookViewId")]
12158 pub workbook_view_id: u32,
12159 #[cfg(feature = "sml-structure")]
12160 #[serde(rename = "pane")]
12161 #[serde(default, skip_serializing_if = "Option::is_none")]
12162 pub pane: Option<Box<Pane>>,
12163 #[serde(rename = "selection")]
12164 #[serde(default, skip_serializing_if = "Vec::is_empty")]
12165 pub selection: Vec<Selection>,
12166 #[cfg(feature = "sml-pivot")]
12167 #[serde(rename = "pivotSelection")]
12168 #[serde(default, skip_serializing_if = "Vec::is_empty")]
12169 pub pivot_selection: Vec<CTPivotSelection>,
12170 #[cfg(feature = "sml-extensions")]
12171 #[serde(rename = "extLst")]
12172 #[serde(default, skip_serializing_if = "Option::is_none")]
12173 pub extension_list: Option<Box<ExtensionList>>,
12174 #[cfg(feature = "extra-attrs")]
12176 #[serde(skip)]
12177 #[cfg(feature = "extra-attrs")]
12178 #[serde(default)]
12179 #[cfg(feature = "extra-attrs")]
12180 pub extra_attrs: std::collections::HashMap<String, String>,
12181 #[cfg(feature = "extra-children")]
12183 #[serde(skip)]
12184 #[cfg(feature = "extra-children")]
12185 pub extra_children: Vec<ooxml_xml::PositionedNode>,
12186}
12187
12188#[derive(Debug, Clone, Default, Serialize, Deserialize)]
12189#[serde(rename = "pane")]
12190pub struct Pane {
12191 #[cfg(feature = "sml-structure")]
12192 #[serde(rename = "@xSplit")]
12193 #[serde(default, skip_serializing_if = "Option::is_none")]
12194 pub x_split: Option<f64>,
12195 #[cfg(feature = "sml-structure")]
12196 #[serde(rename = "@ySplit")]
12197 #[serde(default, skip_serializing_if = "Option::is_none")]
12198 pub y_split: Option<f64>,
12199 #[cfg(feature = "sml-structure")]
12200 #[serde(rename = "@topLeftCell")]
12201 #[serde(default, skip_serializing_if = "Option::is_none")]
12202 pub top_left_cell: Option<CellRef>,
12203 #[cfg(feature = "sml-structure")]
12204 #[serde(rename = "@activePane")]
12205 #[serde(default, skip_serializing_if = "Option::is_none")]
12206 pub active_pane: Option<PaneType>,
12207 #[cfg(feature = "sml-structure")]
12208 #[serde(rename = "@state")]
12209 #[serde(default, skip_serializing_if = "Option::is_none")]
12210 pub state: Option<PaneState>,
12211 #[cfg(feature = "extra-attrs")]
12213 #[serde(skip)]
12214 #[cfg(feature = "extra-attrs")]
12215 #[serde(default)]
12216 #[cfg(feature = "extra-attrs")]
12217 pub extra_attrs: std::collections::HashMap<String, String>,
12218}
12219
12220#[derive(Debug, Clone, Serialize, Deserialize)]
12221pub struct CTPivotSelection {
12222 #[serde(rename = "@pane")]
12223 #[serde(default, skip_serializing_if = "Option::is_none")]
12224 pub pane: Option<PaneType>,
12225 #[serde(rename = "@showHeader")]
12226 #[serde(
12227 default,
12228 skip_serializing_if = "Option::is_none",
12229 with = "ooxml_xml::ooxml_bool"
12230 )]
12231 pub show_header: Option<bool>,
12232 #[serde(rename = "@label")]
12233 #[serde(
12234 default,
12235 skip_serializing_if = "Option::is_none",
12236 with = "ooxml_xml::ooxml_bool"
12237 )]
12238 pub label: Option<bool>,
12239 #[serde(rename = "@data")]
12240 #[serde(
12241 default,
12242 skip_serializing_if = "Option::is_none",
12243 with = "ooxml_xml::ooxml_bool"
12244 )]
12245 pub data: Option<bool>,
12246 #[serde(rename = "@extendable")]
12247 #[serde(
12248 default,
12249 skip_serializing_if = "Option::is_none",
12250 with = "ooxml_xml::ooxml_bool"
12251 )]
12252 pub extendable: Option<bool>,
12253 #[serde(rename = "@count")]
12254 #[serde(default, skip_serializing_if = "Option::is_none")]
12255 pub count: Option<u32>,
12256 #[serde(rename = "@axis")]
12257 #[serde(default, skip_serializing_if = "Option::is_none")]
12258 pub axis: Option<STAxis>,
12259 #[serde(rename = "@dimension")]
12260 #[serde(default, skip_serializing_if = "Option::is_none")]
12261 pub dimension: Option<u32>,
12262 #[serde(rename = "@start")]
12263 #[serde(default, skip_serializing_if = "Option::is_none")]
12264 pub start: Option<u32>,
12265 #[serde(rename = "@min")]
12266 #[serde(default, skip_serializing_if = "Option::is_none")]
12267 pub start_column: Option<u32>,
12268 #[serde(rename = "@max")]
12269 #[serde(default, skip_serializing_if = "Option::is_none")]
12270 pub end_column: Option<u32>,
12271 #[serde(rename = "@activeRow")]
12272 #[serde(default, skip_serializing_if = "Option::is_none")]
12273 pub active_row: Option<u32>,
12274 #[serde(rename = "@activeCol")]
12275 #[serde(default, skip_serializing_if = "Option::is_none")]
12276 pub active_col: Option<u32>,
12277 #[serde(rename = "@previousRow")]
12278 #[serde(default, skip_serializing_if = "Option::is_none")]
12279 pub previous_row: Option<u32>,
12280 #[serde(rename = "@previousCol")]
12281 #[serde(default, skip_serializing_if = "Option::is_none")]
12282 pub previous_col: Option<u32>,
12283 #[serde(rename = "@click")]
12284 #[serde(default, skip_serializing_if = "Option::is_none")]
12285 pub click: Option<u32>,
12286 #[serde(rename = "@r:id")]
12287 #[serde(default, skip_serializing_if = "Option::is_none")]
12288 pub id: Option<STRelationshipId>,
12289 #[serde(rename = "pivotArea")]
12290 pub pivot_area: Box<PivotArea>,
12291 #[cfg(feature = "extra-attrs")]
12293 #[serde(skip)]
12294 #[cfg(feature = "extra-attrs")]
12295 #[serde(default)]
12296 #[cfg(feature = "extra-attrs")]
12297 pub extra_attrs: std::collections::HashMap<String, String>,
12298 #[cfg(feature = "extra-children")]
12300 #[serde(skip)]
12301 #[cfg(feature = "extra-children")]
12302 pub extra_children: Vec<ooxml_xml::PositionedNode>,
12303}
12304
12305#[derive(Debug, Clone, Default, Serialize, Deserialize)]
12306#[serde(rename = "selection")]
12307pub struct Selection {
12308 #[serde(rename = "@pane")]
12309 #[serde(default, skip_serializing_if = "Option::is_none")]
12310 pub pane: Option<PaneType>,
12311 #[serde(rename = "@activeCell")]
12312 #[serde(default, skip_serializing_if = "Option::is_none")]
12313 pub active_cell: Option<CellRef>,
12314 #[serde(rename = "@activeCellId")]
12315 #[serde(default, skip_serializing_if = "Option::is_none")]
12316 pub active_cell_id: Option<u32>,
12317 #[serde(rename = "@sqref")]
12318 #[serde(default, skip_serializing_if = "Option::is_none")]
12319 pub square_reference: Option<SquareRef>,
12320 #[cfg(feature = "extra-attrs")]
12322 #[serde(skip)]
12323 #[cfg(feature = "extra-attrs")]
12324 #[serde(default)]
12325 #[cfg(feature = "extra-attrs")]
12326 pub extra_attrs: std::collections::HashMap<String, String>,
12327}
12328
12329#[derive(Debug, Clone, Default, Serialize, Deserialize)]
12330#[serde(rename = "rowBreaks")]
12331pub struct PageBreaks {
12332 #[cfg(feature = "sml-layout")]
12333 #[serde(rename = "@count")]
12334 #[serde(default, skip_serializing_if = "Option::is_none")]
12335 pub count: Option<u32>,
12336 #[cfg(feature = "sml-layout")]
12337 #[serde(rename = "@manualBreakCount")]
12338 #[serde(default, skip_serializing_if = "Option::is_none")]
12339 pub manual_break_count: Option<u32>,
12340 #[cfg(feature = "sml-layout")]
12341 #[serde(rename = "brk")]
12342 #[serde(default, skip_serializing_if = "Vec::is_empty")]
12343 pub brk: Vec<PageBreak>,
12344 #[cfg(feature = "extra-attrs")]
12346 #[serde(skip)]
12347 #[cfg(feature = "extra-attrs")]
12348 #[serde(default)]
12349 #[cfg(feature = "extra-attrs")]
12350 pub extra_attrs: std::collections::HashMap<String, String>,
12351 #[cfg(feature = "extra-children")]
12353 #[serde(skip)]
12354 #[cfg(feature = "extra-children")]
12355 pub extra_children: Vec<ooxml_xml::PositionedNode>,
12356}
12357
12358#[derive(Debug, Clone, Default, Serialize, Deserialize)]
12359pub struct PageBreak {
12360 #[serde(rename = "@id")]
12361 #[serde(default, skip_serializing_if = "Option::is_none")]
12362 pub id: Option<u32>,
12363 #[serde(rename = "@min")]
12364 #[serde(default, skip_serializing_if = "Option::is_none")]
12365 pub start_column: Option<u32>,
12366 #[serde(rename = "@max")]
12367 #[serde(default, skip_serializing_if = "Option::is_none")]
12368 pub end_column: Option<u32>,
12369 #[serde(rename = "@man")]
12370 #[serde(
12371 default,
12372 skip_serializing_if = "Option::is_none",
12373 with = "ooxml_xml::ooxml_bool"
12374 )]
12375 pub man: Option<bool>,
12376 #[serde(rename = "@pt")]
12377 #[serde(
12378 default,
12379 skip_serializing_if = "Option::is_none",
12380 with = "ooxml_xml::ooxml_bool"
12381 )]
12382 pub pt: Option<bool>,
12383 #[cfg(feature = "extra-attrs")]
12385 #[serde(skip)]
12386 #[cfg(feature = "extra-attrs")]
12387 #[serde(default)]
12388 #[cfg(feature = "extra-attrs")]
12389 pub extra_attrs: std::collections::HashMap<String, String>,
12390}
12391
12392#[derive(Debug, Clone, Default, Serialize, Deserialize)]
12393pub struct OutlineProperties {
12394 #[serde(rename = "@applyStyles")]
12395 #[serde(
12396 default,
12397 skip_serializing_if = "Option::is_none",
12398 with = "ooxml_xml::ooxml_bool"
12399 )]
12400 pub apply_styles: Option<bool>,
12401 #[serde(rename = "@summaryBelow")]
12402 #[serde(
12403 default,
12404 skip_serializing_if = "Option::is_none",
12405 with = "ooxml_xml::ooxml_bool"
12406 )]
12407 pub summary_below: Option<bool>,
12408 #[serde(rename = "@summaryRight")]
12409 #[serde(
12410 default,
12411 skip_serializing_if = "Option::is_none",
12412 with = "ooxml_xml::ooxml_bool"
12413 )]
12414 pub summary_right: Option<bool>,
12415 #[serde(rename = "@showOutlineSymbols")]
12416 #[serde(
12417 default,
12418 skip_serializing_if = "Option::is_none",
12419 with = "ooxml_xml::ooxml_bool"
12420 )]
12421 pub show_outline_symbols: Option<bool>,
12422 #[cfg(feature = "extra-attrs")]
12424 #[serde(skip)]
12425 #[cfg(feature = "extra-attrs")]
12426 #[serde(default)]
12427 #[cfg(feature = "extra-attrs")]
12428 pub extra_attrs: std::collections::HashMap<String, String>,
12429}
12430
12431#[derive(Debug, Clone, Default, Serialize, Deserialize)]
12432pub struct PageSetupProperties {
12433 #[serde(rename = "@autoPageBreaks")]
12434 #[serde(
12435 default,
12436 skip_serializing_if = "Option::is_none",
12437 with = "ooxml_xml::ooxml_bool"
12438 )]
12439 pub auto_page_breaks: Option<bool>,
12440 #[serde(rename = "@fitToPage")]
12441 #[serde(
12442 default,
12443 skip_serializing_if = "Option::is_none",
12444 with = "ooxml_xml::ooxml_bool"
12445 )]
12446 pub fit_to_page: Option<bool>,
12447 #[cfg(feature = "extra-attrs")]
12449 #[serde(skip)]
12450 #[cfg(feature = "extra-attrs")]
12451 #[serde(default)]
12452 #[cfg(feature = "extra-attrs")]
12453 pub extra_attrs: std::collections::HashMap<String, String>,
12454}
12455
12456#[derive(Debug, Clone, Default, Serialize, Deserialize)]
12457pub struct CTDataConsolidate {
12458 #[serde(rename = "@function")]
12459 #[serde(default, skip_serializing_if = "Option::is_none")]
12460 pub function: Option<STDataConsolidateFunction>,
12461 #[serde(rename = "@startLabels")]
12462 #[serde(
12463 default,
12464 skip_serializing_if = "Option::is_none",
12465 with = "ooxml_xml::ooxml_bool"
12466 )]
12467 pub start_labels: Option<bool>,
12468 #[serde(rename = "@leftLabels")]
12469 #[serde(
12470 default,
12471 skip_serializing_if = "Option::is_none",
12472 with = "ooxml_xml::ooxml_bool"
12473 )]
12474 pub left_labels: Option<bool>,
12475 #[serde(rename = "@topLabels")]
12476 #[serde(
12477 default,
12478 skip_serializing_if = "Option::is_none",
12479 with = "ooxml_xml::ooxml_bool"
12480 )]
12481 pub top_labels: Option<bool>,
12482 #[serde(rename = "@link")]
12483 #[serde(
12484 default,
12485 skip_serializing_if = "Option::is_none",
12486 with = "ooxml_xml::ooxml_bool"
12487 )]
12488 pub link: Option<bool>,
12489 #[serde(rename = "dataRefs")]
12490 #[serde(default, skip_serializing_if = "Option::is_none")]
12491 pub data_refs: Option<Box<CTDataRefs>>,
12492 #[cfg(feature = "extra-attrs")]
12494 #[serde(skip)]
12495 #[cfg(feature = "extra-attrs")]
12496 #[serde(default)]
12497 #[cfg(feature = "extra-attrs")]
12498 pub extra_attrs: std::collections::HashMap<String, String>,
12499 #[cfg(feature = "extra-children")]
12501 #[serde(skip)]
12502 #[cfg(feature = "extra-children")]
12503 pub extra_children: Vec<ooxml_xml::PositionedNode>,
12504}
12505
12506#[derive(Debug, Clone, Default, Serialize, Deserialize)]
12507pub struct CTDataRefs {
12508 #[serde(rename = "@count")]
12509 #[serde(default, skip_serializing_if = "Option::is_none")]
12510 pub count: Option<u32>,
12511 #[serde(rename = "dataRef")]
12512 #[serde(default, skip_serializing_if = "Vec::is_empty")]
12513 pub data_ref: Vec<CTDataRef>,
12514 #[cfg(feature = "extra-attrs")]
12516 #[serde(skip)]
12517 #[cfg(feature = "extra-attrs")]
12518 #[serde(default)]
12519 #[cfg(feature = "extra-attrs")]
12520 pub extra_attrs: std::collections::HashMap<String, String>,
12521 #[cfg(feature = "extra-children")]
12523 #[serde(skip)]
12524 #[cfg(feature = "extra-children")]
12525 pub extra_children: Vec<ooxml_xml::PositionedNode>,
12526}
12527
12528#[derive(Debug, Clone, Default, Serialize, Deserialize)]
12529pub struct CTDataRef {
12530 #[serde(rename = "@ref")]
12531 #[serde(default, skip_serializing_if = "Option::is_none")]
12532 pub reference: Option<Reference>,
12533 #[serde(rename = "@name")]
12534 #[serde(default, skip_serializing_if = "Option::is_none")]
12535 pub name: Option<XmlString>,
12536 #[serde(rename = "@sheet")]
12537 #[serde(default, skip_serializing_if = "Option::is_none")]
12538 pub sheet: Option<XmlString>,
12539 #[serde(rename = "@r:id")]
12540 #[serde(default, skip_serializing_if = "Option::is_none")]
12541 pub id: Option<STRelationshipId>,
12542 #[cfg(feature = "extra-attrs")]
12544 #[serde(skip)]
12545 #[cfg(feature = "extra-attrs")]
12546 #[serde(default)]
12547 #[cfg(feature = "extra-attrs")]
12548 pub extra_attrs: std::collections::HashMap<String, String>,
12549}
12550
12551#[derive(Debug, Clone, Default, Serialize, Deserialize)]
12552#[serde(rename = "mergeCells")]
12553pub struct MergedCells {
12554 #[serde(rename = "@count")]
12555 #[serde(default, skip_serializing_if = "Option::is_none")]
12556 pub count: Option<u32>,
12557 #[serde(rename = "mergeCell")]
12558 #[serde(default, skip_serializing_if = "Vec::is_empty")]
12559 pub merge_cell: Vec<MergedCell>,
12560 #[cfg(feature = "extra-attrs")]
12562 #[serde(skip)]
12563 #[cfg(feature = "extra-attrs")]
12564 #[serde(default)]
12565 #[cfg(feature = "extra-attrs")]
12566 pub extra_attrs: std::collections::HashMap<String, String>,
12567 #[cfg(feature = "extra-children")]
12569 #[serde(skip)]
12570 #[cfg(feature = "extra-children")]
12571 pub extra_children: Vec<ooxml_xml::PositionedNode>,
12572}
12573
12574#[derive(Debug, Clone, Serialize, Deserialize)]
12575#[serde(rename = "mergeCell")]
12576pub struct MergedCell {
12577 #[serde(rename = "@ref")]
12578 pub reference: Reference,
12579 #[cfg(feature = "extra-attrs")]
12581 #[serde(skip)]
12582 #[cfg(feature = "extra-attrs")]
12583 #[serde(default)]
12584 #[cfg(feature = "extra-attrs")]
12585 pub extra_attrs: std::collections::HashMap<String, String>,
12586}
12587
12588#[derive(Debug, Clone, Default, Serialize, Deserialize)]
12589pub struct SmartTags {
12590 #[serde(rename = "cellSmartTags")]
12591 #[serde(default, skip_serializing_if = "Vec::is_empty")]
12592 pub cell_smart_tags: Vec<CellSmartTags>,
12593 #[cfg(feature = "extra-children")]
12595 #[serde(skip)]
12596 #[cfg(feature = "extra-children")]
12597 pub extra_children: Vec<ooxml_xml::PositionedNode>,
12598}
12599
12600#[derive(Debug, Clone, Serialize, Deserialize)]
12601pub struct CellSmartTags {
12602 #[serde(rename = "@r")]
12603 pub reference: CellRef,
12604 #[serde(rename = "cellSmartTag")]
12605 #[serde(default, skip_serializing_if = "Vec::is_empty")]
12606 pub cell_smart_tag: Vec<CellSmartTag>,
12607 #[cfg(feature = "extra-attrs")]
12609 #[serde(skip)]
12610 #[cfg(feature = "extra-attrs")]
12611 #[serde(default)]
12612 #[cfg(feature = "extra-attrs")]
12613 pub extra_attrs: std::collections::HashMap<String, String>,
12614 #[cfg(feature = "extra-children")]
12616 #[serde(skip)]
12617 #[cfg(feature = "extra-children")]
12618 pub extra_children: Vec<ooxml_xml::PositionedNode>,
12619}
12620
12621#[derive(Debug, Clone, Serialize, Deserialize)]
12622pub struct CellSmartTag {
12623 #[serde(rename = "@type")]
12624 pub r#type: u32,
12625 #[serde(rename = "@deleted")]
12626 #[serde(
12627 default,
12628 skip_serializing_if = "Option::is_none",
12629 with = "ooxml_xml::ooxml_bool"
12630 )]
12631 pub deleted: Option<bool>,
12632 #[serde(rename = "@xmlBased")]
12633 #[serde(
12634 default,
12635 skip_serializing_if = "Option::is_none",
12636 with = "ooxml_xml::ooxml_bool"
12637 )]
12638 pub xml_based: Option<bool>,
12639 #[serde(rename = "cellSmartTagPr")]
12640 #[serde(default, skip_serializing_if = "Vec::is_empty")]
12641 pub cell_smart_tag_pr: Vec<CTCellSmartTagPr>,
12642 #[cfg(feature = "extra-attrs")]
12644 #[serde(skip)]
12645 #[cfg(feature = "extra-attrs")]
12646 #[serde(default)]
12647 #[cfg(feature = "extra-attrs")]
12648 pub extra_attrs: std::collections::HashMap<String, String>,
12649 #[cfg(feature = "extra-children")]
12651 #[serde(skip)]
12652 #[cfg(feature = "extra-children")]
12653 pub extra_children: Vec<ooxml_xml::PositionedNode>,
12654}
12655
12656#[derive(Debug, Clone, Serialize, Deserialize)]
12657pub struct CTCellSmartTagPr {
12658 #[serde(rename = "@key")]
12659 pub key: XmlString,
12660 #[serde(rename = "@val")]
12661 pub value: XmlString,
12662 #[cfg(feature = "extra-attrs")]
12664 #[serde(skip)]
12665 #[cfg(feature = "extra-attrs")]
12666 #[serde(default)]
12667 #[cfg(feature = "extra-attrs")]
12668 pub extra_attrs: std::collections::HashMap<String, String>,
12669}
12670
12671#[derive(Debug, Clone, Serialize, Deserialize)]
12672pub struct Drawing {
12673 #[serde(rename = "@r:id")]
12674 pub id: STRelationshipId,
12675 #[cfg(feature = "extra-attrs")]
12677 #[serde(skip)]
12678 #[cfg(feature = "extra-attrs")]
12679 #[serde(default)]
12680 #[cfg(feature = "extra-attrs")]
12681 pub extra_attrs: std::collections::HashMap<String, String>,
12682}
12683
12684#[derive(Debug, Clone, Serialize, Deserialize)]
12685pub struct LegacyDrawing {
12686 #[serde(rename = "@r:id")]
12687 pub id: STRelationshipId,
12688 #[cfg(feature = "extra-attrs")]
12690 #[serde(skip)]
12691 #[cfg(feature = "extra-attrs")]
12692 #[serde(default)]
12693 #[cfg(feature = "extra-attrs")]
12694 pub extra_attrs: std::collections::HashMap<String, String>,
12695}
12696
12697#[derive(Debug, Clone, Serialize, Deserialize)]
12698pub struct DrawingHeaderFooter {
12699 #[serde(rename = "@r:id")]
12700 pub id: STRelationshipId,
12701 #[serde(rename = "@lho")]
12702 #[serde(default, skip_serializing_if = "Option::is_none")]
12703 pub lho: Option<u32>,
12704 #[serde(rename = "@lhe")]
12705 #[serde(default, skip_serializing_if = "Option::is_none")]
12706 pub lhe: Option<u32>,
12707 #[serde(rename = "@lhf")]
12708 #[serde(default, skip_serializing_if = "Option::is_none")]
12709 pub lhf: Option<u32>,
12710 #[serde(rename = "@cho")]
12711 #[serde(default, skip_serializing_if = "Option::is_none")]
12712 pub cho: Option<u32>,
12713 #[serde(rename = "@che")]
12714 #[serde(default, skip_serializing_if = "Option::is_none")]
12715 pub che: Option<u32>,
12716 #[serde(rename = "@chf")]
12717 #[serde(default, skip_serializing_if = "Option::is_none")]
12718 pub chf: Option<u32>,
12719 #[serde(rename = "@rho")]
12720 #[serde(default, skip_serializing_if = "Option::is_none")]
12721 pub rho: Option<u32>,
12722 #[serde(rename = "@rhe")]
12723 #[serde(default, skip_serializing_if = "Option::is_none")]
12724 pub rhe: Option<u32>,
12725 #[serde(rename = "@rhf")]
12726 #[serde(default, skip_serializing_if = "Option::is_none")]
12727 pub rhf: Option<u32>,
12728 #[serde(rename = "@lfo")]
12729 #[serde(default, skip_serializing_if = "Option::is_none")]
12730 pub lfo: Option<u32>,
12731 #[serde(rename = "@lfe")]
12732 #[serde(default, skip_serializing_if = "Option::is_none")]
12733 pub lfe: Option<u32>,
12734 #[serde(rename = "@lff")]
12735 #[serde(default, skip_serializing_if = "Option::is_none")]
12736 pub lff: Option<u32>,
12737 #[serde(rename = "@cfo")]
12738 #[serde(default, skip_serializing_if = "Option::is_none")]
12739 pub cfo: Option<u32>,
12740 #[serde(rename = "@cfe")]
12741 #[serde(default, skip_serializing_if = "Option::is_none")]
12742 pub cfe: Option<u32>,
12743 #[serde(rename = "@cff")]
12744 #[serde(default, skip_serializing_if = "Option::is_none")]
12745 pub cff: Option<u32>,
12746 #[serde(rename = "@rfo")]
12747 #[serde(default, skip_serializing_if = "Option::is_none")]
12748 pub rfo: Option<u32>,
12749 #[serde(rename = "@rfe")]
12750 #[serde(default, skip_serializing_if = "Option::is_none")]
12751 pub rfe: Option<u32>,
12752 #[serde(rename = "@rff")]
12753 #[serde(default, skip_serializing_if = "Option::is_none")]
12754 pub rff: Option<u32>,
12755 #[cfg(feature = "extra-attrs")]
12757 #[serde(skip)]
12758 #[cfg(feature = "extra-attrs")]
12759 #[serde(default)]
12760 #[cfg(feature = "extra-attrs")]
12761 pub extra_attrs: std::collections::HashMap<String, String>,
12762}
12763
12764#[derive(Debug, Clone, Default, Serialize, Deserialize)]
12765pub struct CustomSheetViews {
12766 #[serde(rename = "customSheetView")]
12767 #[serde(default, skip_serializing_if = "Vec::is_empty")]
12768 pub custom_sheet_view: Vec<CustomSheetView>,
12769 #[cfg(feature = "extra-children")]
12771 #[serde(skip)]
12772 #[cfg(feature = "extra-children")]
12773 pub extra_children: Vec<ooxml_xml::PositionedNode>,
12774}
12775
12776#[derive(Debug, Clone, Serialize, Deserialize)]
12777pub struct CustomSheetView {
12778 #[serde(rename = "@guid")]
12779 pub guid: Guid,
12780 #[serde(rename = "@scale")]
12781 #[serde(default, skip_serializing_if = "Option::is_none")]
12782 pub scale: Option<u32>,
12783 #[serde(rename = "@colorId")]
12784 #[serde(default, skip_serializing_if = "Option::is_none")]
12785 pub color_id: Option<u32>,
12786 #[serde(rename = "@showPageBreaks")]
12787 #[serde(
12788 default,
12789 skip_serializing_if = "Option::is_none",
12790 with = "ooxml_xml::ooxml_bool"
12791 )]
12792 pub show_page_breaks: Option<bool>,
12793 #[serde(rename = "@showFormulas")]
12794 #[serde(
12795 default,
12796 skip_serializing_if = "Option::is_none",
12797 with = "ooxml_xml::ooxml_bool"
12798 )]
12799 pub show_formulas: Option<bool>,
12800 #[serde(rename = "@showGridLines")]
12801 #[serde(
12802 default,
12803 skip_serializing_if = "Option::is_none",
12804 with = "ooxml_xml::ooxml_bool"
12805 )]
12806 pub show_grid_lines: Option<bool>,
12807 #[serde(rename = "@showRowCol")]
12808 #[serde(
12809 default,
12810 skip_serializing_if = "Option::is_none",
12811 with = "ooxml_xml::ooxml_bool"
12812 )]
12813 pub show_row_col: Option<bool>,
12814 #[serde(rename = "@outlineSymbols")]
12815 #[serde(
12816 default,
12817 skip_serializing_if = "Option::is_none",
12818 with = "ooxml_xml::ooxml_bool"
12819 )]
12820 pub outline_symbols: Option<bool>,
12821 #[serde(rename = "@zeroValues")]
12822 #[serde(
12823 default,
12824 skip_serializing_if = "Option::is_none",
12825 with = "ooxml_xml::ooxml_bool"
12826 )]
12827 pub zero_values: Option<bool>,
12828 #[serde(rename = "@fitToPage")]
12829 #[serde(
12830 default,
12831 skip_serializing_if = "Option::is_none",
12832 with = "ooxml_xml::ooxml_bool"
12833 )]
12834 pub fit_to_page: Option<bool>,
12835 #[serde(rename = "@printArea")]
12836 #[serde(
12837 default,
12838 skip_serializing_if = "Option::is_none",
12839 with = "ooxml_xml::ooxml_bool"
12840 )]
12841 pub print_area: Option<bool>,
12842 #[serde(rename = "@filter")]
12843 #[serde(
12844 default,
12845 skip_serializing_if = "Option::is_none",
12846 with = "ooxml_xml::ooxml_bool"
12847 )]
12848 pub filter: Option<bool>,
12849 #[serde(rename = "@showAutoFilter")]
12850 #[serde(
12851 default,
12852 skip_serializing_if = "Option::is_none",
12853 with = "ooxml_xml::ooxml_bool"
12854 )]
12855 pub show_auto_filter: Option<bool>,
12856 #[serde(rename = "@hiddenRows")]
12857 #[serde(
12858 default,
12859 skip_serializing_if = "Option::is_none",
12860 with = "ooxml_xml::ooxml_bool"
12861 )]
12862 pub hidden_rows: Option<bool>,
12863 #[serde(rename = "@hiddenColumns")]
12864 #[serde(
12865 default,
12866 skip_serializing_if = "Option::is_none",
12867 with = "ooxml_xml::ooxml_bool"
12868 )]
12869 pub hidden_columns: Option<bool>,
12870 #[serde(rename = "@state")]
12871 #[serde(default, skip_serializing_if = "Option::is_none")]
12872 pub state: Option<SheetState>,
12873 #[serde(rename = "@filterUnique")]
12874 #[serde(
12875 default,
12876 skip_serializing_if = "Option::is_none",
12877 with = "ooxml_xml::ooxml_bool"
12878 )]
12879 pub filter_unique: Option<bool>,
12880 #[serde(rename = "@view")]
12881 #[serde(default, skip_serializing_if = "Option::is_none")]
12882 pub view: Option<SheetViewType>,
12883 #[serde(rename = "@showRuler")]
12884 #[serde(
12885 default,
12886 skip_serializing_if = "Option::is_none",
12887 with = "ooxml_xml::ooxml_bool"
12888 )]
12889 pub show_ruler: Option<bool>,
12890 #[serde(rename = "@topLeftCell")]
12891 #[serde(default, skip_serializing_if = "Option::is_none")]
12892 pub top_left_cell: Option<CellRef>,
12893 #[serde(rename = "pane")]
12894 #[serde(default, skip_serializing_if = "Option::is_none")]
12895 pub pane: Option<Box<Pane>>,
12896 #[serde(rename = "selection")]
12897 #[serde(default, skip_serializing_if = "Option::is_none")]
12898 pub selection: Option<Box<Selection>>,
12899 #[serde(rename = "rowBreaks")]
12900 #[serde(default, skip_serializing_if = "Option::is_none")]
12901 pub row_breaks: Option<Box<PageBreaks>>,
12902 #[serde(rename = "colBreaks")]
12903 #[serde(default, skip_serializing_if = "Option::is_none")]
12904 pub col_breaks: Option<Box<PageBreaks>>,
12905 #[serde(rename = "pageMargins")]
12906 #[serde(default, skip_serializing_if = "Option::is_none")]
12907 pub page_margins: Option<Box<PageMargins>>,
12908 #[serde(rename = "printOptions")]
12909 #[serde(default, skip_serializing_if = "Option::is_none")]
12910 pub print_options: Option<Box<PrintOptions>>,
12911 #[serde(rename = "pageSetup")]
12912 #[serde(default, skip_serializing_if = "Option::is_none")]
12913 pub page_setup: Option<Box<PageSetup>>,
12914 #[serde(rename = "headerFooter")]
12915 #[serde(default, skip_serializing_if = "Option::is_none")]
12916 pub header_footer: Option<Box<HeaderFooter>>,
12917 #[serde(rename = "autoFilter")]
12918 #[serde(default, skip_serializing_if = "Option::is_none")]
12919 pub auto_filter: Option<Box<AutoFilter>>,
12920 #[serde(rename = "extLst")]
12921 #[serde(default, skip_serializing_if = "Option::is_none")]
12922 pub extension_list: Option<Box<ExtensionList>>,
12923 #[cfg(feature = "extra-attrs")]
12925 #[serde(skip)]
12926 #[cfg(feature = "extra-attrs")]
12927 #[serde(default)]
12928 #[cfg(feature = "extra-attrs")]
12929 pub extra_attrs: std::collections::HashMap<String, String>,
12930 #[cfg(feature = "extra-children")]
12932 #[serde(skip)]
12933 #[cfg(feature = "extra-children")]
12934 pub extra_children: Vec<ooxml_xml::PositionedNode>,
12935}
12936
12937#[derive(Debug, Clone, Default, Serialize, Deserialize)]
12938#[serde(rename = "dataValidations")]
12939pub struct DataValidations {
12940 #[serde(rename = "@disablePrompts")]
12941 #[serde(
12942 default,
12943 skip_serializing_if = "Option::is_none",
12944 with = "ooxml_xml::ooxml_bool"
12945 )]
12946 pub disable_prompts: Option<bool>,
12947 #[serde(rename = "@xWindow")]
12948 #[serde(default, skip_serializing_if = "Option::is_none")]
12949 pub x_window: Option<u32>,
12950 #[serde(rename = "@yWindow")]
12951 #[serde(default, skip_serializing_if = "Option::is_none")]
12952 pub y_window: Option<u32>,
12953 #[serde(rename = "@count")]
12954 #[serde(default, skip_serializing_if = "Option::is_none")]
12955 pub count: Option<u32>,
12956 #[serde(rename = "dataValidation")]
12957 #[serde(default, skip_serializing_if = "Vec::is_empty")]
12958 pub data_validation: Vec<DataValidation>,
12959 #[cfg(feature = "extra-attrs")]
12961 #[serde(skip)]
12962 #[cfg(feature = "extra-attrs")]
12963 #[serde(default)]
12964 #[cfg(feature = "extra-attrs")]
12965 pub extra_attrs: std::collections::HashMap<String, String>,
12966 #[cfg(feature = "extra-children")]
12968 #[serde(skip)]
12969 #[cfg(feature = "extra-children")]
12970 pub extra_children: Vec<ooxml_xml::PositionedNode>,
12971}
12972
12973#[derive(Debug, Clone, Serialize, Deserialize)]
12974#[serde(rename = "dataValidation")]
12975pub struct DataValidation {
12976 #[cfg(feature = "sml-validation")]
12977 #[serde(rename = "@type")]
12978 #[serde(default, skip_serializing_if = "Option::is_none")]
12979 pub r#type: Option<ValidationType>,
12980 #[cfg(feature = "sml-validation")]
12981 #[serde(rename = "@errorStyle")]
12982 #[serde(default, skip_serializing_if = "Option::is_none")]
12983 pub error_style: Option<ValidationErrorStyle>,
12984 #[cfg(feature = "sml-validation")]
12985 #[serde(rename = "@imeMode")]
12986 #[serde(default, skip_serializing_if = "Option::is_none")]
12987 pub ime_mode: Option<STDataValidationImeMode>,
12988 #[cfg(feature = "sml-validation")]
12989 #[serde(rename = "@operator")]
12990 #[serde(default, skip_serializing_if = "Option::is_none")]
12991 pub operator: Option<ValidationOperator>,
12992 #[cfg(feature = "sml-validation")]
12993 #[serde(rename = "@allowBlank")]
12994 #[serde(
12995 default,
12996 skip_serializing_if = "Option::is_none",
12997 with = "ooxml_xml::ooxml_bool"
12998 )]
12999 pub allow_blank: Option<bool>,
13000 #[cfg(feature = "sml-validation")]
13001 #[serde(rename = "@showDropDown")]
13002 #[serde(
13003 default,
13004 skip_serializing_if = "Option::is_none",
13005 with = "ooxml_xml::ooxml_bool"
13006 )]
13007 pub show_drop_down: Option<bool>,
13008 #[cfg(feature = "sml-validation")]
13009 #[serde(rename = "@showInputMessage")]
13010 #[serde(
13011 default,
13012 skip_serializing_if = "Option::is_none",
13013 with = "ooxml_xml::ooxml_bool"
13014 )]
13015 pub show_input_message: Option<bool>,
13016 #[cfg(feature = "sml-validation")]
13017 #[serde(rename = "@showErrorMessage")]
13018 #[serde(
13019 default,
13020 skip_serializing_if = "Option::is_none",
13021 with = "ooxml_xml::ooxml_bool"
13022 )]
13023 pub show_error_message: Option<bool>,
13024 #[cfg(feature = "sml-validation")]
13025 #[serde(rename = "@errorTitle")]
13026 #[serde(default, skip_serializing_if = "Option::is_none")]
13027 pub error_title: Option<XmlString>,
13028 #[cfg(feature = "sml-validation")]
13029 #[serde(rename = "@error")]
13030 #[serde(default, skip_serializing_if = "Option::is_none")]
13031 pub error: Option<XmlString>,
13032 #[cfg(feature = "sml-validation")]
13033 #[serde(rename = "@promptTitle")]
13034 #[serde(default, skip_serializing_if = "Option::is_none")]
13035 pub prompt_title: Option<XmlString>,
13036 #[cfg(feature = "sml-validation")]
13037 #[serde(rename = "@prompt")]
13038 #[serde(default, skip_serializing_if = "Option::is_none")]
13039 pub prompt: Option<XmlString>,
13040 #[cfg(feature = "sml-validation")]
13041 #[serde(rename = "@sqref")]
13042 pub square_reference: SquareRef,
13043 #[cfg(feature = "sml-validation")]
13044 #[serde(rename = "formula1")]
13045 #[serde(default, skip_serializing_if = "Option::is_none")]
13046 pub formula1: Option<STFormula>,
13047 #[cfg(feature = "sml-validation")]
13048 #[serde(rename = "formula2")]
13049 #[serde(default, skip_serializing_if = "Option::is_none")]
13050 pub formula2: Option<STFormula>,
13051 #[cfg(feature = "extra-attrs")]
13053 #[serde(skip)]
13054 #[cfg(feature = "extra-attrs")]
13055 #[serde(default)]
13056 #[cfg(feature = "extra-attrs")]
13057 pub extra_attrs: std::collections::HashMap<String, String>,
13058 #[cfg(feature = "extra-children")]
13060 #[serde(skip)]
13061 #[cfg(feature = "extra-children")]
13062 pub extra_children: Vec<ooxml_xml::PositionedNode>,
13063}
13064
13065#[derive(Debug, Clone, Default, Serialize, Deserialize)]
13066#[serde(rename = "conditionalFormatting")]
13067pub struct ConditionalFormatting {
13068 #[cfg(feature = "sml-pivot")]
13069 #[serde(rename = "@pivot")]
13070 #[serde(
13071 default,
13072 skip_serializing_if = "Option::is_none",
13073 with = "ooxml_xml::ooxml_bool"
13074 )]
13075 pub pivot: Option<bool>,
13076 #[cfg(feature = "sml-styling")]
13077 #[serde(rename = "@sqref")]
13078 #[serde(default, skip_serializing_if = "Option::is_none")]
13079 pub square_reference: Option<SquareRef>,
13080 #[cfg(feature = "sml-styling")]
13081 #[serde(rename = "cfRule")]
13082 #[serde(default, skip_serializing_if = "Vec::is_empty")]
13083 pub cf_rule: Vec<ConditionalRule>,
13084 #[cfg(feature = "sml-extensions")]
13085 #[serde(rename = "extLst")]
13086 #[serde(default, skip_serializing_if = "Option::is_none")]
13087 pub extension_list: Option<Box<ExtensionList>>,
13088 #[cfg(feature = "extra-attrs")]
13090 #[serde(skip)]
13091 #[cfg(feature = "extra-attrs")]
13092 #[serde(default)]
13093 #[cfg(feature = "extra-attrs")]
13094 pub extra_attrs: std::collections::HashMap<String, String>,
13095 #[cfg(feature = "extra-children")]
13097 #[serde(skip)]
13098 #[cfg(feature = "extra-children")]
13099 pub extra_children: Vec<ooxml_xml::PositionedNode>,
13100}
13101
13102#[derive(Debug, Clone, Serialize, Deserialize)]
13103#[serde(rename = "cfRule")]
13104pub struct ConditionalRule {
13105 #[cfg(feature = "sml-styling")]
13106 #[serde(rename = "@type")]
13107 #[serde(default, skip_serializing_if = "Option::is_none")]
13108 pub r#type: Option<ConditionalType>,
13109 #[cfg(feature = "sml-styling")]
13110 #[serde(rename = "@dxfId")]
13111 #[serde(default, skip_serializing_if = "Option::is_none")]
13112 pub dxf_id: Option<STDxfId>,
13113 #[cfg(feature = "sml-styling")]
13114 #[serde(rename = "@priority")]
13115 pub priority: i32,
13116 #[cfg(feature = "sml-styling")]
13117 #[serde(rename = "@stopIfTrue")]
13118 #[serde(
13119 default,
13120 skip_serializing_if = "Option::is_none",
13121 with = "ooxml_xml::ooxml_bool"
13122 )]
13123 pub stop_if_true: Option<bool>,
13124 #[cfg(feature = "sml-styling")]
13125 #[serde(rename = "@aboveAverage")]
13126 #[serde(
13127 default,
13128 skip_serializing_if = "Option::is_none",
13129 with = "ooxml_xml::ooxml_bool"
13130 )]
13131 pub above_average: Option<bool>,
13132 #[cfg(feature = "sml-styling")]
13133 #[serde(rename = "@percent")]
13134 #[serde(
13135 default,
13136 skip_serializing_if = "Option::is_none",
13137 with = "ooxml_xml::ooxml_bool"
13138 )]
13139 pub percent: Option<bool>,
13140 #[cfg(feature = "sml-styling")]
13141 #[serde(rename = "@bottom")]
13142 #[serde(
13143 default,
13144 skip_serializing_if = "Option::is_none",
13145 with = "ooxml_xml::ooxml_bool"
13146 )]
13147 pub bottom: Option<bool>,
13148 #[cfg(feature = "sml-styling")]
13149 #[serde(rename = "@operator")]
13150 #[serde(default, skip_serializing_if = "Option::is_none")]
13151 pub operator: Option<ConditionalOperator>,
13152 #[cfg(feature = "sml-styling")]
13153 #[serde(rename = "@text")]
13154 #[serde(default, skip_serializing_if = "Option::is_none")]
13155 pub text: Option<String>,
13156 #[cfg(feature = "sml-styling")]
13157 #[serde(rename = "@timePeriod")]
13158 #[serde(default, skip_serializing_if = "Option::is_none")]
13159 pub time_period: Option<STTimePeriod>,
13160 #[cfg(feature = "sml-styling")]
13161 #[serde(rename = "@rank")]
13162 #[serde(default, skip_serializing_if = "Option::is_none")]
13163 pub rank: Option<u32>,
13164 #[cfg(feature = "sml-styling")]
13165 #[serde(rename = "@stdDev")]
13166 #[serde(default, skip_serializing_if = "Option::is_none")]
13167 pub std_dev: Option<i32>,
13168 #[cfg(feature = "sml-styling")]
13169 #[serde(rename = "@equalAverage")]
13170 #[serde(
13171 default,
13172 skip_serializing_if = "Option::is_none",
13173 with = "ooxml_xml::ooxml_bool"
13174 )]
13175 pub equal_average: Option<bool>,
13176 #[cfg(feature = "sml-styling")]
13177 #[serde(rename = "formula")]
13178 #[serde(default, skip_serializing_if = "Vec::is_empty")]
13179 pub formula: Vec<STFormula>,
13180 #[cfg(feature = "sml-styling")]
13181 #[serde(rename = "colorScale")]
13182 #[serde(default, skip_serializing_if = "Option::is_none")]
13183 pub color_scale: Option<Box<ColorScale>>,
13184 #[cfg(feature = "sml-styling")]
13185 #[serde(rename = "dataBar")]
13186 #[serde(default, skip_serializing_if = "Option::is_none")]
13187 pub data_bar: Option<Box<DataBar>>,
13188 #[cfg(feature = "sml-styling")]
13189 #[serde(rename = "iconSet")]
13190 #[serde(default, skip_serializing_if = "Option::is_none")]
13191 pub icon_set: Option<Box<IconSet>>,
13192 #[cfg(feature = "sml-extensions")]
13193 #[serde(rename = "extLst")]
13194 #[serde(default, skip_serializing_if = "Option::is_none")]
13195 pub extension_list: Option<Box<ExtensionList>>,
13196 #[cfg(feature = "extra-attrs")]
13198 #[serde(skip)]
13199 #[cfg(feature = "extra-attrs")]
13200 #[serde(default)]
13201 #[cfg(feature = "extra-attrs")]
13202 pub extra_attrs: std::collections::HashMap<String, String>,
13203 #[cfg(feature = "extra-children")]
13205 #[serde(skip)]
13206 #[cfg(feature = "extra-children")]
13207 pub extra_children: Vec<ooxml_xml::PositionedNode>,
13208}
13209
13210#[derive(Debug, Clone, Default, Serialize, Deserialize)]
13211#[serde(rename = "hyperlinks")]
13212pub struct Hyperlinks {
13213 #[serde(rename = "hyperlink")]
13214 #[serde(default, skip_serializing_if = "Vec::is_empty")]
13215 pub hyperlink: Vec<Hyperlink>,
13216 #[cfg(feature = "extra-children")]
13218 #[serde(skip)]
13219 #[cfg(feature = "extra-children")]
13220 pub extra_children: Vec<ooxml_xml::PositionedNode>,
13221}
13222
13223#[derive(Debug, Clone, Serialize, Deserialize)]
13224#[serde(rename = "hyperlink")]
13225pub struct Hyperlink {
13226 #[cfg(feature = "sml-hyperlinks")]
13227 #[serde(rename = "@ref")]
13228 pub reference: Reference,
13229 #[serde(rename = "@r:id")]
13230 #[serde(default, skip_serializing_if = "Option::is_none")]
13231 pub id: Option<STRelationshipId>,
13232 #[cfg(feature = "sml-hyperlinks")]
13233 #[serde(rename = "@location")]
13234 #[serde(default, skip_serializing_if = "Option::is_none")]
13235 pub location: Option<XmlString>,
13236 #[cfg(feature = "sml-hyperlinks")]
13237 #[serde(rename = "@tooltip")]
13238 #[serde(default, skip_serializing_if = "Option::is_none")]
13239 pub tooltip: Option<XmlString>,
13240 #[cfg(feature = "sml-hyperlinks")]
13241 #[serde(rename = "@display")]
13242 #[serde(default, skip_serializing_if = "Option::is_none")]
13243 pub display: Option<XmlString>,
13244 #[cfg(feature = "extra-attrs")]
13246 #[serde(skip)]
13247 #[cfg(feature = "extra-attrs")]
13248 #[serde(default)]
13249 #[cfg(feature = "extra-attrs")]
13250 pub extra_attrs: std::collections::HashMap<String, String>,
13251}
13252
13253#[derive(Debug, Clone, Default, Serialize, Deserialize)]
13254#[serde(rename = "f")]
13255pub struct CellFormula {
13256 #[serde(rename = "$text")]
13257 #[serde(default, skip_serializing_if = "Option::is_none")]
13258 pub text: Option<String>,
13259 #[serde(rename = "@t")]
13260 #[serde(default, skip_serializing_if = "Option::is_none")]
13261 pub cell_type: Option<FormulaType>,
13262 #[cfg(feature = "sml-formulas-advanced")]
13263 #[serde(rename = "@aca")]
13264 #[serde(
13265 default,
13266 skip_serializing_if = "Option::is_none",
13267 with = "ooxml_xml::ooxml_bool"
13268 )]
13269 pub aca: Option<bool>,
13270 #[serde(rename = "@ref")]
13271 #[serde(default, skip_serializing_if = "Option::is_none")]
13272 pub reference: Option<Reference>,
13273 #[cfg(feature = "sml-formulas-advanced")]
13274 #[serde(rename = "@dt2D")]
13275 #[serde(
13276 default,
13277 skip_serializing_if = "Option::is_none",
13278 with = "ooxml_xml::ooxml_bool"
13279 )]
13280 pub dt2_d: Option<bool>,
13281 #[cfg(feature = "sml-formulas-advanced")]
13282 #[serde(rename = "@dtr")]
13283 #[serde(
13284 default,
13285 skip_serializing_if = "Option::is_none",
13286 with = "ooxml_xml::ooxml_bool"
13287 )]
13288 pub dtr: Option<bool>,
13289 #[cfg(feature = "sml-formulas-advanced")]
13290 #[serde(rename = "@del1")]
13291 #[serde(
13292 default,
13293 skip_serializing_if = "Option::is_none",
13294 with = "ooxml_xml::ooxml_bool"
13295 )]
13296 pub del1: Option<bool>,
13297 #[cfg(feature = "sml-formulas-advanced")]
13298 #[serde(rename = "@del2")]
13299 #[serde(
13300 default,
13301 skip_serializing_if = "Option::is_none",
13302 with = "ooxml_xml::ooxml_bool"
13303 )]
13304 pub del2: Option<bool>,
13305 #[cfg(feature = "sml-formulas-advanced")]
13306 #[serde(rename = "@r1")]
13307 #[serde(default, skip_serializing_if = "Option::is_none")]
13308 pub r1: Option<CellRef>,
13309 #[cfg(feature = "sml-formulas-advanced")]
13310 #[serde(rename = "@r2")]
13311 #[serde(default, skip_serializing_if = "Option::is_none")]
13312 pub r2: Option<CellRef>,
13313 #[cfg(feature = "sml-formulas-advanced")]
13314 #[serde(rename = "@ca")]
13315 #[serde(
13316 default,
13317 skip_serializing_if = "Option::is_none",
13318 with = "ooxml_xml::ooxml_bool"
13319 )]
13320 pub ca: Option<bool>,
13321 #[serde(rename = "@si")]
13322 #[serde(default, skip_serializing_if = "Option::is_none")]
13323 pub si: Option<u32>,
13324 #[cfg(feature = "sml-formulas-advanced")]
13325 #[serde(rename = "@bx")]
13326 #[serde(
13327 default,
13328 skip_serializing_if = "Option::is_none",
13329 with = "ooxml_xml::ooxml_bool"
13330 )]
13331 pub bx: Option<bool>,
13332 #[cfg(feature = "extra-attrs")]
13334 #[serde(skip)]
13335 #[cfg(feature = "extra-attrs")]
13336 #[serde(default)]
13337 #[cfg(feature = "extra-attrs")]
13338 pub extra_attrs: std::collections::HashMap<String, String>,
13339 #[cfg(feature = "extra-children")]
13341 #[serde(skip)]
13342 #[cfg(feature = "extra-children")]
13343 pub extra_children: Vec<ooxml_xml::PositionedNode>,
13344}
13345
13346#[derive(Debug, Clone, Default, Serialize, Deserialize)]
13347#[serde(rename = "colorScale")]
13348pub struct ColorScale {
13349 #[cfg(feature = "sml-styling")]
13350 #[serde(rename = "cfvo")]
13351 #[serde(default, skip_serializing_if = "Vec::is_empty")]
13352 pub cfvo: Vec<ConditionalFormatValue>,
13353 #[cfg(feature = "sml-styling")]
13354 #[serde(rename = "color")]
13355 #[serde(default, skip_serializing_if = "Vec::is_empty")]
13356 pub color: Vec<Color>,
13357 #[cfg(feature = "extra-children")]
13359 #[serde(skip)]
13360 #[cfg(feature = "extra-children")]
13361 pub extra_children: Vec<ooxml_xml::PositionedNode>,
13362}
13363
13364#[derive(Debug, Clone, Serialize, Deserialize)]
13365#[serde(rename = "dataBar")]
13366pub struct DataBar {
13367 #[cfg(feature = "sml-styling")]
13368 #[serde(rename = "@minLength")]
13369 #[serde(default, skip_serializing_if = "Option::is_none")]
13370 pub min_length: Option<u32>,
13371 #[cfg(feature = "sml-styling")]
13372 #[serde(rename = "@maxLength")]
13373 #[serde(default, skip_serializing_if = "Option::is_none")]
13374 pub max_length: Option<u32>,
13375 #[cfg(feature = "sml-styling")]
13376 #[serde(rename = "@showValue")]
13377 #[serde(
13378 default,
13379 skip_serializing_if = "Option::is_none",
13380 with = "ooxml_xml::ooxml_bool"
13381 )]
13382 pub show_value: Option<bool>,
13383 #[cfg(feature = "sml-styling")]
13384 #[serde(rename = "cfvo")]
13385 #[serde(default, skip_serializing_if = "Vec::is_empty")]
13386 pub cfvo: Vec<ConditionalFormatValue>,
13387 #[cfg(feature = "sml-styling")]
13388 #[serde(rename = "color")]
13389 pub color: Box<Color>,
13390 #[cfg(feature = "extra-attrs")]
13392 #[serde(skip)]
13393 #[cfg(feature = "extra-attrs")]
13394 #[serde(default)]
13395 #[cfg(feature = "extra-attrs")]
13396 pub extra_attrs: std::collections::HashMap<String, String>,
13397 #[cfg(feature = "extra-children")]
13399 #[serde(skip)]
13400 #[cfg(feature = "extra-children")]
13401 pub extra_children: Vec<ooxml_xml::PositionedNode>,
13402}
13403
13404#[derive(Debug, Clone, Default, Serialize, Deserialize)]
13405#[serde(rename = "iconSet")]
13406pub struct IconSet {
13407 #[cfg(feature = "sml-styling")]
13408 #[serde(rename = "@iconSet")]
13409 #[serde(default, skip_serializing_if = "Option::is_none")]
13410 pub icon_set: Option<IconSetType>,
13411 #[cfg(feature = "sml-styling")]
13412 #[serde(rename = "@showValue")]
13413 #[serde(
13414 default,
13415 skip_serializing_if = "Option::is_none",
13416 with = "ooxml_xml::ooxml_bool"
13417 )]
13418 pub show_value: Option<bool>,
13419 #[cfg(feature = "sml-styling")]
13420 #[serde(rename = "@percent")]
13421 #[serde(
13422 default,
13423 skip_serializing_if = "Option::is_none",
13424 with = "ooxml_xml::ooxml_bool"
13425 )]
13426 pub percent: Option<bool>,
13427 #[cfg(feature = "sml-styling")]
13428 #[serde(rename = "@reverse")]
13429 #[serde(
13430 default,
13431 skip_serializing_if = "Option::is_none",
13432 with = "ooxml_xml::ooxml_bool"
13433 )]
13434 pub reverse: Option<bool>,
13435 #[cfg(feature = "sml-styling")]
13436 #[serde(rename = "cfvo")]
13437 #[serde(default, skip_serializing_if = "Vec::is_empty")]
13438 pub cfvo: Vec<ConditionalFormatValue>,
13439 #[cfg(feature = "extra-attrs")]
13441 #[serde(skip)]
13442 #[cfg(feature = "extra-attrs")]
13443 #[serde(default)]
13444 #[cfg(feature = "extra-attrs")]
13445 pub extra_attrs: std::collections::HashMap<String, String>,
13446 #[cfg(feature = "extra-children")]
13448 #[serde(skip)]
13449 #[cfg(feature = "extra-children")]
13450 pub extra_children: Vec<ooxml_xml::PositionedNode>,
13451}
13452
13453#[derive(Debug, Clone, Serialize, Deserialize)]
13454#[serde(rename = "cfvo")]
13455pub struct ConditionalFormatValue {
13456 #[cfg(feature = "sml-styling")]
13457 #[serde(rename = "@type")]
13458 pub r#type: ConditionalValueType,
13459 #[cfg(feature = "sml-styling")]
13460 #[serde(rename = "@val")]
13461 #[serde(default, skip_serializing_if = "Option::is_none")]
13462 pub value: Option<XmlString>,
13463 #[cfg(feature = "sml-styling")]
13464 #[serde(rename = "@gte")]
13465 #[serde(
13466 default,
13467 skip_serializing_if = "Option::is_none",
13468 with = "ooxml_xml::ooxml_bool"
13469 )]
13470 pub gte: Option<bool>,
13471 #[serde(rename = "extLst")]
13472 #[serde(default, skip_serializing_if = "Option::is_none")]
13473 pub extension_list: Option<Box<ExtensionList>>,
13474 #[cfg(feature = "extra-attrs")]
13476 #[serde(skip)]
13477 #[cfg(feature = "extra-attrs")]
13478 #[serde(default)]
13479 #[cfg(feature = "extra-attrs")]
13480 pub extra_attrs: std::collections::HashMap<String, String>,
13481 #[cfg(feature = "extra-children")]
13483 #[serde(skip)]
13484 #[cfg(feature = "extra-children")]
13485 pub extra_children: Vec<ooxml_xml::PositionedNode>,
13486}
13487
13488#[derive(Debug, Clone, Serialize, Deserialize)]
13489#[serde(rename = "pageMargins")]
13490pub struct PageMargins {
13491 #[cfg(feature = "sml-layout")]
13492 #[serde(rename = "@left")]
13493 pub left: f64,
13494 #[cfg(feature = "sml-layout")]
13495 #[serde(rename = "@right")]
13496 pub right: f64,
13497 #[cfg(feature = "sml-layout")]
13498 #[serde(rename = "@top")]
13499 pub top: f64,
13500 #[cfg(feature = "sml-layout")]
13501 #[serde(rename = "@bottom")]
13502 pub bottom: f64,
13503 #[cfg(feature = "sml-layout")]
13504 #[serde(rename = "@header")]
13505 pub header: f64,
13506 #[cfg(feature = "sml-layout")]
13507 #[serde(rename = "@footer")]
13508 pub footer: f64,
13509 #[cfg(feature = "extra-attrs")]
13511 #[serde(skip)]
13512 #[cfg(feature = "extra-attrs")]
13513 #[serde(default)]
13514 #[cfg(feature = "extra-attrs")]
13515 pub extra_attrs: std::collections::HashMap<String, String>,
13516}
13517
13518#[derive(Debug, Clone, Default, Serialize, Deserialize)]
13519#[serde(rename = "printOptions")]
13520pub struct PrintOptions {
13521 #[serde(rename = "@horizontalCentered")]
13522 #[serde(
13523 default,
13524 skip_serializing_if = "Option::is_none",
13525 with = "ooxml_xml::ooxml_bool"
13526 )]
13527 pub horizontal_centered: Option<bool>,
13528 #[serde(rename = "@verticalCentered")]
13529 #[serde(
13530 default,
13531 skip_serializing_if = "Option::is_none",
13532 with = "ooxml_xml::ooxml_bool"
13533 )]
13534 pub vertical_centered: Option<bool>,
13535 #[serde(rename = "@headings")]
13536 #[serde(
13537 default,
13538 skip_serializing_if = "Option::is_none",
13539 with = "ooxml_xml::ooxml_bool"
13540 )]
13541 pub headings: Option<bool>,
13542 #[serde(rename = "@gridLines")]
13543 #[serde(
13544 default,
13545 skip_serializing_if = "Option::is_none",
13546 with = "ooxml_xml::ooxml_bool"
13547 )]
13548 pub grid_lines: Option<bool>,
13549 #[serde(rename = "@gridLinesSet")]
13550 #[serde(
13551 default,
13552 skip_serializing_if = "Option::is_none",
13553 with = "ooxml_xml::ooxml_bool"
13554 )]
13555 pub grid_lines_set: Option<bool>,
13556 #[cfg(feature = "extra-attrs")]
13558 #[serde(skip)]
13559 #[cfg(feature = "extra-attrs")]
13560 #[serde(default)]
13561 #[cfg(feature = "extra-attrs")]
13562 pub extra_attrs: std::collections::HashMap<String, String>,
13563}
13564
13565#[derive(Debug, Clone, Default, Serialize, Deserialize)]
13566#[serde(rename = "pageSetup")]
13567pub struct PageSetup {
13568 #[cfg(feature = "sml-layout")]
13569 #[serde(rename = "@paperSize")]
13570 #[serde(default, skip_serializing_if = "Option::is_none")]
13571 pub paper_size: Option<u32>,
13572 #[cfg(feature = "sml-layout")]
13573 #[serde(rename = "@paperHeight")]
13574 #[serde(default, skip_serializing_if = "Option::is_none")]
13575 pub paper_height: Option<STPositiveUniversalMeasure>,
13576 #[cfg(feature = "sml-layout")]
13577 #[serde(rename = "@paperWidth")]
13578 #[serde(default, skip_serializing_if = "Option::is_none")]
13579 pub paper_width: Option<STPositiveUniversalMeasure>,
13580 #[cfg(feature = "sml-layout")]
13581 #[serde(rename = "@scale")]
13582 #[serde(default, skip_serializing_if = "Option::is_none")]
13583 pub scale: Option<u32>,
13584 #[cfg(feature = "sml-layout")]
13585 #[serde(rename = "@firstPageNumber")]
13586 #[serde(default, skip_serializing_if = "Option::is_none")]
13587 pub first_page_number: Option<u32>,
13588 #[cfg(feature = "sml-layout")]
13589 #[serde(rename = "@fitToWidth")]
13590 #[serde(default, skip_serializing_if = "Option::is_none")]
13591 pub fit_to_width: Option<u32>,
13592 #[cfg(feature = "sml-layout")]
13593 #[serde(rename = "@fitToHeight")]
13594 #[serde(default, skip_serializing_if = "Option::is_none")]
13595 pub fit_to_height: Option<u32>,
13596 #[cfg(feature = "sml-layout")]
13597 #[serde(rename = "@pageOrder")]
13598 #[serde(default, skip_serializing_if = "Option::is_none")]
13599 pub page_order: Option<STPageOrder>,
13600 #[cfg(feature = "sml-layout")]
13601 #[serde(rename = "@orientation")]
13602 #[serde(default, skip_serializing_if = "Option::is_none")]
13603 pub orientation: Option<STOrientation>,
13604 #[cfg(feature = "sml-layout")]
13605 #[serde(rename = "@usePrinterDefaults")]
13606 #[serde(
13607 default,
13608 skip_serializing_if = "Option::is_none",
13609 with = "ooxml_xml::ooxml_bool"
13610 )]
13611 pub use_printer_defaults: Option<bool>,
13612 #[cfg(feature = "sml-layout")]
13613 #[serde(rename = "@blackAndWhite")]
13614 #[serde(
13615 default,
13616 skip_serializing_if = "Option::is_none",
13617 with = "ooxml_xml::ooxml_bool"
13618 )]
13619 pub black_and_white: Option<bool>,
13620 #[cfg(feature = "sml-layout")]
13621 #[serde(rename = "@draft")]
13622 #[serde(
13623 default,
13624 skip_serializing_if = "Option::is_none",
13625 with = "ooxml_xml::ooxml_bool"
13626 )]
13627 pub draft: Option<bool>,
13628 #[cfg(feature = "sml-layout")]
13629 #[serde(rename = "@cellComments")]
13630 #[serde(default, skip_serializing_if = "Option::is_none")]
13631 pub cell_comments: Option<STCellComments>,
13632 #[cfg(feature = "sml-layout")]
13633 #[serde(rename = "@useFirstPageNumber")]
13634 #[serde(
13635 default,
13636 skip_serializing_if = "Option::is_none",
13637 with = "ooxml_xml::ooxml_bool"
13638 )]
13639 pub use_first_page_number: Option<bool>,
13640 #[cfg(feature = "sml-layout")]
13641 #[serde(rename = "@errors")]
13642 #[serde(default, skip_serializing_if = "Option::is_none")]
13643 pub errors: Option<STPrintError>,
13644 #[cfg(feature = "sml-layout")]
13645 #[serde(rename = "@horizontalDpi")]
13646 #[serde(default, skip_serializing_if = "Option::is_none")]
13647 pub horizontal_dpi: Option<u32>,
13648 #[cfg(feature = "sml-layout")]
13649 #[serde(rename = "@verticalDpi")]
13650 #[serde(default, skip_serializing_if = "Option::is_none")]
13651 pub vertical_dpi: Option<u32>,
13652 #[cfg(feature = "sml-layout")]
13653 #[serde(rename = "@copies")]
13654 #[serde(default, skip_serializing_if = "Option::is_none")]
13655 pub copies: Option<u32>,
13656 #[serde(rename = "@r:id")]
13657 #[serde(default, skip_serializing_if = "Option::is_none")]
13658 pub id: Option<STRelationshipId>,
13659 #[cfg(feature = "extra-attrs")]
13661 #[serde(skip)]
13662 #[cfg(feature = "extra-attrs")]
13663 #[serde(default)]
13664 #[cfg(feature = "extra-attrs")]
13665 pub extra_attrs: std::collections::HashMap<String, String>,
13666}
13667
13668#[derive(Debug, Clone, Default, Serialize, Deserialize)]
13669#[serde(rename = "headerFooter")]
13670pub struct HeaderFooter {
13671 #[cfg(feature = "sml-layout")]
13672 #[serde(rename = "@differentOddEven")]
13673 #[serde(
13674 default,
13675 skip_serializing_if = "Option::is_none",
13676 with = "ooxml_xml::ooxml_bool"
13677 )]
13678 pub different_odd_even: Option<bool>,
13679 #[cfg(feature = "sml-layout")]
13680 #[serde(rename = "@differentFirst")]
13681 #[serde(
13682 default,
13683 skip_serializing_if = "Option::is_none",
13684 with = "ooxml_xml::ooxml_bool"
13685 )]
13686 pub different_first: Option<bool>,
13687 #[cfg(feature = "sml-layout")]
13688 #[serde(rename = "@scaleWithDoc")]
13689 #[serde(
13690 default,
13691 skip_serializing_if = "Option::is_none",
13692 with = "ooxml_xml::ooxml_bool"
13693 )]
13694 pub scale_with_doc: Option<bool>,
13695 #[cfg(feature = "sml-layout")]
13696 #[serde(rename = "@alignWithMargins")]
13697 #[serde(
13698 default,
13699 skip_serializing_if = "Option::is_none",
13700 with = "ooxml_xml::ooxml_bool"
13701 )]
13702 pub align_with_margins: Option<bool>,
13703 #[cfg(feature = "sml-layout")]
13704 #[serde(rename = "oddHeader")]
13705 #[serde(default, skip_serializing_if = "Option::is_none")]
13706 pub odd_header: Option<XmlString>,
13707 #[cfg(feature = "sml-layout")]
13708 #[serde(rename = "oddFooter")]
13709 #[serde(default, skip_serializing_if = "Option::is_none")]
13710 pub odd_footer: Option<XmlString>,
13711 #[cfg(feature = "sml-layout")]
13712 #[serde(rename = "evenHeader")]
13713 #[serde(default, skip_serializing_if = "Option::is_none")]
13714 pub even_header: Option<XmlString>,
13715 #[cfg(feature = "sml-layout")]
13716 #[serde(rename = "evenFooter")]
13717 #[serde(default, skip_serializing_if = "Option::is_none")]
13718 pub even_footer: Option<XmlString>,
13719 #[cfg(feature = "sml-layout")]
13720 #[serde(rename = "firstHeader")]
13721 #[serde(default, skip_serializing_if = "Option::is_none")]
13722 pub first_header: Option<XmlString>,
13723 #[cfg(feature = "sml-layout")]
13724 #[serde(rename = "firstFooter")]
13725 #[serde(default, skip_serializing_if = "Option::is_none")]
13726 pub first_footer: Option<XmlString>,
13727 #[cfg(feature = "extra-attrs")]
13729 #[serde(skip)]
13730 #[cfg(feature = "extra-attrs")]
13731 #[serde(default)]
13732 #[cfg(feature = "extra-attrs")]
13733 pub extra_attrs: std::collections::HashMap<String, String>,
13734 #[cfg(feature = "extra-children")]
13736 #[serde(skip)]
13737 #[cfg(feature = "extra-children")]
13738 pub extra_children: Vec<ooxml_xml::PositionedNode>,
13739}
13740
13741#[derive(Debug, Clone, Default, Serialize, Deserialize)]
13742pub struct Scenarios {
13743 #[serde(rename = "@current")]
13744 #[serde(default, skip_serializing_if = "Option::is_none")]
13745 pub current: Option<u32>,
13746 #[serde(rename = "@show")]
13747 #[serde(default, skip_serializing_if = "Option::is_none")]
13748 pub show: Option<u32>,
13749 #[serde(rename = "@sqref")]
13750 #[serde(default, skip_serializing_if = "Option::is_none")]
13751 pub square_reference: Option<SquareRef>,
13752 #[serde(rename = "scenario")]
13753 #[serde(default, skip_serializing_if = "Vec::is_empty")]
13754 pub scenario: Vec<Scenario>,
13755 #[cfg(feature = "extra-attrs")]
13757 #[serde(skip)]
13758 #[cfg(feature = "extra-attrs")]
13759 #[serde(default)]
13760 #[cfg(feature = "extra-attrs")]
13761 pub extra_attrs: std::collections::HashMap<String, String>,
13762 #[cfg(feature = "extra-children")]
13764 #[serde(skip)]
13765 #[cfg(feature = "extra-children")]
13766 pub extra_children: Vec<ooxml_xml::PositionedNode>,
13767}
13768
13769#[derive(Debug, Clone, Default, Serialize, Deserialize)]
13770#[serde(rename = "sheetProtection")]
13771pub struct SheetProtection {
13772 #[serde(rename = "@password")]
13773 #[serde(default, skip_serializing_if = "Option::is_none")]
13774 pub password: Option<STUnsignedShortHex>,
13775 #[serde(rename = "@algorithmName")]
13776 #[serde(default, skip_serializing_if = "Option::is_none")]
13777 pub algorithm_name: Option<XmlString>,
13778 #[serde(rename = "@hashValue")]
13779 #[serde(default, skip_serializing_if = "Option::is_none")]
13780 pub hash_value: Option<Vec<u8>>,
13781 #[serde(rename = "@saltValue")]
13782 #[serde(default, skip_serializing_if = "Option::is_none")]
13783 pub salt_value: Option<Vec<u8>>,
13784 #[serde(rename = "@spinCount")]
13785 #[serde(default, skip_serializing_if = "Option::is_none")]
13786 pub spin_count: Option<u32>,
13787 #[serde(rename = "@sheet")]
13788 #[serde(
13789 default,
13790 skip_serializing_if = "Option::is_none",
13791 with = "ooxml_xml::ooxml_bool"
13792 )]
13793 pub sheet: Option<bool>,
13794 #[serde(rename = "@objects")]
13795 #[serde(
13796 default,
13797 skip_serializing_if = "Option::is_none",
13798 with = "ooxml_xml::ooxml_bool"
13799 )]
13800 pub objects: Option<bool>,
13801 #[serde(rename = "@scenarios")]
13802 #[serde(
13803 default,
13804 skip_serializing_if = "Option::is_none",
13805 with = "ooxml_xml::ooxml_bool"
13806 )]
13807 pub scenarios: Option<bool>,
13808 #[serde(rename = "@formatCells")]
13809 #[serde(
13810 default,
13811 skip_serializing_if = "Option::is_none",
13812 with = "ooxml_xml::ooxml_bool"
13813 )]
13814 pub format_cells: Option<bool>,
13815 #[serde(rename = "@formatColumns")]
13816 #[serde(
13817 default,
13818 skip_serializing_if = "Option::is_none",
13819 with = "ooxml_xml::ooxml_bool"
13820 )]
13821 pub format_columns: Option<bool>,
13822 #[serde(rename = "@formatRows")]
13823 #[serde(
13824 default,
13825 skip_serializing_if = "Option::is_none",
13826 with = "ooxml_xml::ooxml_bool"
13827 )]
13828 pub format_rows: Option<bool>,
13829 #[serde(rename = "@insertColumns")]
13830 #[serde(
13831 default,
13832 skip_serializing_if = "Option::is_none",
13833 with = "ooxml_xml::ooxml_bool"
13834 )]
13835 pub insert_columns: Option<bool>,
13836 #[serde(rename = "@insertRows")]
13837 #[serde(
13838 default,
13839 skip_serializing_if = "Option::is_none",
13840 with = "ooxml_xml::ooxml_bool"
13841 )]
13842 pub insert_rows: Option<bool>,
13843 #[serde(rename = "@insertHyperlinks")]
13844 #[serde(
13845 default,
13846 skip_serializing_if = "Option::is_none",
13847 with = "ooxml_xml::ooxml_bool"
13848 )]
13849 pub insert_hyperlinks: Option<bool>,
13850 #[serde(rename = "@deleteColumns")]
13851 #[serde(
13852 default,
13853 skip_serializing_if = "Option::is_none",
13854 with = "ooxml_xml::ooxml_bool"
13855 )]
13856 pub delete_columns: Option<bool>,
13857 #[serde(rename = "@deleteRows")]
13858 #[serde(
13859 default,
13860 skip_serializing_if = "Option::is_none",
13861 with = "ooxml_xml::ooxml_bool"
13862 )]
13863 pub delete_rows: Option<bool>,
13864 #[serde(rename = "@selectLockedCells")]
13865 #[serde(
13866 default,
13867 skip_serializing_if = "Option::is_none",
13868 with = "ooxml_xml::ooxml_bool"
13869 )]
13870 pub select_locked_cells: Option<bool>,
13871 #[serde(rename = "@sort")]
13872 #[serde(
13873 default,
13874 skip_serializing_if = "Option::is_none",
13875 with = "ooxml_xml::ooxml_bool"
13876 )]
13877 pub sort: Option<bool>,
13878 #[serde(rename = "@autoFilter")]
13879 #[serde(
13880 default,
13881 skip_serializing_if = "Option::is_none",
13882 with = "ooxml_xml::ooxml_bool"
13883 )]
13884 pub auto_filter: Option<bool>,
13885 #[serde(rename = "@pivotTables")]
13886 #[serde(
13887 default,
13888 skip_serializing_if = "Option::is_none",
13889 with = "ooxml_xml::ooxml_bool"
13890 )]
13891 pub pivot_tables: Option<bool>,
13892 #[serde(rename = "@selectUnlockedCells")]
13893 #[serde(
13894 default,
13895 skip_serializing_if = "Option::is_none",
13896 with = "ooxml_xml::ooxml_bool"
13897 )]
13898 pub select_unlocked_cells: Option<bool>,
13899 #[cfg(feature = "extra-attrs")]
13901 #[serde(skip)]
13902 #[cfg(feature = "extra-attrs")]
13903 #[serde(default)]
13904 #[cfg(feature = "extra-attrs")]
13905 pub extra_attrs: std::collections::HashMap<String, String>,
13906}
13907
13908#[derive(Debug, Clone, Default, Serialize, Deserialize)]
13909#[serde(rename = "protectedRanges")]
13910pub struct ProtectedRanges {
13911 #[serde(rename = "protectedRange")]
13912 #[serde(default, skip_serializing_if = "Vec::is_empty")]
13913 pub protected_range: Vec<ProtectedRange>,
13914 #[cfg(feature = "extra-children")]
13916 #[serde(skip)]
13917 #[cfg(feature = "extra-children")]
13918 pub extra_children: Vec<ooxml_xml::PositionedNode>,
13919}
13920
13921#[derive(Debug, Clone, Serialize, Deserialize)]
13922#[serde(rename = "protectedRange")]
13923pub struct ProtectedRange {
13924 #[serde(rename = "@password")]
13925 #[serde(default, skip_serializing_if = "Option::is_none")]
13926 pub password: Option<STUnsignedShortHex>,
13927 #[serde(rename = "@sqref")]
13928 pub square_reference: SquareRef,
13929 #[serde(rename = "@name")]
13930 pub name: XmlString,
13931 #[serde(rename = "@securityDescriptor")]
13932 #[serde(default, skip_serializing_if = "Option::is_none")]
13933 pub security_descriptor: Option<String>,
13934 #[serde(rename = "@algorithmName")]
13935 #[serde(default, skip_serializing_if = "Option::is_none")]
13936 pub algorithm_name: Option<XmlString>,
13937 #[serde(rename = "@hashValue")]
13938 #[serde(default, skip_serializing_if = "Option::is_none")]
13939 pub hash_value: Option<Vec<u8>>,
13940 #[serde(rename = "@saltValue")]
13941 #[serde(default, skip_serializing_if = "Option::is_none")]
13942 pub salt_value: Option<Vec<u8>>,
13943 #[serde(rename = "@spinCount")]
13944 #[serde(default, skip_serializing_if = "Option::is_none")]
13945 pub spin_count: Option<u32>,
13946 #[cfg(feature = "extra-attrs")]
13948 #[serde(skip)]
13949 #[cfg(feature = "extra-attrs")]
13950 #[serde(default)]
13951 #[cfg(feature = "extra-attrs")]
13952 pub extra_attrs: std::collections::HashMap<String, String>,
13953}
13954
13955#[derive(Debug, Clone, Serialize, Deserialize)]
13956pub struct Scenario {
13957 #[serde(rename = "@name")]
13958 pub name: XmlString,
13959 #[serde(rename = "@locked")]
13960 #[serde(
13961 default,
13962 skip_serializing_if = "Option::is_none",
13963 with = "ooxml_xml::ooxml_bool"
13964 )]
13965 pub locked: Option<bool>,
13966 #[serde(rename = "@hidden")]
13967 #[serde(
13968 default,
13969 skip_serializing_if = "Option::is_none",
13970 with = "ooxml_xml::ooxml_bool"
13971 )]
13972 pub hidden: Option<bool>,
13973 #[serde(rename = "@count")]
13974 #[serde(default, skip_serializing_if = "Option::is_none")]
13975 pub count: Option<u32>,
13976 #[serde(rename = "@user")]
13977 #[serde(default, skip_serializing_if = "Option::is_none")]
13978 pub user: Option<XmlString>,
13979 #[serde(rename = "@comment")]
13980 #[serde(default, skip_serializing_if = "Option::is_none")]
13981 pub comment: Option<XmlString>,
13982 #[serde(rename = "inputCells")]
13983 #[serde(default, skip_serializing_if = "Vec::is_empty")]
13984 pub input_cells: Vec<InputCells>,
13985 #[cfg(feature = "extra-attrs")]
13987 #[serde(skip)]
13988 #[cfg(feature = "extra-attrs")]
13989 #[serde(default)]
13990 #[cfg(feature = "extra-attrs")]
13991 pub extra_attrs: std::collections::HashMap<String, String>,
13992 #[cfg(feature = "extra-children")]
13994 #[serde(skip)]
13995 #[cfg(feature = "extra-children")]
13996 pub extra_children: Vec<ooxml_xml::PositionedNode>,
13997}
13998
13999#[derive(Debug, Clone, Serialize, Deserialize)]
14000pub struct InputCells {
14001 #[serde(rename = "@r")]
14002 pub reference: CellRef,
14003 #[serde(rename = "@deleted")]
14004 #[serde(
14005 default,
14006 skip_serializing_if = "Option::is_none",
14007 with = "ooxml_xml::ooxml_bool"
14008 )]
14009 pub deleted: Option<bool>,
14010 #[serde(rename = "@undone")]
14011 #[serde(
14012 default,
14013 skip_serializing_if = "Option::is_none",
14014 with = "ooxml_xml::ooxml_bool"
14015 )]
14016 pub undone: Option<bool>,
14017 #[serde(rename = "@val")]
14018 pub value: XmlString,
14019 #[serde(rename = "@numFmtId")]
14020 #[serde(default, skip_serializing_if = "Option::is_none")]
14021 pub number_format_id: Option<STNumFmtId>,
14022 #[cfg(feature = "extra-attrs")]
14024 #[serde(skip)]
14025 #[cfg(feature = "extra-attrs")]
14026 #[serde(default)]
14027 #[cfg(feature = "extra-attrs")]
14028 pub extra_attrs: std::collections::HashMap<String, String>,
14029}
14030
14031#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14032pub struct CellWatches {
14033 #[serde(rename = "cellWatch")]
14034 #[serde(default, skip_serializing_if = "Vec::is_empty")]
14035 pub cell_watch: Vec<CellWatch>,
14036 #[cfg(feature = "extra-children")]
14038 #[serde(skip)]
14039 #[cfg(feature = "extra-children")]
14040 pub extra_children: Vec<ooxml_xml::PositionedNode>,
14041}
14042
14043#[derive(Debug, Clone, Serialize, Deserialize)]
14044pub struct CellWatch {
14045 #[serde(rename = "@r")]
14046 pub reference: CellRef,
14047 #[cfg(feature = "extra-attrs")]
14049 #[serde(skip)]
14050 #[cfg(feature = "extra-attrs")]
14051 #[serde(default)]
14052 #[cfg(feature = "extra-attrs")]
14053 pub extra_attrs: std::collections::HashMap<String, String>,
14054}
14055
14056#[derive(Debug, Clone, Serialize, Deserialize)]
14057pub struct Chartsheet {
14058 #[serde(rename = "sheetPr")]
14059 #[serde(default, skip_serializing_if = "Option::is_none")]
14060 pub sheet_properties: Option<Box<ChartsheetProperties>>,
14061 #[serde(rename = "sheetViews")]
14062 pub sheet_views: Box<ChartsheetViews>,
14063 #[serde(rename = "sheetProtection")]
14064 #[serde(default, skip_serializing_if = "Option::is_none")]
14065 pub sheet_protection: Option<Box<ChartsheetProtection>>,
14066 #[serde(rename = "customSheetViews")]
14067 #[serde(default, skip_serializing_if = "Option::is_none")]
14068 pub custom_sheet_views: Option<Box<CustomChartsheetViews>>,
14069 #[serde(rename = "pageMargins")]
14070 #[serde(default, skip_serializing_if = "Option::is_none")]
14071 pub page_margins: Option<Box<PageMargins>>,
14072 #[serde(rename = "pageSetup")]
14073 #[serde(default, skip_serializing_if = "Option::is_none")]
14074 pub page_setup: Option<Box<ChartsheetPageSetup>>,
14075 #[serde(rename = "headerFooter")]
14076 #[serde(default, skip_serializing_if = "Option::is_none")]
14077 pub header_footer: Option<Box<HeaderFooter>>,
14078 #[serde(rename = "drawing")]
14079 pub drawing: Box<Drawing>,
14080 #[serde(rename = "legacyDrawing")]
14081 #[serde(default, skip_serializing_if = "Option::is_none")]
14082 pub legacy_drawing: Option<Box<LegacyDrawing>>,
14083 #[serde(rename = "legacyDrawingHF")]
14084 #[serde(default, skip_serializing_if = "Option::is_none")]
14085 pub legacy_drawing_h_f: Option<Box<LegacyDrawing>>,
14086 #[serde(rename = "drawingHF")]
14087 #[serde(default, skip_serializing_if = "Option::is_none")]
14088 pub drawing_h_f: Option<Box<DrawingHeaderFooter>>,
14089 #[serde(rename = "picture")]
14090 #[serde(default, skip_serializing_if = "Option::is_none")]
14091 pub picture: Option<Box<SheetBackgroundPicture>>,
14092 #[serde(rename = "webPublishItems")]
14093 #[serde(default, skip_serializing_if = "Option::is_none")]
14094 pub web_publish_items: Option<Box<WebPublishItems>>,
14095 #[serde(rename = "extLst")]
14096 #[serde(default, skip_serializing_if = "Option::is_none")]
14097 pub extension_list: Option<Box<ExtensionList>>,
14098 #[cfg(feature = "extra-children")]
14100 #[serde(skip)]
14101 #[cfg(feature = "extra-children")]
14102 pub extra_children: Vec<ooxml_xml::PositionedNode>,
14103}
14104
14105#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14106pub struct ChartsheetProperties {
14107 #[serde(rename = "@published")]
14108 #[serde(
14109 default,
14110 skip_serializing_if = "Option::is_none",
14111 with = "ooxml_xml::ooxml_bool"
14112 )]
14113 pub published: Option<bool>,
14114 #[serde(rename = "@codeName")]
14115 #[serde(default, skip_serializing_if = "Option::is_none")]
14116 pub code_name: Option<String>,
14117 #[serde(rename = "tabColor")]
14118 #[serde(default, skip_serializing_if = "Option::is_none")]
14119 pub tab_color: Option<Box<Color>>,
14120 #[cfg(feature = "extra-attrs")]
14122 #[serde(skip)]
14123 #[cfg(feature = "extra-attrs")]
14124 #[serde(default)]
14125 #[cfg(feature = "extra-attrs")]
14126 pub extra_attrs: std::collections::HashMap<String, String>,
14127 #[cfg(feature = "extra-children")]
14129 #[serde(skip)]
14130 #[cfg(feature = "extra-children")]
14131 pub extra_children: Vec<ooxml_xml::PositionedNode>,
14132}
14133
14134#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14135pub struct ChartsheetViews {
14136 #[serde(rename = "sheetView")]
14137 #[serde(default, skip_serializing_if = "Vec::is_empty")]
14138 pub sheet_view: Vec<ChartsheetView>,
14139 #[serde(rename = "extLst")]
14140 #[serde(default, skip_serializing_if = "Option::is_none")]
14141 pub extension_list: Option<Box<ExtensionList>>,
14142 #[cfg(feature = "extra-children")]
14144 #[serde(skip)]
14145 #[cfg(feature = "extra-children")]
14146 pub extra_children: Vec<ooxml_xml::PositionedNode>,
14147}
14148
14149#[derive(Debug, Clone, Serialize, Deserialize)]
14150pub struct ChartsheetView {
14151 #[serde(rename = "@tabSelected")]
14152 #[serde(
14153 default,
14154 skip_serializing_if = "Option::is_none",
14155 with = "ooxml_xml::ooxml_bool"
14156 )]
14157 pub tab_selected: Option<bool>,
14158 #[serde(rename = "@zoomScale")]
14159 #[serde(default, skip_serializing_if = "Option::is_none")]
14160 pub zoom_scale: Option<u32>,
14161 #[serde(rename = "@workbookViewId")]
14162 pub workbook_view_id: u32,
14163 #[serde(rename = "@zoomToFit")]
14164 #[serde(
14165 default,
14166 skip_serializing_if = "Option::is_none",
14167 with = "ooxml_xml::ooxml_bool"
14168 )]
14169 pub zoom_to_fit: Option<bool>,
14170 #[serde(rename = "extLst")]
14171 #[serde(default, skip_serializing_if = "Option::is_none")]
14172 pub extension_list: Option<Box<ExtensionList>>,
14173 #[cfg(feature = "extra-attrs")]
14175 #[serde(skip)]
14176 #[cfg(feature = "extra-attrs")]
14177 #[serde(default)]
14178 #[cfg(feature = "extra-attrs")]
14179 pub extra_attrs: std::collections::HashMap<String, String>,
14180 #[cfg(feature = "extra-children")]
14182 #[serde(skip)]
14183 #[cfg(feature = "extra-children")]
14184 pub extra_children: Vec<ooxml_xml::PositionedNode>,
14185}
14186
14187#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14188pub struct ChartsheetProtection {
14189 #[serde(rename = "@password")]
14190 #[serde(default, skip_serializing_if = "Option::is_none")]
14191 pub password: Option<STUnsignedShortHex>,
14192 #[serde(rename = "@algorithmName")]
14193 #[serde(default, skip_serializing_if = "Option::is_none")]
14194 pub algorithm_name: Option<XmlString>,
14195 #[serde(rename = "@hashValue")]
14196 #[serde(default, skip_serializing_if = "Option::is_none")]
14197 pub hash_value: Option<Vec<u8>>,
14198 #[serde(rename = "@saltValue")]
14199 #[serde(default, skip_serializing_if = "Option::is_none")]
14200 pub salt_value: Option<Vec<u8>>,
14201 #[serde(rename = "@spinCount")]
14202 #[serde(default, skip_serializing_if = "Option::is_none")]
14203 pub spin_count: Option<u32>,
14204 #[serde(rename = "@content")]
14205 #[serde(
14206 default,
14207 skip_serializing_if = "Option::is_none",
14208 with = "ooxml_xml::ooxml_bool"
14209 )]
14210 pub content: Option<bool>,
14211 #[serde(rename = "@objects")]
14212 #[serde(
14213 default,
14214 skip_serializing_if = "Option::is_none",
14215 with = "ooxml_xml::ooxml_bool"
14216 )]
14217 pub objects: Option<bool>,
14218 #[cfg(feature = "extra-attrs")]
14220 #[serde(skip)]
14221 #[cfg(feature = "extra-attrs")]
14222 #[serde(default)]
14223 #[cfg(feature = "extra-attrs")]
14224 pub extra_attrs: std::collections::HashMap<String, String>,
14225}
14226
14227#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14228pub struct ChartsheetPageSetup {
14229 #[serde(rename = "@paperSize")]
14230 #[serde(default, skip_serializing_if = "Option::is_none")]
14231 pub paper_size: Option<u32>,
14232 #[serde(rename = "@paperHeight")]
14233 #[serde(default, skip_serializing_if = "Option::is_none")]
14234 pub paper_height: Option<STPositiveUniversalMeasure>,
14235 #[serde(rename = "@paperWidth")]
14236 #[serde(default, skip_serializing_if = "Option::is_none")]
14237 pub paper_width: Option<STPositiveUniversalMeasure>,
14238 #[serde(rename = "@firstPageNumber")]
14239 #[serde(default, skip_serializing_if = "Option::is_none")]
14240 pub first_page_number: Option<u32>,
14241 #[serde(rename = "@orientation")]
14242 #[serde(default, skip_serializing_if = "Option::is_none")]
14243 pub orientation: Option<STOrientation>,
14244 #[serde(rename = "@usePrinterDefaults")]
14245 #[serde(
14246 default,
14247 skip_serializing_if = "Option::is_none",
14248 with = "ooxml_xml::ooxml_bool"
14249 )]
14250 pub use_printer_defaults: Option<bool>,
14251 #[serde(rename = "@blackAndWhite")]
14252 #[serde(
14253 default,
14254 skip_serializing_if = "Option::is_none",
14255 with = "ooxml_xml::ooxml_bool"
14256 )]
14257 pub black_and_white: Option<bool>,
14258 #[serde(rename = "@draft")]
14259 #[serde(
14260 default,
14261 skip_serializing_if = "Option::is_none",
14262 with = "ooxml_xml::ooxml_bool"
14263 )]
14264 pub draft: Option<bool>,
14265 #[serde(rename = "@useFirstPageNumber")]
14266 #[serde(
14267 default,
14268 skip_serializing_if = "Option::is_none",
14269 with = "ooxml_xml::ooxml_bool"
14270 )]
14271 pub use_first_page_number: Option<bool>,
14272 #[serde(rename = "@horizontalDpi")]
14273 #[serde(default, skip_serializing_if = "Option::is_none")]
14274 pub horizontal_dpi: Option<u32>,
14275 #[serde(rename = "@verticalDpi")]
14276 #[serde(default, skip_serializing_if = "Option::is_none")]
14277 pub vertical_dpi: Option<u32>,
14278 #[serde(rename = "@copies")]
14279 #[serde(default, skip_serializing_if = "Option::is_none")]
14280 pub copies: Option<u32>,
14281 #[serde(rename = "@r:id")]
14282 #[serde(default, skip_serializing_if = "Option::is_none")]
14283 pub id: Option<STRelationshipId>,
14284 #[cfg(feature = "extra-attrs")]
14286 #[serde(skip)]
14287 #[cfg(feature = "extra-attrs")]
14288 #[serde(default)]
14289 #[cfg(feature = "extra-attrs")]
14290 pub extra_attrs: std::collections::HashMap<String, String>,
14291}
14292
14293#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14294pub struct CustomChartsheetViews {
14295 #[serde(rename = "customSheetView")]
14296 #[serde(default, skip_serializing_if = "Vec::is_empty")]
14297 pub custom_sheet_view: Vec<CustomChartsheetView>,
14298 #[cfg(feature = "extra-children")]
14300 #[serde(skip)]
14301 #[cfg(feature = "extra-children")]
14302 pub extra_children: Vec<ooxml_xml::PositionedNode>,
14303}
14304
14305#[derive(Debug, Clone, Serialize, Deserialize)]
14306pub struct CustomChartsheetView {
14307 #[serde(rename = "@guid")]
14308 pub guid: Guid,
14309 #[serde(rename = "@scale")]
14310 #[serde(default, skip_serializing_if = "Option::is_none")]
14311 pub scale: Option<u32>,
14312 #[serde(rename = "@state")]
14313 #[serde(default, skip_serializing_if = "Option::is_none")]
14314 pub state: Option<SheetState>,
14315 #[serde(rename = "@zoomToFit")]
14316 #[serde(
14317 default,
14318 skip_serializing_if = "Option::is_none",
14319 with = "ooxml_xml::ooxml_bool"
14320 )]
14321 pub zoom_to_fit: Option<bool>,
14322 #[serde(rename = "pageMargins")]
14323 #[serde(default, skip_serializing_if = "Option::is_none")]
14324 pub page_margins: Option<Box<PageMargins>>,
14325 #[serde(rename = "pageSetup")]
14326 #[serde(default, skip_serializing_if = "Option::is_none")]
14327 pub page_setup: Option<Box<ChartsheetPageSetup>>,
14328 #[serde(rename = "headerFooter")]
14329 #[serde(default, skip_serializing_if = "Option::is_none")]
14330 pub header_footer: Option<Box<HeaderFooter>>,
14331 #[cfg(feature = "extra-attrs")]
14333 #[serde(skip)]
14334 #[cfg(feature = "extra-attrs")]
14335 #[serde(default)]
14336 #[cfg(feature = "extra-attrs")]
14337 pub extra_attrs: std::collections::HashMap<String, String>,
14338 #[cfg(feature = "extra-children")]
14340 #[serde(skip)]
14341 #[cfg(feature = "extra-children")]
14342 pub extra_children: Vec<ooxml_xml::PositionedNode>,
14343}
14344
14345#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14346pub struct CTCustomProperties {
14347 #[serde(rename = "customPr")]
14348 #[serde(default, skip_serializing_if = "Vec::is_empty")]
14349 pub custom_pr: Vec<CTCustomProperty>,
14350 #[cfg(feature = "extra-children")]
14352 #[serde(skip)]
14353 #[cfg(feature = "extra-children")]
14354 pub extra_children: Vec<ooxml_xml::PositionedNode>,
14355}
14356
14357#[derive(Debug, Clone, Serialize, Deserialize)]
14358pub struct CTCustomProperty {
14359 #[serde(rename = "@name")]
14360 pub name: XmlString,
14361 #[serde(rename = "@r:id")]
14362 pub id: STRelationshipId,
14363 #[cfg(feature = "extra-attrs")]
14365 #[serde(skip)]
14366 #[cfg(feature = "extra-attrs")]
14367 #[serde(default)]
14368 #[cfg(feature = "extra-attrs")]
14369 pub extra_attrs: std::collections::HashMap<String, String>,
14370}
14371
14372#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14373pub struct OleObjects {
14374 #[serde(rename = "oleObject")]
14375 #[serde(default, skip_serializing_if = "Vec::is_empty")]
14376 pub ole_object: Vec<OleObject>,
14377 #[cfg(feature = "extra-children")]
14379 #[serde(skip)]
14380 #[cfg(feature = "extra-children")]
14381 pub extra_children: Vec<ooxml_xml::PositionedNode>,
14382}
14383
14384#[derive(Debug, Clone, Serialize, Deserialize)]
14385pub struct OleObject {
14386 #[serde(rename = "@progId")]
14387 #[serde(default, skip_serializing_if = "Option::is_none")]
14388 pub prog_id: Option<String>,
14389 #[serde(rename = "@dvAspect")]
14390 #[serde(default, skip_serializing_if = "Option::is_none")]
14391 pub dv_aspect: Option<STDvAspect>,
14392 #[serde(rename = "@link")]
14393 #[serde(default, skip_serializing_if = "Option::is_none")]
14394 pub link: Option<XmlString>,
14395 #[serde(rename = "@oleUpdate")]
14396 #[serde(default, skip_serializing_if = "Option::is_none")]
14397 pub ole_update: Option<STOleUpdate>,
14398 #[serde(rename = "@autoLoad")]
14399 #[serde(
14400 default,
14401 skip_serializing_if = "Option::is_none",
14402 with = "ooxml_xml::ooxml_bool"
14403 )]
14404 pub auto_load: Option<bool>,
14405 #[serde(rename = "@shapeId")]
14406 pub shape_id: u32,
14407 #[serde(rename = "@r:id")]
14408 #[serde(default, skip_serializing_if = "Option::is_none")]
14409 pub id: Option<STRelationshipId>,
14410 #[serde(rename = "objectPr")]
14411 #[serde(default, skip_serializing_if = "Option::is_none")]
14412 pub object_pr: Option<Box<ObjectProperties>>,
14413 #[cfg(feature = "extra-attrs")]
14415 #[serde(skip)]
14416 #[cfg(feature = "extra-attrs")]
14417 #[serde(default)]
14418 #[cfg(feature = "extra-attrs")]
14419 pub extra_attrs: std::collections::HashMap<String, String>,
14420 #[cfg(feature = "extra-children")]
14422 #[serde(skip)]
14423 #[cfg(feature = "extra-children")]
14424 pub extra_children: Vec<ooxml_xml::PositionedNode>,
14425}
14426
14427#[derive(Debug, Clone, Serialize, Deserialize)]
14428pub struct ObjectProperties {
14429 #[serde(rename = "@locked")]
14430 #[serde(
14431 default,
14432 skip_serializing_if = "Option::is_none",
14433 with = "ooxml_xml::ooxml_bool"
14434 )]
14435 pub locked: Option<bool>,
14436 #[serde(rename = "@defaultSize")]
14437 #[serde(
14438 default,
14439 skip_serializing_if = "Option::is_none",
14440 with = "ooxml_xml::ooxml_bool"
14441 )]
14442 pub default_size: Option<bool>,
14443 #[serde(rename = "@print")]
14444 #[serde(
14445 default,
14446 skip_serializing_if = "Option::is_none",
14447 with = "ooxml_xml::ooxml_bool"
14448 )]
14449 pub print: Option<bool>,
14450 #[serde(rename = "@disabled")]
14451 #[serde(
14452 default,
14453 skip_serializing_if = "Option::is_none",
14454 with = "ooxml_xml::ooxml_bool"
14455 )]
14456 pub disabled: Option<bool>,
14457 #[serde(rename = "@uiObject")]
14458 #[serde(
14459 default,
14460 skip_serializing_if = "Option::is_none",
14461 with = "ooxml_xml::ooxml_bool"
14462 )]
14463 pub ui_object: Option<bool>,
14464 #[serde(rename = "@autoFill")]
14465 #[serde(
14466 default,
14467 skip_serializing_if = "Option::is_none",
14468 with = "ooxml_xml::ooxml_bool"
14469 )]
14470 pub auto_fill: Option<bool>,
14471 #[serde(rename = "@autoLine")]
14472 #[serde(
14473 default,
14474 skip_serializing_if = "Option::is_none",
14475 with = "ooxml_xml::ooxml_bool"
14476 )]
14477 pub auto_line: Option<bool>,
14478 #[serde(rename = "@autoPict")]
14479 #[serde(
14480 default,
14481 skip_serializing_if = "Option::is_none",
14482 with = "ooxml_xml::ooxml_bool"
14483 )]
14484 pub auto_pict: Option<bool>,
14485 #[serde(rename = "@macro")]
14486 #[serde(default, skip_serializing_if = "Option::is_none")]
14487 pub r#macro: Option<STFormula>,
14488 #[serde(rename = "@altText")]
14489 #[serde(default, skip_serializing_if = "Option::is_none")]
14490 pub alt_text: Option<XmlString>,
14491 #[serde(rename = "@dde")]
14492 #[serde(
14493 default,
14494 skip_serializing_if = "Option::is_none",
14495 with = "ooxml_xml::ooxml_bool"
14496 )]
14497 pub dde: Option<bool>,
14498 #[serde(rename = "@r:id")]
14499 #[serde(default, skip_serializing_if = "Option::is_none")]
14500 pub id: Option<STRelationshipId>,
14501 #[serde(rename = "anchor")]
14502 pub anchor: Box<ObjectAnchor>,
14503 #[cfg(feature = "extra-attrs")]
14505 #[serde(skip)]
14506 #[cfg(feature = "extra-attrs")]
14507 #[serde(default)]
14508 #[cfg(feature = "extra-attrs")]
14509 pub extra_attrs: std::collections::HashMap<String, String>,
14510 #[cfg(feature = "extra-children")]
14512 #[serde(skip)]
14513 #[cfg(feature = "extra-children")]
14514 pub extra_children: Vec<ooxml_xml::PositionedNode>,
14515}
14516
14517#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14518pub struct WebPublishItems {
14519 #[serde(rename = "@count")]
14520 #[serde(default, skip_serializing_if = "Option::is_none")]
14521 pub count: Option<u32>,
14522 #[serde(rename = "webPublishItem")]
14523 #[serde(default, skip_serializing_if = "Vec::is_empty")]
14524 pub web_publish_item: Vec<WebPublishItem>,
14525 #[cfg(feature = "extra-attrs")]
14527 #[serde(skip)]
14528 #[cfg(feature = "extra-attrs")]
14529 #[serde(default)]
14530 #[cfg(feature = "extra-attrs")]
14531 pub extra_attrs: std::collections::HashMap<String, String>,
14532 #[cfg(feature = "extra-children")]
14534 #[serde(skip)]
14535 #[cfg(feature = "extra-children")]
14536 pub extra_children: Vec<ooxml_xml::PositionedNode>,
14537}
14538
14539#[derive(Debug, Clone, Serialize, Deserialize)]
14540pub struct WebPublishItem {
14541 #[serde(rename = "@id")]
14542 pub id: u32,
14543 #[serde(rename = "@divId")]
14544 pub div_id: XmlString,
14545 #[serde(rename = "@sourceType")]
14546 pub source_type: STWebSourceType,
14547 #[serde(rename = "@sourceRef")]
14548 #[serde(default, skip_serializing_if = "Option::is_none")]
14549 pub source_ref: Option<Reference>,
14550 #[serde(rename = "@sourceObject")]
14551 #[serde(default, skip_serializing_if = "Option::is_none")]
14552 pub source_object: Option<XmlString>,
14553 #[serde(rename = "@destinationFile")]
14554 pub destination_file: XmlString,
14555 #[serde(rename = "@title")]
14556 #[serde(default, skip_serializing_if = "Option::is_none")]
14557 pub title: Option<XmlString>,
14558 #[serde(rename = "@autoRepublish")]
14559 #[serde(
14560 default,
14561 skip_serializing_if = "Option::is_none",
14562 with = "ooxml_xml::ooxml_bool"
14563 )]
14564 pub auto_republish: Option<bool>,
14565 #[cfg(feature = "extra-attrs")]
14567 #[serde(skip)]
14568 #[cfg(feature = "extra-attrs")]
14569 #[serde(default)]
14570 #[cfg(feature = "extra-attrs")]
14571 pub extra_attrs: std::collections::HashMap<String, String>,
14572}
14573
14574#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14575pub struct Controls {
14576 #[serde(rename = "control")]
14577 #[serde(default, skip_serializing_if = "Vec::is_empty")]
14578 pub control: Vec<Control>,
14579 #[cfg(feature = "extra-children")]
14581 #[serde(skip)]
14582 #[cfg(feature = "extra-children")]
14583 pub extra_children: Vec<ooxml_xml::PositionedNode>,
14584}
14585
14586#[derive(Debug, Clone, Serialize, Deserialize)]
14587pub struct Control {
14588 #[serde(rename = "@shapeId")]
14589 pub shape_id: u32,
14590 #[serde(rename = "@r:id")]
14591 pub id: STRelationshipId,
14592 #[serde(rename = "@name")]
14593 #[serde(default, skip_serializing_if = "Option::is_none")]
14594 pub name: Option<String>,
14595 #[serde(rename = "controlPr")]
14596 #[serde(default, skip_serializing_if = "Option::is_none")]
14597 pub control_pr: Option<Box<CTControlPr>>,
14598 #[cfg(feature = "extra-attrs")]
14600 #[serde(skip)]
14601 #[cfg(feature = "extra-attrs")]
14602 #[serde(default)]
14603 #[cfg(feature = "extra-attrs")]
14604 pub extra_attrs: std::collections::HashMap<String, String>,
14605 #[cfg(feature = "extra-children")]
14607 #[serde(skip)]
14608 #[cfg(feature = "extra-children")]
14609 pub extra_children: Vec<ooxml_xml::PositionedNode>,
14610}
14611
14612#[derive(Debug, Clone, Serialize, Deserialize)]
14613pub struct CTControlPr {
14614 #[serde(rename = "@locked")]
14615 #[serde(
14616 default,
14617 skip_serializing_if = "Option::is_none",
14618 with = "ooxml_xml::ooxml_bool"
14619 )]
14620 pub locked: Option<bool>,
14621 #[serde(rename = "@defaultSize")]
14622 #[serde(
14623 default,
14624 skip_serializing_if = "Option::is_none",
14625 with = "ooxml_xml::ooxml_bool"
14626 )]
14627 pub default_size: Option<bool>,
14628 #[serde(rename = "@print")]
14629 #[serde(
14630 default,
14631 skip_serializing_if = "Option::is_none",
14632 with = "ooxml_xml::ooxml_bool"
14633 )]
14634 pub print: Option<bool>,
14635 #[serde(rename = "@disabled")]
14636 #[serde(
14637 default,
14638 skip_serializing_if = "Option::is_none",
14639 with = "ooxml_xml::ooxml_bool"
14640 )]
14641 pub disabled: Option<bool>,
14642 #[serde(rename = "@recalcAlways")]
14643 #[serde(
14644 default,
14645 skip_serializing_if = "Option::is_none",
14646 with = "ooxml_xml::ooxml_bool"
14647 )]
14648 pub recalc_always: Option<bool>,
14649 #[serde(rename = "@uiObject")]
14650 #[serde(
14651 default,
14652 skip_serializing_if = "Option::is_none",
14653 with = "ooxml_xml::ooxml_bool"
14654 )]
14655 pub ui_object: Option<bool>,
14656 #[serde(rename = "@autoFill")]
14657 #[serde(
14658 default,
14659 skip_serializing_if = "Option::is_none",
14660 with = "ooxml_xml::ooxml_bool"
14661 )]
14662 pub auto_fill: Option<bool>,
14663 #[serde(rename = "@autoLine")]
14664 #[serde(
14665 default,
14666 skip_serializing_if = "Option::is_none",
14667 with = "ooxml_xml::ooxml_bool"
14668 )]
14669 pub auto_line: Option<bool>,
14670 #[serde(rename = "@autoPict")]
14671 #[serde(
14672 default,
14673 skip_serializing_if = "Option::is_none",
14674 with = "ooxml_xml::ooxml_bool"
14675 )]
14676 pub auto_pict: Option<bool>,
14677 #[serde(rename = "@macro")]
14678 #[serde(default, skip_serializing_if = "Option::is_none")]
14679 pub r#macro: Option<STFormula>,
14680 #[serde(rename = "@altText")]
14681 #[serde(default, skip_serializing_if = "Option::is_none")]
14682 pub alt_text: Option<XmlString>,
14683 #[serde(rename = "@linkedCell")]
14684 #[serde(default, skip_serializing_if = "Option::is_none")]
14685 pub linked_cell: Option<STFormula>,
14686 #[serde(rename = "@listFillRange")]
14687 #[serde(default, skip_serializing_if = "Option::is_none")]
14688 pub list_fill_range: Option<STFormula>,
14689 #[serde(rename = "@cf")]
14690 #[serde(default, skip_serializing_if = "Option::is_none")]
14691 pub cf: Option<XmlString>,
14692 #[serde(rename = "@r:id")]
14693 #[serde(default, skip_serializing_if = "Option::is_none")]
14694 pub id: Option<STRelationshipId>,
14695 #[serde(rename = "anchor")]
14696 pub anchor: Box<ObjectAnchor>,
14697 #[cfg(feature = "extra-attrs")]
14699 #[serde(skip)]
14700 #[cfg(feature = "extra-attrs")]
14701 #[serde(default)]
14702 #[cfg(feature = "extra-attrs")]
14703 pub extra_attrs: std::collections::HashMap<String, String>,
14704 #[cfg(feature = "extra-children")]
14706 #[serde(skip)]
14707 #[cfg(feature = "extra-children")]
14708 pub extra_children: Vec<ooxml_xml::PositionedNode>,
14709}
14710
14711#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14712pub struct IgnoredErrors {
14713 #[serde(rename = "ignoredError")]
14714 #[serde(default, skip_serializing_if = "Vec::is_empty")]
14715 pub ignored_error: Vec<IgnoredError>,
14716 #[serde(rename = "extLst")]
14717 #[serde(default, skip_serializing_if = "Option::is_none")]
14718 pub extension_list: Option<Box<ExtensionList>>,
14719 #[cfg(feature = "extra-children")]
14721 #[serde(skip)]
14722 #[cfg(feature = "extra-children")]
14723 pub extra_children: Vec<ooxml_xml::PositionedNode>,
14724}
14725
14726#[derive(Debug, Clone, Serialize, Deserialize)]
14727pub struct IgnoredError {
14728 #[serde(rename = "@sqref")]
14729 pub square_reference: SquareRef,
14730 #[serde(rename = "@evalError")]
14731 #[serde(
14732 default,
14733 skip_serializing_if = "Option::is_none",
14734 with = "ooxml_xml::ooxml_bool"
14735 )]
14736 pub eval_error: Option<bool>,
14737 #[serde(rename = "@twoDigitTextYear")]
14738 #[serde(
14739 default,
14740 skip_serializing_if = "Option::is_none",
14741 with = "ooxml_xml::ooxml_bool"
14742 )]
14743 pub two_digit_text_year: Option<bool>,
14744 #[serde(rename = "@numberStoredAsText")]
14745 #[serde(
14746 default,
14747 skip_serializing_if = "Option::is_none",
14748 with = "ooxml_xml::ooxml_bool"
14749 )]
14750 pub number_stored_as_text: Option<bool>,
14751 #[serde(rename = "@formula")]
14752 #[serde(
14753 default,
14754 skip_serializing_if = "Option::is_none",
14755 with = "ooxml_xml::ooxml_bool"
14756 )]
14757 pub formula: Option<bool>,
14758 #[serde(rename = "@formulaRange")]
14759 #[serde(
14760 default,
14761 skip_serializing_if = "Option::is_none",
14762 with = "ooxml_xml::ooxml_bool"
14763 )]
14764 pub formula_range: Option<bool>,
14765 #[serde(rename = "@unlockedFormula")]
14766 #[serde(
14767 default,
14768 skip_serializing_if = "Option::is_none",
14769 with = "ooxml_xml::ooxml_bool"
14770 )]
14771 pub unlocked_formula: Option<bool>,
14772 #[serde(rename = "@emptyCellReference")]
14773 #[serde(
14774 default,
14775 skip_serializing_if = "Option::is_none",
14776 with = "ooxml_xml::ooxml_bool"
14777 )]
14778 pub empty_cell_reference: Option<bool>,
14779 #[serde(rename = "@listDataValidation")]
14780 #[serde(
14781 default,
14782 skip_serializing_if = "Option::is_none",
14783 with = "ooxml_xml::ooxml_bool"
14784 )]
14785 pub list_data_validation: Option<bool>,
14786 #[serde(rename = "@calculatedColumn")]
14787 #[serde(
14788 default,
14789 skip_serializing_if = "Option::is_none",
14790 with = "ooxml_xml::ooxml_bool"
14791 )]
14792 pub calculated_column: Option<bool>,
14793 #[cfg(feature = "extra-attrs")]
14795 #[serde(skip)]
14796 #[cfg(feature = "extra-attrs")]
14797 #[serde(default)]
14798 #[cfg(feature = "extra-attrs")]
14799 pub extra_attrs: std::collections::HashMap<String, String>,
14800}
14801
14802#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14803#[serde(rename = "tableParts")]
14804pub struct TableParts {
14805 #[serde(rename = "@count")]
14806 #[serde(default, skip_serializing_if = "Option::is_none")]
14807 pub count: Option<u32>,
14808 #[serde(rename = "tablePart")]
14809 #[serde(default, skip_serializing_if = "Vec::is_empty")]
14810 pub table_part: Vec<TablePart>,
14811 #[cfg(feature = "extra-attrs")]
14813 #[serde(skip)]
14814 #[cfg(feature = "extra-attrs")]
14815 #[serde(default)]
14816 #[cfg(feature = "extra-attrs")]
14817 pub extra_attrs: std::collections::HashMap<String, String>,
14818 #[cfg(feature = "extra-children")]
14820 #[serde(skip)]
14821 #[cfg(feature = "extra-children")]
14822 pub extra_children: Vec<ooxml_xml::PositionedNode>,
14823}
14824
14825#[derive(Debug, Clone, Serialize, Deserialize)]
14826#[serde(rename = "tablePart")]
14827pub struct TablePart {
14828 #[serde(rename = "@r:id")]
14829 pub id: STRelationshipId,
14830 #[cfg(feature = "extra-attrs")]
14832 #[serde(skip)]
14833 #[cfg(feature = "extra-attrs")]
14834 #[serde(default)]
14835 #[cfg(feature = "extra-attrs")]
14836 pub extra_attrs: std::collections::HashMap<String, String>,
14837}
14838
14839pub type SmlMetadata = Box<Metadata>;
14840
14841#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14842pub struct Metadata {
14843 #[serde(rename = "metadataTypes")]
14844 #[serde(default, skip_serializing_if = "Option::is_none")]
14845 pub metadata_types: Option<Box<MetadataTypes>>,
14846 #[serde(rename = "metadataStrings")]
14847 #[serde(default, skip_serializing_if = "Option::is_none")]
14848 pub metadata_strings: Option<Box<MetadataStrings>>,
14849 #[serde(rename = "mdxMetadata")]
14850 #[serde(default, skip_serializing_if = "Option::is_none")]
14851 pub mdx_metadata: Option<Box<CTMdxMetadata>>,
14852 #[serde(rename = "futureMetadata")]
14853 #[serde(default, skip_serializing_if = "Vec::is_empty")]
14854 pub future_metadata: Vec<CTFutureMetadata>,
14855 #[serde(rename = "cellMetadata")]
14856 #[serde(default, skip_serializing_if = "Option::is_none")]
14857 pub cell_metadata: Option<Box<MetadataBlocks>>,
14858 #[serde(rename = "valueMetadata")]
14859 #[serde(default, skip_serializing_if = "Option::is_none")]
14860 pub value_metadata: Option<Box<MetadataBlocks>>,
14861 #[serde(rename = "extLst")]
14862 #[serde(default, skip_serializing_if = "Option::is_none")]
14863 pub extension_list: Option<Box<ExtensionList>>,
14864 #[cfg(feature = "extra-children")]
14866 #[serde(skip)]
14867 #[cfg(feature = "extra-children")]
14868 pub extra_children: Vec<ooxml_xml::PositionedNode>,
14869}
14870
14871#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14872pub struct MetadataTypes {
14873 #[serde(rename = "@count")]
14874 #[serde(default, skip_serializing_if = "Option::is_none")]
14875 pub count: Option<u32>,
14876 #[serde(rename = "metadataType")]
14877 #[serde(default, skip_serializing_if = "Vec::is_empty")]
14878 pub metadata_type: Vec<MetadataType>,
14879 #[cfg(feature = "extra-attrs")]
14881 #[serde(skip)]
14882 #[cfg(feature = "extra-attrs")]
14883 #[serde(default)]
14884 #[cfg(feature = "extra-attrs")]
14885 pub extra_attrs: std::collections::HashMap<String, String>,
14886 #[cfg(feature = "extra-children")]
14888 #[serde(skip)]
14889 #[cfg(feature = "extra-children")]
14890 pub extra_children: Vec<ooxml_xml::PositionedNode>,
14891}
14892
14893#[derive(Debug, Clone, Serialize, Deserialize)]
14894pub struct MetadataType {
14895 #[serde(rename = "@name")]
14896 pub name: XmlString,
14897 #[serde(rename = "@minSupportedVersion")]
14898 pub min_supported_version: u32,
14899 #[serde(rename = "@ghostRow")]
14900 #[serde(
14901 default,
14902 skip_serializing_if = "Option::is_none",
14903 with = "ooxml_xml::ooxml_bool"
14904 )]
14905 pub ghost_row: Option<bool>,
14906 #[serde(rename = "@ghostCol")]
14907 #[serde(
14908 default,
14909 skip_serializing_if = "Option::is_none",
14910 with = "ooxml_xml::ooxml_bool"
14911 )]
14912 pub ghost_col: Option<bool>,
14913 #[serde(rename = "@edit")]
14914 #[serde(
14915 default,
14916 skip_serializing_if = "Option::is_none",
14917 with = "ooxml_xml::ooxml_bool"
14918 )]
14919 pub edit: Option<bool>,
14920 #[serde(rename = "@delete")]
14921 #[serde(
14922 default,
14923 skip_serializing_if = "Option::is_none",
14924 with = "ooxml_xml::ooxml_bool"
14925 )]
14926 pub delete: Option<bool>,
14927 #[serde(rename = "@copy")]
14928 #[serde(
14929 default,
14930 skip_serializing_if = "Option::is_none",
14931 with = "ooxml_xml::ooxml_bool"
14932 )]
14933 pub copy: Option<bool>,
14934 #[serde(rename = "@pasteAll")]
14935 #[serde(
14936 default,
14937 skip_serializing_if = "Option::is_none",
14938 with = "ooxml_xml::ooxml_bool"
14939 )]
14940 pub paste_all: Option<bool>,
14941 #[serde(rename = "@pasteFormulas")]
14942 #[serde(
14943 default,
14944 skip_serializing_if = "Option::is_none",
14945 with = "ooxml_xml::ooxml_bool"
14946 )]
14947 pub paste_formulas: Option<bool>,
14948 #[serde(rename = "@pasteValues")]
14949 #[serde(
14950 default,
14951 skip_serializing_if = "Option::is_none",
14952 with = "ooxml_xml::ooxml_bool"
14953 )]
14954 pub paste_values: Option<bool>,
14955 #[serde(rename = "@pasteFormats")]
14956 #[serde(
14957 default,
14958 skip_serializing_if = "Option::is_none",
14959 with = "ooxml_xml::ooxml_bool"
14960 )]
14961 pub paste_formats: Option<bool>,
14962 #[serde(rename = "@pasteComments")]
14963 #[serde(
14964 default,
14965 skip_serializing_if = "Option::is_none",
14966 with = "ooxml_xml::ooxml_bool"
14967 )]
14968 pub paste_comments: Option<bool>,
14969 #[serde(rename = "@pasteDataValidation")]
14970 #[serde(
14971 default,
14972 skip_serializing_if = "Option::is_none",
14973 with = "ooxml_xml::ooxml_bool"
14974 )]
14975 pub paste_data_validation: Option<bool>,
14976 #[serde(rename = "@pasteBorders")]
14977 #[serde(
14978 default,
14979 skip_serializing_if = "Option::is_none",
14980 with = "ooxml_xml::ooxml_bool"
14981 )]
14982 pub paste_borders: Option<bool>,
14983 #[serde(rename = "@pasteColWidths")]
14984 #[serde(
14985 default,
14986 skip_serializing_if = "Option::is_none",
14987 with = "ooxml_xml::ooxml_bool"
14988 )]
14989 pub paste_col_widths: Option<bool>,
14990 #[serde(rename = "@pasteNumberFormats")]
14991 #[serde(
14992 default,
14993 skip_serializing_if = "Option::is_none",
14994 with = "ooxml_xml::ooxml_bool"
14995 )]
14996 pub paste_number_formats: Option<bool>,
14997 #[serde(rename = "@merge")]
14998 #[serde(
14999 default,
15000 skip_serializing_if = "Option::is_none",
15001 with = "ooxml_xml::ooxml_bool"
15002 )]
15003 pub merge: Option<bool>,
15004 #[serde(rename = "@splitFirst")]
15005 #[serde(
15006 default,
15007 skip_serializing_if = "Option::is_none",
15008 with = "ooxml_xml::ooxml_bool"
15009 )]
15010 pub split_first: Option<bool>,
15011 #[serde(rename = "@splitAll")]
15012 #[serde(
15013 default,
15014 skip_serializing_if = "Option::is_none",
15015 with = "ooxml_xml::ooxml_bool"
15016 )]
15017 pub split_all: Option<bool>,
15018 #[serde(rename = "@rowColShift")]
15019 #[serde(
15020 default,
15021 skip_serializing_if = "Option::is_none",
15022 with = "ooxml_xml::ooxml_bool"
15023 )]
15024 pub row_col_shift: Option<bool>,
15025 #[serde(rename = "@clearAll")]
15026 #[serde(
15027 default,
15028 skip_serializing_if = "Option::is_none",
15029 with = "ooxml_xml::ooxml_bool"
15030 )]
15031 pub clear_all: Option<bool>,
15032 #[serde(rename = "@clearFormats")]
15033 #[serde(
15034 default,
15035 skip_serializing_if = "Option::is_none",
15036 with = "ooxml_xml::ooxml_bool"
15037 )]
15038 pub clear_formats: Option<bool>,
15039 #[serde(rename = "@clearContents")]
15040 #[serde(
15041 default,
15042 skip_serializing_if = "Option::is_none",
15043 with = "ooxml_xml::ooxml_bool"
15044 )]
15045 pub clear_contents: Option<bool>,
15046 #[serde(rename = "@clearComments")]
15047 #[serde(
15048 default,
15049 skip_serializing_if = "Option::is_none",
15050 with = "ooxml_xml::ooxml_bool"
15051 )]
15052 pub clear_comments: Option<bool>,
15053 #[serde(rename = "@assign")]
15054 #[serde(
15055 default,
15056 skip_serializing_if = "Option::is_none",
15057 with = "ooxml_xml::ooxml_bool"
15058 )]
15059 pub assign: Option<bool>,
15060 #[serde(rename = "@coerce")]
15061 #[serde(
15062 default,
15063 skip_serializing_if = "Option::is_none",
15064 with = "ooxml_xml::ooxml_bool"
15065 )]
15066 pub coerce: Option<bool>,
15067 #[serde(rename = "@adjust")]
15068 #[serde(
15069 default,
15070 skip_serializing_if = "Option::is_none",
15071 with = "ooxml_xml::ooxml_bool"
15072 )]
15073 pub adjust: Option<bool>,
15074 #[serde(rename = "@cellMeta")]
15075 #[serde(
15076 default,
15077 skip_serializing_if = "Option::is_none",
15078 with = "ooxml_xml::ooxml_bool"
15079 )]
15080 pub cell_meta: Option<bool>,
15081 #[cfg(feature = "extra-attrs")]
15083 #[serde(skip)]
15084 #[cfg(feature = "extra-attrs")]
15085 #[serde(default)]
15086 #[cfg(feature = "extra-attrs")]
15087 pub extra_attrs: std::collections::HashMap<String, String>,
15088}
15089
15090#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15091pub struct MetadataBlocks {
15092 #[serde(rename = "@count")]
15093 #[serde(default, skip_serializing_if = "Option::is_none")]
15094 pub count: Option<u32>,
15095 #[serde(rename = "bk")]
15096 #[serde(default, skip_serializing_if = "Vec::is_empty")]
15097 pub bk: Vec<MetadataBlock>,
15098 #[cfg(feature = "extra-attrs")]
15100 #[serde(skip)]
15101 #[cfg(feature = "extra-attrs")]
15102 #[serde(default)]
15103 #[cfg(feature = "extra-attrs")]
15104 pub extra_attrs: std::collections::HashMap<String, String>,
15105 #[cfg(feature = "extra-children")]
15107 #[serde(skip)]
15108 #[cfg(feature = "extra-children")]
15109 pub extra_children: Vec<ooxml_xml::PositionedNode>,
15110}
15111
15112#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15113pub struct MetadataBlock {
15114 #[serde(rename = "rc")]
15115 #[serde(default, skip_serializing_if = "Vec::is_empty")]
15116 pub rc: Vec<MetadataRecord>,
15117 #[cfg(feature = "extra-children")]
15119 #[serde(skip)]
15120 #[cfg(feature = "extra-children")]
15121 pub extra_children: Vec<ooxml_xml::PositionedNode>,
15122}
15123
15124#[derive(Debug, Clone, Serialize, Deserialize)]
15125pub struct MetadataRecord {
15126 #[serde(rename = "@t")]
15127 pub cell_type: u32,
15128 #[serde(rename = "@v")]
15129 pub value: u32,
15130 #[cfg(feature = "extra-attrs")]
15132 #[serde(skip)]
15133 #[cfg(feature = "extra-attrs")]
15134 #[serde(default)]
15135 #[cfg(feature = "extra-attrs")]
15136 pub extra_attrs: std::collections::HashMap<String, String>,
15137}
15138
15139#[derive(Debug, Clone, Serialize, Deserialize)]
15140pub struct CTFutureMetadata {
15141 #[serde(rename = "@name")]
15142 pub name: XmlString,
15143 #[serde(rename = "@count")]
15144 #[serde(default, skip_serializing_if = "Option::is_none")]
15145 pub count: Option<u32>,
15146 #[serde(rename = "bk")]
15147 #[serde(default, skip_serializing_if = "Vec::is_empty")]
15148 pub bk: Vec<CTFutureMetadataBlock>,
15149 #[serde(rename = "extLst")]
15150 #[serde(default, skip_serializing_if = "Option::is_none")]
15151 pub extension_list: Option<Box<ExtensionList>>,
15152 #[cfg(feature = "extra-attrs")]
15154 #[serde(skip)]
15155 #[cfg(feature = "extra-attrs")]
15156 #[serde(default)]
15157 #[cfg(feature = "extra-attrs")]
15158 pub extra_attrs: std::collections::HashMap<String, String>,
15159 #[cfg(feature = "extra-children")]
15161 #[serde(skip)]
15162 #[cfg(feature = "extra-children")]
15163 pub extra_children: Vec<ooxml_xml::PositionedNode>,
15164}
15165
15166#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15167pub struct CTFutureMetadataBlock {
15168 #[serde(rename = "extLst")]
15169 #[serde(default, skip_serializing_if = "Option::is_none")]
15170 pub extension_list: Option<Box<ExtensionList>>,
15171 #[cfg(feature = "extra-children")]
15173 #[serde(skip)]
15174 #[cfg(feature = "extra-children")]
15175 pub extra_children: Vec<ooxml_xml::PositionedNode>,
15176}
15177
15178#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15179pub struct CTMdxMetadata {
15180 #[serde(rename = "@count")]
15181 #[serde(default, skip_serializing_if = "Option::is_none")]
15182 pub count: Option<u32>,
15183 #[serde(rename = "mdx")]
15184 #[serde(default, skip_serializing_if = "Vec::is_empty")]
15185 pub mdx: Vec<CTMdx>,
15186 #[cfg(feature = "extra-attrs")]
15188 #[serde(skip)]
15189 #[cfg(feature = "extra-attrs")]
15190 #[serde(default)]
15191 #[cfg(feature = "extra-attrs")]
15192 pub extra_attrs: std::collections::HashMap<String, String>,
15193 #[cfg(feature = "extra-children")]
15195 #[serde(skip)]
15196 #[cfg(feature = "extra-children")]
15197 pub extra_children: Vec<ooxml_xml::PositionedNode>,
15198}
15199
15200#[derive(Debug, Clone, Serialize, Deserialize)]
15201pub struct CTMdx {
15202 #[serde(rename = "@n")]
15203 pub n: u32,
15204 #[serde(rename = "@f")]
15205 pub formula: STMdxFunctionType,
15206 #[serde(rename = "t")]
15207 #[serde(default, skip_serializing_if = "Option::is_none")]
15208 pub cell_type: Option<Box<CTMdxTuple>>,
15209 #[serde(rename = "ms")]
15210 #[serde(default, skip_serializing_if = "Option::is_none")]
15211 pub ms: Option<Box<CTMdxSet>>,
15212 #[serde(rename = "p")]
15213 #[serde(default, skip_serializing_if = "Option::is_none")]
15214 pub p: Option<Box<CTMdxMemeberProp>>,
15215 #[serde(rename = "k")]
15216 #[serde(default, skip_serializing_if = "Option::is_none")]
15217 pub k: Option<Box<CTMdxKPI>>,
15218 #[cfg(feature = "extra-attrs")]
15220 #[serde(skip)]
15221 #[cfg(feature = "extra-attrs")]
15222 #[serde(default)]
15223 #[cfg(feature = "extra-attrs")]
15224 pub extra_attrs: std::collections::HashMap<String, String>,
15225 #[cfg(feature = "extra-children")]
15227 #[serde(skip)]
15228 #[cfg(feature = "extra-children")]
15229 pub extra_children: Vec<ooxml_xml::PositionedNode>,
15230}
15231
15232#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15233pub struct CTMdxTuple {
15234 #[serde(rename = "@c")]
15235 #[serde(default, skip_serializing_if = "Option::is_none")]
15236 pub cells: Option<u32>,
15237 #[serde(rename = "@ct")]
15238 #[serde(default, skip_serializing_if = "Option::is_none")]
15239 pub ct: Option<XmlString>,
15240 #[serde(rename = "@si")]
15241 #[serde(default, skip_serializing_if = "Option::is_none")]
15242 pub si: Option<u32>,
15243 #[serde(rename = "@fi")]
15244 #[serde(default, skip_serializing_if = "Option::is_none")]
15245 pub fi: Option<u32>,
15246 #[serde(rename = "@bc")]
15247 #[serde(default, skip_serializing_if = "Option::is_none")]
15248 pub bc: Option<STUnsignedIntHex>,
15249 #[serde(rename = "@fc")]
15250 #[serde(default, skip_serializing_if = "Option::is_none")]
15251 pub fc: Option<STUnsignedIntHex>,
15252 #[serde(rename = "@i")]
15253 #[serde(
15254 default,
15255 skip_serializing_if = "Option::is_none",
15256 with = "ooxml_xml::ooxml_bool"
15257 )]
15258 pub i: Option<bool>,
15259 #[serde(rename = "@u")]
15260 #[serde(
15261 default,
15262 skip_serializing_if = "Option::is_none",
15263 with = "ooxml_xml::ooxml_bool"
15264 )]
15265 pub u: Option<bool>,
15266 #[serde(rename = "@st")]
15267 #[serde(
15268 default,
15269 skip_serializing_if = "Option::is_none",
15270 with = "ooxml_xml::ooxml_bool"
15271 )]
15272 pub st: Option<bool>,
15273 #[serde(rename = "@b")]
15274 #[serde(
15275 default,
15276 skip_serializing_if = "Option::is_none",
15277 with = "ooxml_xml::ooxml_bool"
15278 )]
15279 pub b: Option<bool>,
15280 #[serde(rename = "n")]
15281 #[serde(default, skip_serializing_if = "Vec::is_empty")]
15282 pub n: Vec<CTMetadataStringIndex>,
15283 #[cfg(feature = "extra-attrs")]
15285 #[serde(skip)]
15286 #[cfg(feature = "extra-attrs")]
15287 #[serde(default)]
15288 #[cfg(feature = "extra-attrs")]
15289 pub extra_attrs: std::collections::HashMap<String, String>,
15290 #[cfg(feature = "extra-children")]
15292 #[serde(skip)]
15293 #[cfg(feature = "extra-children")]
15294 pub extra_children: Vec<ooxml_xml::PositionedNode>,
15295}
15296
15297#[derive(Debug, Clone, Serialize, Deserialize)]
15298pub struct CTMdxSet {
15299 #[serde(rename = "@ns")]
15300 pub ns: u32,
15301 #[serde(rename = "@c")]
15302 #[serde(default, skip_serializing_if = "Option::is_none")]
15303 pub cells: Option<u32>,
15304 #[serde(rename = "@o")]
15305 #[serde(default, skip_serializing_if = "Option::is_none")]
15306 pub o: Option<STMdxSetOrder>,
15307 #[serde(rename = "n")]
15308 #[serde(default, skip_serializing_if = "Vec::is_empty")]
15309 pub n: Vec<CTMetadataStringIndex>,
15310 #[cfg(feature = "extra-attrs")]
15312 #[serde(skip)]
15313 #[cfg(feature = "extra-attrs")]
15314 #[serde(default)]
15315 #[cfg(feature = "extra-attrs")]
15316 pub extra_attrs: std::collections::HashMap<String, String>,
15317 #[cfg(feature = "extra-children")]
15319 #[serde(skip)]
15320 #[cfg(feature = "extra-children")]
15321 pub extra_children: Vec<ooxml_xml::PositionedNode>,
15322}
15323
15324#[derive(Debug, Clone, Serialize, Deserialize)]
15325pub struct CTMdxMemeberProp {
15326 #[serde(rename = "@n")]
15327 pub n: u32,
15328 #[serde(rename = "@np")]
15329 pub np: u32,
15330 #[cfg(feature = "extra-attrs")]
15332 #[serde(skip)]
15333 #[cfg(feature = "extra-attrs")]
15334 #[serde(default)]
15335 #[cfg(feature = "extra-attrs")]
15336 pub extra_attrs: std::collections::HashMap<String, String>,
15337}
15338
15339#[derive(Debug, Clone, Serialize, Deserialize)]
15340pub struct CTMdxKPI {
15341 #[serde(rename = "@n")]
15342 pub n: u32,
15343 #[serde(rename = "@np")]
15344 pub np: u32,
15345 #[serde(rename = "@p")]
15346 pub p: STMdxKPIProperty,
15347 #[cfg(feature = "extra-attrs")]
15349 #[serde(skip)]
15350 #[cfg(feature = "extra-attrs")]
15351 #[serde(default)]
15352 #[cfg(feature = "extra-attrs")]
15353 pub extra_attrs: std::collections::HashMap<String, String>,
15354}
15355
15356#[derive(Debug, Clone, Serialize, Deserialize)]
15357pub struct CTMetadataStringIndex {
15358 #[serde(rename = "@x")]
15359 pub x: u32,
15360 #[serde(rename = "@s")]
15361 #[serde(
15362 default,
15363 skip_serializing_if = "Option::is_none",
15364 with = "ooxml_xml::ooxml_bool"
15365 )]
15366 pub style_index: Option<bool>,
15367 #[cfg(feature = "extra-attrs")]
15369 #[serde(skip)]
15370 #[cfg(feature = "extra-attrs")]
15371 #[serde(default)]
15372 #[cfg(feature = "extra-attrs")]
15373 pub extra_attrs: std::collections::HashMap<String, String>,
15374}
15375
15376#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15377pub struct MetadataStrings {
15378 #[serde(rename = "@count")]
15379 #[serde(default, skip_serializing_if = "Option::is_none")]
15380 pub count: Option<u32>,
15381 #[serde(rename = "s")]
15382 #[serde(default, skip_serializing_if = "Vec::is_empty")]
15383 pub style_index: Vec<CTXStringElement>,
15384 #[cfg(feature = "extra-attrs")]
15386 #[serde(skip)]
15387 #[cfg(feature = "extra-attrs")]
15388 #[serde(default)]
15389 #[cfg(feature = "extra-attrs")]
15390 pub extra_attrs: std::collections::HashMap<String, String>,
15391 #[cfg(feature = "extra-children")]
15393 #[serde(skip)]
15394 #[cfg(feature = "extra-children")]
15395 pub extra_children: Vec<ooxml_xml::PositionedNode>,
15396}
15397
15398pub type SmlSingleXmlCells = Box<SingleXmlCells>;
15399
15400#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15401pub struct SingleXmlCells {
15402 #[serde(rename = "singleXmlCell")]
15403 #[serde(default, skip_serializing_if = "Vec::is_empty")]
15404 pub single_xml_cell: Vec<SingleXmlCell>,
15405 #[cfg(feature = "extra-children")]
15407 #[serde(skip)]
15408 #[cfg(feature = "extra-children")]
15409 pub extra_children: Vec<ooxml_xml::PositionedNode>,
15410}
15411
15412#[derive(Debug, Clone, Serialize, Deserialize)]
15413pub struct SingleXmlCell {
15414 #[serde(rename = "@id")]
15415 pub id: u32,
15416 #[serde(rename = "@r")]
15417 pub reference: CellRef,
15418 #[serde(rename = "@connectionId")]
15419 pub connection_id: u32,
15420 #[serde(rename = "xmlCellPr")]
15421 pub xml_cell_pr: Box<XmlCellProperties>,
15422 #[serde(rename = "extLst")]
15423 #[serde(default, skip_serializing_if = "Option::is_none")]
15424 pub extension_list: Option<Box<ExtensionList>>,
15425 #[cfg(feature = "extra-attrs")]
15427 #[serde(skip)]
15428 #[cfg(feature = "extra-attrs")]
15429 #[serde(default)]
15430 #[cfg(feature = "extra-attrs")]
15431 pub extra_attrs: std::collections::HashMap<String, String>,
15432 #[cfg(feature = "extra-children")]
15434 #[serde(skip)]
15435 #[cfg(feature = "extra-children")]
15436 pub extra_children: Vec<ooxml_xml::PositionedNode>,
15437}
15438
15439#[derive(Debug, Clone, Serialize, Deserialize)]
15440pub struct XmlCellProperties {
15441 #[serde(rename = "@id")]
15442 pub id: u32,
15443 #[serde(rename = "@uniqueName")]
15444 #[serde(default, skip_serializing_if = "Option::is_none")]
15445 pub unique_name: Option<XmlString>,
15446 #[serde(rename = "xmlPr")]
15447 pub xml_pr: Box<XmlProperties>,
15448 #[serde(rename = "extLst")]
15449 #[serde(default, skip_serializing_if = "Option::is_none")]
15450 pub extension_list: Option<Box<ExtensionList>>,
15451 #[cfg(feature = "extra-attrs")]
15453 #[serde(skip)]
15454 #[cfg(feature = "extra-attrs")]
15455 #[serde(default)]
15456 #[cfg(feature = "extra-attrs")]
15457 pub extra_attrs: std::collections::HashMap<String, String>,
15458 #[cfg(feature = "extra-children")]
15460 #[serde(skip)]
15461 #[cfg(feature = "extra-children")]
15462 pub extra_children: Vec<ooxml_xml::PositionedNode>,
15463}
15464
15465#[derive(Debug, Clone, Serialize, Deserialize)]
15466pub struct XmlProperties {
15467 #[serde(rename = "@mapId")]
15468 pub map_id: u32,
15469 #[serde(rename = "@xpath")]
15470 pub xpath: XmlString,
15471 #[serde(rename = "@xmlDataType")]
15472 pub xml_data_type: STXmlDataType,
15473 #[serde(rename = "extLst")]
15474 #[serde(default, skip_serializing_if = "Option::is_none")]
15475 pub extension_list: Option<Box<ExtensionList>>,
15476 #[cfg(feature = "extra-attrs")]
15478 #[serde(skip)]
15479 #[cfg(feature = "extra-attrs")]
15480 #[serde(default)]
15481 #[cfg(feature = "extra-attrs")]
15482 pub extra_attrs: std::collections::HashMap<String, String>,
15483 #[cfg(feature = "extra-children")]
15485 #[serde(skip)]
15486 #[cfg(feature = "extra-children")]
15487 pub extra_children: Vec<ooxml_xml::PositionedNode>,
15488}
15489
15490pub type SmlStyleSheet = Box<Stylesheet>;
15491
15492#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15493#[serde(rename = "styleSheet")]
15494pub struct Stylesheet {
15495 #[cfg(feature = "sml-styling")]
15496 #[serde(rename = "numFmts")]
15497 #[serde(default, skip_serializing_if = "Option::is_none")]
15498 pub num_fmts: Option<Box<NumberFormats>>,
15499 #[cfg(feature = "sml-styling")]
15500 #[serde(rename = "fonts")]
15501 #[serde(default, skip_serializing_if = "Option::is_none")]
15502 pub fonts: Option<Box<Fonts>>,
15503 #[cfg(feature = "sml-styling")]
15504 #[serde(rename = "fills")]
15505 #[serde(default, skip_serializing_if = "Option::is_none")]
15506 pub fills: Option<Box<Fills>>,
15507 #[cfg(feature = "sml-styling")]
15508 #[serde(rename = "borders")]
15509 #[serde(default, skip_serializing_if = "Option::is_none")]
15510 pub borders: Option<Box<Borders>>,
15511 #[cfg(feature = "sml-styling")]
15512 #[serde(rename = "cellStyleXfs")]
15513 #[serde(default, skip_serializing_if = "Option::is_none")]
15514 pub cell_style_xfs: Option<Box<CellStyleFormats>>,
15515 #[cfg(feature = "sml-styling")]
15516 #[serde(rename = "cellXfs")]
15517 #[serde(default, skip_serializing_if = "Option::is_none")]
15518 pub cell_xfs: Option<Box<CellFormats>>,
15519 #[cfg(feature = "sml-styling")]
15520 #[serde(rename = "cellStyles")]
15521 #[serde(default, skip_serializing_if = "Option::is_none")]
15522 pub cell_styles: Option<Box<CellStyles>>,
15523 #[cfg(feature = "sml-styling")]
15524 #[serde(rename = "dxfs")]
15525 #[serde(default, skip_serializing_if = "Option::is_none")]
15526 pub dxfs: Option<Box<DifferentialFormats>>,
15527 #[cfg(feature = "sml-styling")]
15528 #[serde(rename = "tableStyles")]
15529 #[serde(default, skip_serializing_if = "Option::is_none")]
15530 pub table_styles: Option<Box<TableStyles>>,
15531 #[cfg(feature = "sml-styling")]
15532 #[serde(rename = "colors")]
15533 #[serde(default, skip_serializing_if = "Option::is_none")]
15534 pub colors: Option<Box<Colors>>,
15535 #[cfg(feature = "sml-extensions")]
15536 #[serde(rename = "extLst")]
15537 #[serde(default, skip_serializing_if = "Option::is_none")]
15538 pub extension_list: Option<Box<ExtensionList>>,
15539 #[cfg(feature = "extra-children")]
15541 #[serde(skip)]
15542 #[cfg(feature = "extra-children")]
15543 pub extra_children: Vec<ooxml_xml::PositionedNode>,
15544}
15545
15546#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15547#[serde(rename = "alignment")]
15548pub struct CellAlignment {
15549 #[cfg(feature = "sml-styling")]
15550 #[serde(rename = "@horizontal")]
15551 #[serde(default, skip_serializing_if = "Option::is_none")]
15552 pub horizontal: Option<HorizontalAlignment>,
15553 #[cfg(feature = "sml-styling")]
15554 #[serde(rename = "@vertical")]
15555 #[serde(default, skip_serializing_if = "Option::is_none")]
15556 pub vertical: Option<VerticalAlignment>,
15557 #[cfg(feature = "sml-styling")]
15558 #[serde(rename = "@textRotation")]
15559 #[serde(default, skip_serializing_if = "Option::is_none")]
15560 pub text_rotation: Option<STTextRotation>,
15561 #[cfg(feature = "sml-styling")]
15562 #[serde(rename = "@wrapText")]
15563 #[serde(
15564 default,
15565 skip_serializing_if = "Option::is_none",
15566 with = "ooxml_xml::ooxml_bool"
15567 )]
15568 pub wrap_text: Option<bool>,
15569 #[cfg(feature = "sml-styling")]
15570 #[serde(rename = "@indent")]
15571 #[serde(default, skip_serializing_if = "Option::is_none")]
15572 pub indent: Option<u32>,
15573 #[cfg(feature = "sml-styling")]
15574 #[serde(rename = "@relativeIndent")]
15575 #[serde(default, skip_serializing_if = "Option::is_none")]
15576 pub relative_indent: Option<i32>,
15577 #[cfg(feature = "sml-styling")]
15578 #[serde(rename = "@justifyLastLine")]
15579 #[serde(
15580 default,
15581 skip_serializing_if = "Option::is_none",
15582 with = "ooxml_xml::ooxml_bool"
15583 )]
15584 pub justify_last_line: Option<bool>,
15585 #[cfg(feature = "sml-styling")]
15586 #[serde(rename = "@shrinkToFit")]
15587 #[serde(
15588 default,
15589 skip_serializing_if = "Option::is_none",
15590 with = "ooxml_xml::ooxml_bool"
15591 )]
15592 pub shrink_to_fit: Option<bool>,
15593 #[cfg(feature = "sml-styling")]
15594 #[serde(rename = "@readingOrder")]
15595 #[serde(default, skip_serializing_if = "Option::is_none")]
15596 pub reading_order: Option<u32>,
15597 #[cfg(feature = "extra-attrs")]
15599 #[serde(skip)]
15600 #[cfg(feature = "extra-attrs")]
15601 #[serde(default)]
15602 #[cfg(feature = "extra-attrs")]
15603 pub extra_attrs: std::collections::HashMap<String, String>,
15604}
15605
15606#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15607#[serde(rename = "borders")]
15608pub struct Borders {
15609 #[serde(rename = "@count")]
15610 #[serde(default, skip_serializing_if = "Option::is_none")]
15611 pub count: Option<u32>,
15612 #[serde(rename = "border")]
15613 #[serde(default, skip_serializing_if = "Vec::is_empty")]
15614 pub border: Vec<Border>,
15615 #[cfg(feature = "extra-attrs")]
15617 #[serde(skip)]
15618 #[cfg(feature = "extra-attrs")]
15619 #[serde(default)]
15620 #[cfg(feature = "extra-attrs")]
15621 pub extra_attrs: std::collections::HashMap<String, String>,
15622 #[cfg(feature = "extra-children")]
15624 #[serde(skip)]
15625 #[cfg(feature = "extra-children")]
15626 pub extra_children: Vec<ooxml_xml::PositionedNode>,
15627}
15628
15629#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15630#[serde(rename = "border")]
15631pub struct Border {
15632 #[cfg(feature = "sml-styling")]
15633 #[serde(rename = "@diagonalUp")]
15634 #[serde(
15635 default,
15636 skip_serializing_if = "Option::is_none",
15637 with = "ooxml_xml::ooxml_bool"
15638 )]
15639 pub diagonal_up: Option<bool>,
15640 #[cfg(feature = "sml-styling")]
15641 #[serde(rename = "@diagonalDown")]
15642 #[serde(
15643 default,
15644 skip_serializing_if = "Option::is_none",
15645 with = "ooxml_xml::ooxml_bool"
15646 )]
15647 pub diagonal_down: Option<bool>,
15648 #[cfg(feature = "sml-styling")]
15649 #[serde(rename = "@outline")]
15650 #[serde(
15651 default,
15652 skip_serializing_if = "Option::is_none",
15653 with = "ooxml_xml::ooxml_bool"
15654 )]
15655 pub outline: Option<bool>,
15656 #[serde(rename = "start")]
15657 #[serde(default, skip_serializing_if = "Option::is_none")]
15658 pub start: Option<Box<BorderProperties>>,
15659 #[serde(rename = "end")]
15660 #[serde(default, skip_serializing_if = "Option::is_none")]
15661 pub end: Option<Box<BorderProperties>>,
15662 #[cfg(feature = "sml-styling")]
15663 #[serde(rename = "left")]
15664 #[serde(default, skip_serializing_if = "Option::is_none")]
15665 pub left: Option<Box<BorderProperties>>,
15666 #[cfg(feature = "sml-styling")]
15667 #[serde(rename = "right")]
15668 #[serde(default, skip_serializing_if = "Option::is_none")]
15669 pub right: Option<Box<BorderProperties>>,
15670 #[cfg(feature = "sml-styling")]
15671 #[serde(rename = "top")]
15672 #[serde(default, skip_serializing_if = "Option::is_none")]
15673 pub top: Option<Box<BorderProperties>>,
15674 #[cfg(feature = "sml-styling")]
15675 #[serde(rename = "bottom")]
15676 #[serde(default, skip_serializing_if = "Option::is_none")]
15677 pub bottom: Option<Box<BorderProperties>>,
15678 #[cfg(feature = "sml-styling")]
15679 #[serde(rename = "diagonal")]
15680 #[serde(default, skip_serializing_if = "Option::is_none")]
15681 pub diagonal: Option<Box<BorderProperties>>,
15682 #[cfg(feature = "sml-styling")]
15683 #[serde(rename = "vertical")]
15684 #[serde(default, skip_serializing_if = "Option::is_none")]
15685 pub vertical: Option<Box<BorderProperties>>,
15686 #[cfg(feature = "sml-styling")]
15687 #[serde(rename = "horizontal")]
15688 #[serde(default, skip_serializing_if = "Option::is_none")]
15689 pub horizontal: Option<Box<BorderProperties>>,
15690 #[cfg(feature = "extra-attrs")]
15692 #[serde(skip)]
15693 #[cfg(feature = "extra-attrs")]
15694 #[serde(default)]
15695 #[cfg(feature = "extra-attrs")]
15696 pub extra_attrs: std::collections::HashMap<String, String>,
15697 #[cfg(feature = "extra-children")]
15699 #[serde(skip)]
15700 #[cfg(feature = "extra-children")]
15701 pub extra_children: Vec<ooxml_xml::PositionedNode>,
15702}
15703
15704#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15705#[serde(rename = "left")]
15706pub struct BorderProperties {
15707 #[serde(rename = "@style")]
15708 #[serde(default, skip_serializing_if = "Option::is_none")]
15709 pub style: Option<BorderStyle>,
15710 #[serde(rename = "color")]
15711 #[serde(default, skip_serializing_if = "Option::is_none")]
15712 pub color: Option<Box<Color>>,
15713 #[cfg(feature = "extra-attrs")]
15715 #[serde(skip)]
15716 #[cfg(feature = "extra-attrs")]
15717 #[serde(default)]
15718 #[cfg(feature = "extra-attrs")]
15719 pub extra_attrs: std::collections::HashMap<String, String>,
15720 #[cfg(feature = "extra-children")]
15722 #[serde(skip)]
15723 #[cfg(feature = "extra-children")]
15724 pub extra_children: Vec<ooxml_xml::PositionedNode>,
15725}
15726
15727#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15728#[serde(rename = "protection")]
15729pub struct CellProtection {
15730 #[cfg(feature = "sml-protection")]
15731 #[serde(rename = "@locked")]
15732 #[serde(
15733 default,
15734 skip_serializing_if = "Option::is_none",
15735 with = "ooxml_xml::ooxml_bool"
15736 )]
15737 pub locked: Option<bool>,
15738 #[cfg(feature = "sml-protection")]
15739 #[serde(rename = "@hidden")]
15740 #[serde(
15741 default,
15742 skip_serializing_if = "Option::is_none",
15743 with = "ooxml_xml::ooxml_bool"
15744 )]
15745 pub hidden: Option<bool>,
15746 #[cfg(feature = "extra-attrs")]
15748 #[serde(skip)]
15749 #[cfg(feature = "extra-attrs")]
15750 #[serde(default)]
15751 #[cfg(feature = "extra-attrs")]
15752 pub extra_attrs: std::collections::HashMap<String, String>,
15753}
15754
15755#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15756#[serde(rename = "fonts")]
15757pub struct Fonts {
15758 #[serde(rename = "@count")]
15759 #[serde(default, skip_serializing_if = "Option::is_none")]
15760 pub count: Option<u32>,
15761 #[serde(rename = "font")]
15762 #[serde(default, skip_serializing_if = "Vec::is_empty")]
15763 pub font: Vec<Font>,
15764 #[cfg(feature = "extra-attrs")]
15766 #[serde(skip)]
15767 #[cfg(feature = "extra-attrs")]
15768 #[serde(default)]
15769 #[cfg(feature = "extra-attrs")]
15770 pub extra_attrs: std::collections::HashMap<String, String>,
15771 #[cfg(feature = "extra-children")]
15773 #[serde(skip)]
15774 #[cfg(feature = "extra-children")]
15775 pub extra_children: Vec<ooxml_xml::PositionedNode>,
15776}
15777
15778#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15779#[serde(rename = "fills")]
15780pub struct Fills {
15781 #[serde(rename = "@count")]
15782 #[serde(default, skip_serializing_if = "Option::is_none")]
15783 pub count: Option<u32>,
15784 #[serde(rename = "fill")]
15785 #[serde(default, skip_serializing_if = "Vec::is_empty")]
15786 pub fill: Vec<Fill>,
15787 #[cfg(feature = "extra-attrs")]
15789 #[serde(skip)]
15790 #[cfg(feature = "extra-attrs")]
15791 #[serde(default)]
15792 #[cfg(feature = "extra-attrs")]
15793 pub extra_attrs: std::collections::HashMap<String, String>,
15794 #[cfg(feature = "extra-children")]
15796 #[serde(skip)]
15797 #[cfg(feature = "extra-children")]
15798 pub extra_children: Vec<ooxml_xml::PositionedNode>,
15799}
15800
15801#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15802#[serde(rename = "fill")]
15803pub struct Fill {
15804 #[cfg(feature = "sml-styling")]
15805 #[serde(rename = "patternFill")]
15806 #[serde(default, skip_serializing_if = "Option::is_none")]
15807 pub pattern_fill: Option<Box<PatternFill>>,
15808 #[cfg(feature = "sml-styling")]
15809 #[serde(rename = "gradientFill")]
15810 #[serde(default, skip_serializing_if = "Option::is_none")]
15811 pub gradient_fill: Option<Box<GradientFill>>,
15812 #[cfg(feature = "extra-children")]
15814 #[serde(skip)]
15815 #[cfg(feature = "extra-children")]
15816 pub extra_children: Vec<ooxml_xml::PositionedNode>,
15817}
15818
15819#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15820#[serde(rename = "patternFill")]
15821pub struct PatternFill {
15822 #[serde(rename = "@patternType")]
15823 #[serde(default, skip_serializing_if = "Option::is_none")]
15824 pub pattern_type: Option<PatternType>,
15825 #[serde(rename = "fgColor")]
15826 #[serde(default, skip_serializing_if = "Option::is_none")]
15827 pub fg_color: Option<Box<Color>>,
15828 #[serde(rename = "bgColor")]
15829 #[serde(default, skip_serializing_if = "Option::is_none")]
15830 pub bg_color: Option<Box<Color>>,
15831 #[cfg(feature = "extra-attrs")]
15833 #[serde(skip)]
15834 #[cfg(feature = "extra-attrs")]
15835 #[serde(default)]
15836 #[cfg(feature = "extra-attrs")]
15837 pub extra_attrs: std::collections::HashMap<String, String>,
15838 #[cfg(feature = "extra-children")]
15840 #[serde(skip)]
15841 #[cfg(feature = "extra-children")]
15842 pub extra_children: Vec<ooxml_xml::PositionedNode>,
15843}
15844
15845#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15846#[serde(rename = "color")]
15847pub struct Color {
15848 #[cfg(feature = "sml-styling")]
15849 #[serde(rename = "@auto")]
15850 #[serde(
15851 default,
15852 skip_serializing_if = "Option::is_none",
15853 with = "ooxml_xml::ooxml_bool"
15854 )]
15855 pub auto: Option<bool>,
15856 #[cfg(feature = "sml-styling")]
15857 #[serde(rename = "@indexed")]
15858 #[serde(default, skip_serializing_if = "Option::is_none")]
15859 pub indexed: Option<u32>,
15860 #[cfg(feature = "sml-styling")]
15861 #[serde(rename = "@rgb")]
15862 #[serde(default, skip_serializing_if = "Option::is_none")]
15863 pub rgb: Option<STUnsignedIntHex>,
15864 #[cfg(feature = "sml-styling")]
15865 #[serde(rename = "@theme")]
15866 #[serde(default, skip_serializing_if = "Option::is_none")]
15867 pub theme: Option<u32>,
15868 #[cfg(feature = "sml-styling")]
15869 #[serde(rename = "@tint")]
15870 #[serde(default, skip_serializing_if = "Option::is_none")]
15871 pub tint: Option<f64>,
15872 #[cfg(feature = "extra-attrs")]
15874 #[serde(skip)]
15875 #[cfg(feature = "extra-attrs")]
15876 #[serde(default)]
15877 #[cfg(feature = "extra-attrs")]
15878 pub extra_attrs: std::collections::HashMap<String, String>,
15879}
15880
15881#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15882#[serde(rename = "gradientFill")]
15883pub struct GradientFill {
15884 #[serde(rename = "@type")]
15885 #[serde(default, skip_serializing_if = "Option::is_none")]
15886 pub r#type: Option<GradientType>,
15887 #[serde(rename = "@degree")]
15888 #[serde(default, skip_serializing_if = "Option::is_none")]
15889 pub degree: Option<f64>,
15890 #[serde(rename = "@left")]
15891 #[serde(default, skip_serializing_if = "Option::is_none")]
15892 pub left: Option<f64>,
15893 #[serde(rename = "@right")]
15894 #[serde(default, skip_serializing_if = "Option::is_none")]
15895 pub right: Option<f64>,
15896 #[serde(rename = "@top")]
15897 #[serde(default, skip_serializing_if = "Option::is_none")]
15898 pub top: Option<f64>,
15899 #[serde(rename = "@bottom")]
15900 #[serde(default, skip_serializing_if = "Option::is_none")]
15901 pub bottom: Option<f64>,
15902 #[serde(rename = "stop")]
15903 #[serde(default, skip_serializing_if = "Vec::is_empty")]
15904 pub stop: Vec<GradientStop>,
15905 #[cfg(feature = "extra-attrs")]
15907 #[serde(skip)]
15908 #[cfg(feature = "extra-attrs")]
15909 #[serde(default)]
15910 #[cfg(feature = "extra-attrs")]
15911 pub extra_attrs: std::collections::HashMap<String, String>,
15912 #[cfg(feature = "extra-children")]
15914 #[serde(skip)]
15915 #[cfg(feature = "extra-children")]
15916 pub extra_children: Vec<ooxml_xml::PositionedNode>,
15917}
15918
15919#[derive(Debug, Clone, Serialize, Deserialize)]
15920#[serde(rename = "stop")]
15921pub struct GradientStop {
15922 #[serde(rename = "@position")]
15923 pub position: f64,
15924 #[serde(rename = "color")]
15925 pub color: Box<Color>,
15926 #[cfg(feature = "extra-attrs")]
15928 #[serde(skip)]
15929 #[cfg(feature = "extra-attrs")]
15930 #[serde(default)]
15931 #[cfg(feature = "extra-attrs")]
15932 pub extra_attrs: std::collections::HashMap<String, String>,
15933 #[cfg(feature = "extra-children")]
15935 #[serde(skip)]
15936 #[cfg(feature = "extra-children")]
15937 pub extra_children: Vec<ooxml_xml::PositionedNode>,
15938}
15939
15940#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15941#[serde(rename = "numFmts")]
15942pub struct NumberFormats {
15943 #[serde(rename = "@count")]
15944 #[serde(default, skip_serializing_if = "Option::is_none")]
15945 pub count: Option<u32>,
15946 #[serde(rename = "numFmt")]
15947 #[serde(default, skip_serializing_if = "Vec::is_empty")]
15948 pub num_fmt: Vec<NumberFormat>,
15949 #[cfg(feature = "extra-attrs")]
15951 #[serde(skip)]
15952 #[cfg(feature = "extra-attrs")]
15953 #[serde(default)]
15954 #[cfg(feature = "extra-attrs")]
15955 pub extra_attrs: std::collections::HashMap<String, String>,
15956 #[cfg(feature = "extra-children")]
15958 #[serde(skip)]
15959 #[cfg(feature = "extra-children")]
15960 pub extra_children: Vec<ooxml_xml::PositionedNode>,
15961}
15962
15963#[derive(Debug, Clone, Serialize, Deserialize)]
15964#[serde(rename = "numFmt")]
15965pub struct NumberFormat {
15966 #[cfg(feature = "sml-styling")]
15967 #[serde(rename = "@numFmtId")]
15968 pub number_format_id: STNumFmtId,
15969 #[cfg(feature = "sml-styling")]
15970 #[serde(rename = "@formatCode")]
15971 pub format_code: XmlString,
15972 #[cfg(feature = "extra-attrs")]
15974 #[serde(skip)]
15975 #[cfg(feature = "extra-attrs")]
15976 #[serde(default)]
15977 #[cfg(feature = "extra-attrs")]
15978 pub extra_attrs: std::collections::HashMap<String, String>,
15979}
15980
15981#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15982#[serde(rename = "cellStyleXfs")]
15983pub struct CellStyleFormats {
15984 #[serde(rename = "@count")]
15985 #[serde(default, skip_serializing_if = "Option::is_none")]
15986 pub count: Option<u32>,
15987 #[serde(rename = "xf")]
15988 #[serde(default, skip_serializing_if = "Vec::is_empty")]
15989 pub xf: Vec<Format>,
15990 #[cfg(feature = "extra-attrs")]
15992 #[serde(skip)]
15993 #[cfg(feature = "extra-attrs")]
15994 #[serde(default)]
15995 #[cfg(feature = "extra-attrs")]
15996 pub extra_attrs: std::collections::HashMap<String, String>,
15997 #[cfg(feature = "extra-children")]
15999 #[serde(skip)]
16000 #[cfg(feature = "extra-children")]
16001 pub extra_children: Vec<ooxml_xml::PositionedNode>,
16002}
16003
16004#[derive(Debug, Clone, Default, Serialize, Deserialize)]
16005#[serde(rename = "cellXfs")]
16006pub struct CellFormats {
16007 #[serde(rename = "@count")]
16008 #[serde(default, skip_serializing_if = "Option::is_none")]
16009 pub count: Option<u32>,
16010 #[serde(rename = "xf")]
16011 #[serde(default, skip_serializing_if = "Vec::is_empty")]
16012 pub xf: Vec<Format>,
16013 #[cfg(feature = "extra-attrs")]
16015 #[serde(skip)]
16016 #[cfg(feature = "extra-attrs")]
16017 #[serde(default)]
16018 #[cfg(feature = "extra-attrs")]
16019 pub extra_attrs: std::collections::HashMap<String, String>,
16020 #[cfg(feature = "extra-children")]
16022 #[serde(skip)]
16023 #[cfg(feature = "extra-children")]
16024 pub extra_children: Vec<ooxml_xml::PositionedNode>,
16025}
16026
16027#[derive(Debug, Clone, Default, Serialize, Deserialize)]
16028#[serde(rename = "xf")]
16029pub struct Format {
16030 #[cfg(feature = "sml-styling")]
16031 #[serde(rename = "@numFmtId")]
16032 #[serde(default, skip_serializing_if = "Option::is_none")]
16033 pub number_format_id: Option<STNumFmtId>,
16034 #[cfg(feature = "sml-styling")]
16035 #[serde(rename = "@fontId")]
16036 #[serde(default, skip_serializing_if = "Option::is_none")]
16037 pub font_id: Option<STFontId>,
16038 #[cfg(feature = "sml-styling")]
16039 #[serde(rename = "@fillId")]
16040 #[serde(default, skip_serializing_if = "Option::is_none")]
16041 pub fill_id: Option<STFillId>,
16042 #[cfg(feature = "sml-styling")]
16043 #[serde(rename = "@borderId")]
16044 #[serde(default, skip_serializing_if = "Option::is_none")]
16045 pub border_id: Option<STBorderId>,
16046 #[cfg(feature = "sml-styling")]
16047 #[serde(rename = "@xfId")]
16048 #[serde(default, skip_serializing_if = "Option::is_none")]
16049 pub format_id: Option<STCellStyleXfId>,
16050 #[cfg(feature = "sml-styling")]
16051 #[serde(rename = "@quotePrefix")]
16052 #[serde(
16053 default,
16054 skip_serializing_if = "Option::is_none",
16055 with = "ooxml_xml::ooxml_bool"
16056 )]
16057 pub quote_prefix: Option<bool>,
16058 #[cfg(feature = "sml-pivot")]
16059 #[serde(rename = "@pivotButton")]
16060 #[serde(
16061 default,
16062 skip_serializing_if = "Option::is_none",
16063 with = "ooxml_xml::ooxml_bool"
16064 )]
16065 pub pivot_button: Option<bool>,
16066 #[cfg(feature = "sml-styling")]
16067 #[serde(rename = "@applyNumberFormat")]
16068 #[serde(
16069 default,
16070 skip_serializing_if = "Option::is_none",
16071 with = "ooxml_xml::ooxml_bool"
16072 )]
16073 pub apply_number_format: Option<bool>,
16074 #[cfg(feature = "sml-styling")]
16075 #[serde(rename = "@applyFont")]
16076 #[serde(
16077 default,
16078 skip_serializing_if = "Option::is_none",
16079 with = "ooxml_xml::ooxml_bool"
16080 )]
16081 pub apply_font: Option<bool>,
16082 #[cfg(feature = "sml-styling")]
16083 #[serde(rename = "@applyFill")]
16084 #[serde(
16085 default,
16086 skip_serializing_if = "Option::is_none",
16087 with = "ooxml_xml::ooxml_bool"
16088 )]
16089 pub apply_fill: Option<bool>,
16090 #[cfg(feature = "sml-styling")]
16091 #[serde(rename = "@applyBorder")]
16092 #[serde(
16093 default,
16094 skip_serializing_if = "Option::is_none",
16095 with = "ooxml_xml::ooxml_bool"
16096 )]
16097 pub apply_border: Option<bool>,
16098 #[cfg(feature = "sml-styling")]
16099 #[serde(rename = "@applyAlignment")]
16100 #[serde(
16101 default,
16102 skip_serializing_if = "Option::is_none",
16103 with = "ooxml_xml::ooxml_bool"
16104 )]
16105 pub apply_alignment: Option<bool>,
16106 #[cfg(feature = "sml-styling")]
16107 #[serde(rename = "@applyProtection")]
16108 #[serde(
16109 default,
16110 skip_serializing_if = "Option::is_none",
16111 with = "ooxml_xml::ooxml_bool"
16112 )]
16113 pub apply_protection: Option<bool>,
16114 #[cfg(feature = "sml-styling")]
16115 #[serde(rename = "alignment")]
16116 #[serde(default, skip_serializing_if = "Option::is_none")]
16117 pub alignment: Option<Box<CellAlignment>>,
16118 #[cfg(feature = "sml-protection")]
16119 #[serde(rename = "protection")]
16120 #[serde(default, skip_serializing_if = "Option::is_none")]
16121 pub protection: Option<Box<CellProtection>>,
16122 #[cfg(feature = "sml-extensions")]
16123 #[serde(rename = "extLst")]
16124 #[serde(default, skip_serializing_if = "Option::is_none")]
16125 pub extension_list: Option<Box<ExtensionList>>,
16126 #[cfg(feature = "extra-attrs")]
16128 #[serde(skip)]
16129 #[cfg(feature = "extra-attrs")]
16130 #[serde(default)]
16131 #[cfg(feature = "extra-attrs")]
16132 pub extra_attrs: std::collections::HashMap<String, String>,
16133 #[cfg(feature = "extra-children")]
16135 #[serde(skip)]
16136 #[cfg(feature = "extra-children")]
16137 pub extra_children: Vec<ooxml_xml::PositionedNode>,
16138}
16139
16140#[derive(Debug, Clone, Default, Serialize, Deserialize)]
16141#[serde(rename = "cellStyles")]
16142pub struct CellStyles {
16143 #[serde(rename = "@count")]
16144 #[serde(default, skip_serializing_if = "Option::is_none")]
16145 pub count: Option<u32>,
16146 #[serde(rename = "cellStyle")]
16147 #[serde(default, skip_serializing_if = "Vec::is_empty")]
16148 pub cell_style: Vec<CellStyle>,
16149 #[cfg(feature = "extra-attrs")]
16151 #[serde(skip)]
16152 #[cfg(feature = "extra-attrs")]
16153 #[serde(default)]
16154 #[cfg(feature = "extra-attrs")]
16155 pub extra_attrs: std::collections::HashMap<String, String>,
16156 #[cfg(feature = "extra-children")]
16158 #[serde(skip)]
16159 #[cfg(feature = "extra-children")]
16160 pub extra_children: Vec<ooxml_xml::PositionedNode>,
16161}
16162
16163#[derive(Debug, Clone, Serialize, Deserialize)]
16164#[serde(rename = "cellStyle")]
16165pub struct CellStyle {
16166 #[serde(rename = "@name")]
16167 #[serde(default, skip_serializing_if = "Option::is_none")]
16168 pub name: Option<XmlString>,
16169 #[serde(rename = "@xfId")]
16170 pub format_id: STCellStyleXfId,
16171 #[serde(rename = "@builtinId")]
16172 #[serde(default, skip_serializing_if = "Option::is_none")]
16173 pub builtin_id: Option<u32>,
16174 #[serde(rename = "@iLevel")]
16175 #[serde(default, skip_serializing_if = "Option::is_none")]
16176 pub i_level: Option<u32>,
16177 #[serde(rename = "@hidden")]
16178 #[serde(
16179 default,
16180 skip_serializing_if = "Option::is_none",
16181 with = "ooxml_xml::ooxml_bool"
16182 )]
16183 pub hidden: Option<bool>,
16184 #[serde(rename = "@customBuiltin")]
16185 #[serde(
16186 default,
16187 skip_serializing_if = "Option::is_none",
16188 with = "ooxml_xml::ooxml_bool"
16189 )]
16190 pub custom_builtin: Option<bool>,
16191 #[serde(rename = "extLst")]
16192 #[serde(default, skip_serializing_if = "Option::is_none")]
16193 pub extension_list: Option<Box<ExtensionList>>,
16194 #[cfg(feature = "extra-attrs")]
16196 #[serde(skip)]
16197 #[cfg(feature = "extra-attrs")]
16198 #[serde(default)]
16199 #[cfg(feature = "extra-attrs")]
16200 pub extra_attrs: std::collections::HashMap<String, String>,
16201 #[cfg(feature = "extra-children")]
16203 #[serde(skip)]
16204 #[cfg(feature = "extra-children")]
16205 pub extra_children: Vec<ooxml_xml::PositionedNode>,
16206}
16207
16208#[derive(Debug, Clone, Default, Serialize, Deserialize)]
16209#[serde(rename = "dxfs")]
16210pub struct DifferentialFormats {
16211 #[serde(rename = "@count")]
16212 #[serde(default, skip_serializing_if = "Option::is_none")]
16213 pub count: Option<u32>,
16214 #[serde(rename = "dxf")]
16215 #[serde(default, skip_serializing_if = "Vec::is_empty")]
16216 pub dxf: Vec<DifferentialFormat>,
16217 #[cfg(feature = "extra-attrs")]
16219 #[serde(skip)]
16220 #[cfg(feature = "extra-attrs")]
16221 #[serde(default)]
16222 #[cfg(feature = "extra-attrs")]
16223 pub extra_attrs: std::collections::HashMap<String, String>,
16224 #[cfg(feature = "extra-children")]
16226 #[serde(skip)]
16227 #[cfg(feature = "extra-children")]
16228 pub extra_children: Vec<ooxml_xml::PositionedNode>,
16229}
16230
16231#[derive(Debug, Clone, Default, Serialize, Deserialize)]
16232#[serde(rename = "dxf")]
16233pub struct DifferentialFormat {
16234 #[serde(rename = "font")]
16235 #[serde(default, skip_serializing_if = "Option::is_none")]
16236 pub font: Option<Box<Font>>,
16237 #[serde(rename = "numFmt")]
16238 #[serde(default, skip_serializing_if = "Option::is_none")]
16239 pub num_fmt: Option<Box<NumberFormat>>,
16240 #[serde(rename = "fill")]
16241 #[serde(default, skip_serializing_if = "Option::is_none")]
16242 pub fill: Option<Box<Fill>>,
16243 #[serde(rename = "alignment")]
16244 #[serde(default, skip_serializing_if = "Option::is_none")]
16245 pub alignment: Option<Box<CellAlignment>>,
16246 #[serde(rename = "border")]
16247 #[serde(default, skip_serializing_if = "Option::is_none")]
16248 pub border: Option<Box<Border>>,
16249 #[serde(rename = "protection")]
16250 #[serde(default, skip_serializing_if = "Option::is_none")]
16251 pub protection: Option<Box<CellProtection>>,
16252 #[serde(rename = "extLst")]
16253 #[serde(default, skip_serializing_if = "Option::is_none")]
16254 pub extension_list: Option<Box<ExtensionList>>,
16255 #[cfg(feature = "extra-children")]
16257 #[serde(skip)]
16258 #[cfg(feature = "extra-children")]
16259 pub extra_children: Vec<ooxml_xml::PositionedNode>,
16260}
16261
16262#[derive(Debug, Clone, Default, Serialize, Deserialize)]
16263#[serde(rename = "colors")]
16264pub struct Colors {
16265 #[cfg(feature = "sml-styling")]
16266 #[serde(rename = "indexedColors")]
16267 #[serde(default, skip_serializing_if = "Option::is_none")]
16268 pub indexed_colors: Option<Box<IndexedColors>>,
16269 #[cfg(feature = "sml-styling")]
16270 #[serde(rename = "mruColors")]
16271 #[serde(default, skip_serializing_if = "Option::is_none")]
16272 pub mru_colors: Option<Box<MostRecentColors>>,
16273 #[cfg(feature = "extra-children")]
16275 #[serde(skip)]
16276 #[cfg(feature = "extra-children")]
16277 pub extra_children: Vec<ooxml_xml::PositionedNode>,
16278}
16279
16280#[derive(Debug, Clone, Default, Serialize, Deserialize)]
16281pub struct IndexedColors {
16282 #[serde(rename = "rgbColor")]
16283 #[serde(default, skip_serializing_if = "Vec::is_empty")]
16284 pub rgb_color: Vec<RgbColor>,
16285 #[cfg(feature = "extra-children")]
16287 #[serde(skip)]
16288 #[cfg(feature = "extra-children")]
16289 pub extra_children: Vec<ooxml_xml::PositionedNode>,
16290}
16291
16292#[derive(Debug, Clone, Default, Serialize, Deserialize)]
16293pub struct MostRecentColors {
16294 #[serde(rename = "color")]
16295 #[serde(default, skip_serializing_if = "Vec::is_empty")]
16296 pub color: Vec<Color>,
16297 #[cfg(feature = "extra-children")]
16299 #[serde(skip)]
16300 #[cfg(feature = "extra-children")]
16301 pub extra_children: Vec<ooxml_xml::PositionedNode>,
16302}
16303
16304#[derive(Debug, Clone, Default, Serialize, Deserialize)]
16305pub struct RgbColor {
16306 #[serde(rename = "@rgb")]
16307 #[serde(default, skip_serializing_if = "Option::is_none")]
16308 pub rgb: Option<STUnsignedIntHex>,
16309 #[cfg(feature = "extra-attrs")]
16311 #[serde(skip)]
16312 #[cfg(feature = "extra-attrs")]
16313 #[serde(default)]
16314 #[cfg(feature = "extra-attrs")]
16315 pub extra_attrs: std::collections::HashMap<String, String>,
16316}
16317
16318#[derive(Debug, Clone, Default, Serialize, Deserialize)]
16319pub struct TableStyles {
16320 #[serde(rename = "@count")]
16321 #[serde(default, skip_serializing_if = "Option::is_none")]
16322 pub count: Option<u32>,
16323 #[serde(rename = "@defaultTableStyle")]
16324 #[serde(default, skip_serializing_if = "Option::is_none")]
16325 pub default_table_style: Option<String>,
16326 #[serde(rename = "@defaultPivotStyle")]
16327 #[serde(default, skip_serializing_if = "Option::is_none")]
16328 pub default_pivot_style: Option<String>,
16329 #[serde(rename = "tableStyle")]
16330 #[serde(default, skip_serializing_if = "Vec::is_empty")]
16331 pub table_style: Vec<TableStyle>,
16332 #[cfg(feature = "extra-attrs")]
16334 #[serde(skip)]
16335 #[cfg(feature = "extra-attrs")]
16336 #[serde(default)]
16337 #[cfg(feature = "extra-attrs")]
16338 pub extra_attrs: std::collections::HashMap<String, String>,
16339 #[cfg(feature = "extra-children")]
16341 #[serde(skip)]
16342 #[cfg(feature = "extra-children")]
16343 pub extra_children: Vec<ooxml_xml::PositionedNode>,
16344}
16345
16346#[derive(Debug, Clone, Serialize, Deserialize)]
16347pub struct TableStyle {
16348 #[serde(rename = "@name")]
16349 pub name: String,
16350 #[serde(rename = "@pivot")]
16351 #[serde(
16352 default,
16353 skip_serializing_if = "Option::is_none",
16354 with = "ooxml_xml::ooxml_bool"
16355 )]
16356 pub pivot: Option<bool>,
16357 #[serde(rename = "@table")]
16358 #[serde(
16359 default,
16360 skip_serializing_if = "Option::is_none",
16361 with = "ooxml_xml::ooxml_bool"
16362 )]
16363 pub table: Option<bool>,
16364 #[serde(rename = "@count")]
16365 #[serde(default, skip_serializing_if = "Option::is_none")]
16366 pub count: Option<u32>,
16367 #[serde(rename = "tableStyleElement")]
16368 #[serde(default, skip_serializing_if = "Vec::is_empty")]
16369 pub table_style_element: Vec<TableStyleElement>,
16370 #[cfg(feature = "extra-attrs")]
16372 #[serde(skip)]
16373 #[cfg(feature = "extra-attrs")]
16374 #[serde(default)]
16375 #[cfg(feature = "extra-attrs")]
16376 pub extra_attrs: std::collections::HashMap<String, String>,
16377 #[cfg(feature = "extra-children")]
16379 #[serde(skip)]
16380 #[cfg(feature = "extra-children")]
16381 pub extra_children: Vec<ooxml_xml::PositionedNode>,
16382}
16383
16384#[derive(Debug, Clone, Serialize, Deserialize)]
16385pub struct TableStyleElement {
16386 #[serde(rename = "@type")]
16387 pub r#type: STTableStyleType,
16388 #[serde(rename = "@size")]
16389 #[serde(default, skip_serializing_if = "Option::is_none")]
16390 pub size: Option<u32>,
16391 #[serde(rename = "@dxfId")]
16392 #[serde(default, skip_serializing_if = "Option::is_none")]
16393 pub dxf_id: Option<STDxfId>,
16394 #[cfg(feature = "extra-attrs")]
16396 #[serde(skip)]
16397 #[cfg(feature = "extra-attrs")]
16398 #[serde(default)]
16399 #[cfg(feature = "extra-attrs")]
16400 pub extra_attrs: std::collections::HashMap<String, String>,
16401}
16402
16403#[derive(Debug, Clone, Default, Serialize, Deserialize)]
16404pub struct BooleanProperty {
16405 #[serde(rename = "@val")]
16406 #[serde(
16407 default,
16408 skip_serializing_if = "Option::is_none",
16409 with = "ooxml_xml::ooxml_bool"
16410 )]
16411 pub value: Option<bool>,
16412 #[cfg(feature = "extra-attrs")]
16414 #[serde(skip)]
16415 #[cfg(feature = "extra-attrs")]
16416 #[serde(default)]
16417 #[cfg(feature = "extra-attrs")]
16418 pub extra_attrs: std::collections::HashMap<String, String>,
16419}
16420
16421#[derive(Debug, Clone, Serialize, Deserialize)]
16422pub struct FontSize {
16423 #[serde(rename = "@val")]
16424 pub value: f64,
16425 #[cfg(feature = "extra-attrs")]
16427 #[serde(skip)]
16428 #[cfg(feature = "extra-attrs")]
16429 #[serde(default)]
16430 #[cfg(feature = "extra-attrs")]
16431 pub extra_attrs: std::collections::HashMap<String, String>,
16432}
16433
16434#[derive(Debug, Clone, Serialize, Deserialize)]
16435pub struct IntProperty {
16436 #[serde(rename = "@val")]
16437 pub value: i32,
16438 #[cfg(feature = "extra-attrs")]
16440 #[serde(skip)]
16441 #[cfg(feature = "extra-attrs")]
16442 #[serde(default)]
16443 #[cfg(feature = "extra-attrs")]
16444 pub extra_attrs: std::collections::HashMap<String, String>,
16445}
16446
16447#[derive(Debug, Clone, Serialize, Deserialize)]
16448pub struct FontName {
16449 #[serde(rename = "@val")]
16450 pub value: XmlString,
16451 #[cfg(feature = "extra-attrs")]
16453 #[serde(skip)]
16454 #[cfg(feature = "extra-attrs")]
16455 #[serde(default)]
16456 #[cfg(feature = "extra-attrs")]
16457 pub extra_attrs: std::collections::HashMap<String, String>,
16458}
16459
16460#[derive(Debug, Clone, Serialize, Deserialize)]
16461pub struct VerticalAlignFontProperty {
16462 #[serde(rename = "@val")]
16463 pub value: VerticalAlignRun,
16464 #[cfg(feature = "extra-attrs")]
16466 #[serde(skip)]
16467 #[cfg(feature = "extra-attrs")]
16468 #[serde(default)]
16469 #[cfg(feature = "extra-attrs")]
16470 pub extra_attrs: std::collections::HashMap<String, String>,
16471}
16472
16473#[derive(Debug, Clone, Serialize, Deserialize)]
16474pub struct FontSchemeProperty {
16475 #[serde(rename = "@val")]
16476 pub value: FontScheme,
16477 #[cfg(feature = "extra-attrs")]
16479 #[serde(skip)]
16480 #[cfg(feature = "extra-attrs")]
16481 #[serde(default)]
16482 #[cfg(feature = "extra-attrs")]
16483 pub extra_attrs: std::collections::HashMap<String, String>,
16484}
16485
16486#[derive(Debug, Clone, Default, Serialize, Deserialize)]
16487pub struct UnderlineProperty {
16488 #[serde(rename = "@val")]
16489 #[serde(default, skip_serializing_if = "Option::is_none")]
16490 pub value: Option<UnderlineStyle>,
16491 #[cfg(feature = "extra-attrs")]
16493 #[serde(skip)]
16494 #[cfg(feature = "extra-attrs")]
16495 #[serde(default)]
16496 #[cfg(feature = "extra-attrs")]
16497 pub extra_attrs: std::collections::HashMap<String, String>,
16498}
16499
16500#[derive(Debug, Clone, Default, Serialize, Deserialize)]
16501#[serde(rename = "font")]
16502pub struct Font {
16503 #[cfg(feature = "sml-styling")]
16504 #[serde(rename = "name")]
16505 #[serde(default, skip_serializing_if = "Option::is_none")]
16506 pub name: Option<Box<FontName>>,
16507 #[cfg(feature = "sml-styling")]
16508 #[serde(rename = "charset")]
16509 #[serde(default, skip_serializing_if = "Option::is_none")]
16510 pub charset: Option<Box<IntProperty>>,
16511 #[cfg(feature = "sml-styling")]
16512 #[serde(rename = "family")]
16513 #[serde(default, skip_serializing_if = "Option::is_none")]
16514 pub family: Option<Box<FontFamily>>,
16515 #[cfg(feature = "sml-styling")]
16516 #[serde(rename = "b")]
16517 #[serde(default, skip_serializing_if = "Option::is_none")]
16518 pub b: Option<Box<BooleanProperty>>,
16519 #[cfg(feature = "sml-styling")]
16520 #[serde(rename = "i")]
16521 #[serde(default, skip_serializing_if = "Option::is_none")]
16522 pub i: Option<Box<BooleanProperty>>,
16523 #[cfg(feature = "sml-styling")]
16524 #[serde(rename = "strike")]
16525 #[serde(default, skip_serializing_if = "Option::is_none")]
16526 pub strike: Option<Box<BooleanProperty>>,
16527 #[cfg(feature = "sml-styling")]
16528 #[serde(rename = "outline")]
16529 #[serde(default, skip_serializing_if = "Option::is_none")]
16530 pub outline: Option<Box<BooleanProperty>>,
16531 #[cfg(feature = "sml-styling")]
16532 #[serde(rename = "shadow")]
16533 #[serde(default, skip_serializing_if = "Option::is_none")]
16534 pub shadow: Option<Box<BooleanProperty>>,
16535 #[cfg(feature = "sml-styling")]
16536 #[serde(rename = "condense")]
16537 #[serde(default, skip_serializing_if = "Option::is_none")]
16538 pub condense: Option<Box<BooleanProperty>>,
16539 #[cfg(feature = "sml-styling")]
16540 #[serde(rename = "extend")]
16541 #[serde(default, skip_serializing_if = "Option::is_none")]
16542 pub extend: Option<Box<BooleanProperty>>,
16543 #[cfg(feature = "sml-styling")]
16544 #[serde(rename = "color")]
16545 #[serde(default, skip_serializing_if = "Option::is_none")]
16546 pub color: Option<Box<Color>>,
16547 #[cfg(feature = "sml-styling")]
16548 #[serde(rename = "sz")]
16549 #[serde(default, skip_serializing_if = "Option::is_none")]
16550 pub sz: Option<Box<FontSize>>,
16551 #[cfg(feature = "sml-styling")]
16552 #[serde(rename = "u")]
16553 #[serde(default, skip_serializing_if = "Option::is_none")]
16554 pub u: Option<Box<UnderlineProperty>>,
16555 #[cfg(feature = "sml-styling")]
16556 #[serde(rename = "vertAlign")]
16557 #[serde(default, skip_serializing_if = "Option::is_none")]
16558 pub vert_align: Option<Box<VerticalAlignFontProperty>>,
16559 #[cfg(feature = "sml-styling")]
16560 #[serde(rename = "scheme")]
16561 #[serde(default, skip_serializing_if = "Option::is_none")]
16562 pub scheme: Option<Box<FontSchemeProperty>>,
16563 #[cfg(feature = "extra-children")]
16565 #[serde(skip)]
16566 #[cfg(feature = "extra-children")]
16567 pub extra_children: Vec<ooxml_xml::PositionedNode>,
16568}
16569
16570#[derive(Debug, Clone, Serialize, Deserialize)]
16571pub struct FontFamily {
16572 #[serde(rename = "@val")]
16573 pub value: STFontFamily,
16574 #[cfg(feature = "extra-attrs")]
16576 #[serde(skip)]
16577 #[cfg(feature = "extra-attrs")]
16578 #[serde(default)]
16579 #[cfg(feature = "extra-attrs")]
16580 pub extra_attrs: std::collections::HashMap<String, String>,
16581}
16582
16583#[derive(Debug, Clone, Default, Serialize, Deserialize)]
16584pub struct SmlAGAutoFormat {
16585 #[serde(rename = "@autoFormatId")]
16586 #[serde(default, skip_serializing_if = "Option::is_none")]
16587 pub auto_format_id: Option<u32>,
16588 #[serde(rename = "@applyNumberFormats")]
16589 #[serde(
16590 default,
16591 skip_serializing_if = "Option::is_none",
16592 with = "ooxml_xml::ooxml_bool"
16593 )]
16594 pub apply_number_formats: Option<bool>,
16595 #[serde(rename = "@applyBorderFormats")]
16596 #[serde(
16597 default,
16598 skip_serializing_if = "Option::is_none",
16599 with = "ooxml_xml::ooxml_bool"
16600 )]
16601 pub apply_border_formats: Option<bool>,
16602 #[serde(rename = "@applyFontFormats")]
16603 #[serde(
16604 default,
16605 skip_serializing_if = "Option::is_none",
16606 with = "ooxml_xml::ooxml_bool"
16607 )]
16608 pub apply_font_formats: Option<bool>,
16609 #[serde(rename = "@applyPatternFormats")]
16610 #[serde(
16611 default,
16612 skip_serializing_if = "Option::is_none",
16613 with = "ooxml_xml::ooxml_bool"
16614 )]
16615 pub apply_pattern_formats: Option<bool>,
16616 #[serde(rename = "@applyAlignmentFormats")]
16617 #[serde(
16618 default,
16619 skip_serializing_if = "Option::is_none",
16620 with = "ooxml_xml::ooxml_bool"
16621 )]
16622 pub apply_alignment_formats: Option<bool>,
16623 #[serde(rename = "@applyWidthHeightFormats")]
16624 #[serde(
16625 default,
16626 skip_serializing_if = "Option::is_none",
16627 with = "ooxml_xml::ooxml_bool"
16628 )]
16629 pub apply_width_height_formats: Option<bool>,
16630 #[cfg(feature = "extra-attrs")]
16632 #[serde(skip)]
16633 #[cfg(feature = "extra-attrs")]
16634 #[serde(default)]
16635 #[cfg(feature = "extra-attrs")]
16636 pub extra_attrs: std::collections::HashMap<String, String>,
16637}
16638
16639pub type SmlExternalLink = Box<ExternalLink>;
16640
16641#[derive(Debug, Clone, Default, Serialize, Deserialize)]
16642pub struct ExternalLink {
16643 #[serde(rename = "externalBook")]
16644 #[serde(default, skip_serializing_if = "Option::is_none")]
16645 pub external_book: Option<Box<ExternalBook>>,
16646 #[serde(rename = "ddeLink")]
16647 #[serde(default, skip_serializing_if = "Option::is_none")]
16648 pub dde_link: Option<Box<DdeLink>>,
16649 #[serde(rename = "oleLink")]
16650 #[serde(default, skip_serializing_if = "Option::is_none")]
16651 pub ole_link: Option<Box<OleLink>>,
16652 #[serde(rename = "extLst")]
16653 #[serde(default, skip_serializing_if = "Option::is_none")]
16654 pub extension_list: Option<Box<ExtensionList>>,
16655 #[cfg(feature = "extra-children")]
16657 #[serde(skip)]
16658 #[cfg(feature = "extra-children")]
16659 pub extra_children: Vec<ooxml_xml::PositionedNode>,
16660}
16661
16662#[derive(Debug, Clone, Serialize, Deserialize)]
16663pub struct ExternalBook {
16664 #[serde(rename = "@r:id")]
16665 pub id: STRelationshipId,
16666 #[serde(rename = "sheetNames")]
16667 #[serde(default, skip_serializing_if = "Option::is_none")]
16668 pub sheet_names: Option<Box<CTExternalSheetNames>>,
16669 #[serde(rename = "definedNames")]
16670 #[serde(default, skip_serializing_if = "Option::is_none")]
16671 pub defined_names: Option<Box<CTExternalDefinedNames>>,
16672 #[serde(rename = "sheetDataSet")]
16673 #[serde(default, skip_serializing_if = "Option::is_none")]
16674 pub sheet_data_set: Option<Box<ExternalSheetDataSet>>,
16675 #[cfg(feature = "extra-attrs")]
16677 #[serde(skip)]
16678 #[cfg(feature = "extra-attrs")]
16679 #[serde(default)]
16680 #[cfg(feature = "extra-attrs")]
16681 pub extra_attrs: std::collections::HashMap<String, String>,
16682 #[cfg(feature = "extra-children")]
16684 #[serde(skip)]
16685 #[cfg(feature = "extra-children")]
16686 pub extra_children: Vec<ooxml_xml::PositionedNode>,
16687}
16688
16689#[derive(Debug, Clone, Default, Serialize, Deserialize)]
16690pub struct CTExternalSheetNames {
16691 #[serde(rename = "sheetName")]
16692 #[serde(default, skip_serializing_if = "Vec::is_empty")]
16693 pub sheet_name: Vec<CTExternalSheetName>,
16694 #[cfg(feature = "extra-children")]
16696 #[serde(skip)]
16697 #[cfg(feature = "extra-children")]
16698 pub extra_children: Vec<ooxml_xml::PositionedNode>,
16699}
16700
16701#[derive(Debug, Clone, Default, Serialize, Deserialize)]
16702pub struct CTExternalSheetName {
16703 #[serde(rename = "@val")]
16704 #[serde(default, skip_serializing_if = "Option::is_none")]
16705 pub value: Option<XmlString>,
16706 #[cfg(feature = "extra-attrs")]
16708 #[serde(skip)]
16709 #[cfg(feature = "extra-attrs")]
16710 #[serde(default)]
16711 #[cfg(feature = "extra-attrs")]
16712 pub extra_attrs: std::collections::HashMap<String, String>,
16713}
16714
16715#[derive(Debug, Clone, Default, Serialize, Deserialize)]
16716pub struct CTExternalDefinedNames {
16717 #[serde(rename = "definedName")]
16718 #[serde(default, skip_serializing_if = "Vec::is_empty")]
16719 pub defined_name: Vec<CTExternalDefinedName>,
16720 #[cfg(feature = "extra-children")]
16722 #[serde(skip)]
16723 #[cfg(feature = "extra-children")]
16724 pub extra_children: Vec<ooxml_xml::PositionedNode>,
16725}
16726
16727#[derive(Debug, Clone, Serialize, Deserialize)]
16728pub struct CTExternalDefinedName {
16729 #[serde(rename = "@name")]
16730 pub name: XmlString,
16731 #[serde(rename = "@refersTo")]
16732 #[serde(default, skip_serializing_if = "Option::is_none")]
16733 pub refers_to: Option<XmlString>,
16734 #[serde(rename = "@sheetId")]
16735 #[serde(default, skip_serializing_if = "Option::is_none")]
16736 pub sheet_id: Option<u32>,
16737 #[cfg(feature = "extra-attrs")]
16739 #[serde(skip)]
16740 #[cfg(feature = "extra-attrs")]
16741 #[serde(default)]
16742 #[cfg(feature = "extra-attrs")]
16743 pub extra_attrs: std::collections::HashMap<String, String>,
16744}
16745
16746#[derive(Debug, Clone, Default, Serialize, Deserialize)]
16747pub struct ExternalSheetDataSet {
16748 #[serde(rename = "sheetData")]
16749 #[serde(default, skip_serializing_if = "Vec::is_empty")]
16750 pub sheet_data: Vec<ExternalSheetData>,
16751 #[cfg(feature = "extra-children")]
16753 #[serde(skip)]
16754 #[cfg(feature = "extra-children")]
16755 pub extra_children: Vec<ooxml_xml::PositionedNode>,
16756}
16757
16758#[derive(Debug, Clone, Serialize, Deserialize)]
16759pub struct ExternalSheetData {
16760 #[serde(rename = "@sheetId")]
16761 pub sheet_id: u32,
16762 #[serde(rename = "@refreshError")]
16763 #[serde(
16764 default,
16765 skip_serializing_if = "Option::is_none",
16766 with = "ooxml_xml::ooxml_bool"
16767 )]
16768 pub refresh_error: Option<bool>,
16769 #[serde(rename = "row")]
16770 #[serde(default, skip_serializing_if = "Vec::is_empty")]
16771 pub row: Vec<ExternalRow>,
16772 #[cfg(feature = "extra-attrs")]
16774 #[serde(skip)]
16775 #[cfg(feature = "extra-attrs")]
16776 #[serde(default)]
16777 #[cfg(feature = "extra-attrs")]
16778 pub extra_attrs: std::collections::HashMap<String, String>,
16779 #[cfg(feature = "extra-children")]
16781 #[serde(skip)]
16782 #[cfg(feature = "extra-children")]
16783 pub extra_children: Vec<ooxml_xml::PositionedNode>,
16784}
16785
16786#[derive(Debug, Clone, Serialize, Deserialize)]
16787pub struct ExternalRow {
16788 #[serde(rename = "@r")]
16789 pub reference: u32,
16790 #[serde(rename = "cell")]
16791 #[serde(default, skip_serializing_if = "Vec::is_empty")]
16792 pub cell: Vec<ExternalCell>,
16793 #[cfg(feature = "extra-attrs")]
16795 #[serde(skip)]
16796 #[cfg(feature = "extra-attrs")]
16797 #[serde(default)]
16798 #[cfg(feature = "extra-attrs")]
16799 pub extra_attrs: std::collections::HashMap<String, String>,
16800 #[cfg(feature = "extra-children")]
16802 #[serde(skip)]
16803 #[cfg(feature = "extra-children")]
16804 pub extra_children: Vec<ooxml_xml::PositionedNode>,
16805}
16806
16807#[derive(Debug, Clone, Default, Serialize, Deserialize)]
16808pub struct ExternalCell {
16809 #[serde(rename = "@r")]
16810 #[serde(default, skip_serializing_if = "Option::is_none")]
16811 pub reference: Option<CellRef>,
16812 #[serde(rename = "@t")]
16813 #[serde(default, skip_serializing_if = "Option::is_none")]
16814 pub cell_type: Option<CellType>,
16815 #[serde(rename = "@vm")]
16816 #[serde(default, skip_serializing_if = "Option::is_none")]
16817 pub vm: Option<u32>,
16818 #[serde(rename = "v")]
16819 #[serde(default, skip_serializing_if = "Option::is_none")]
16820 pub value: Option<XmlString>,
16821 #[cfg(feature = "extra-attrs")]
16823 #[serde(skip)]
16824 #[cfg(feature = "extra-attrs")]
16825 #[serde(default)]
16826 #[cfg(feature = "extra-attrs")]
16827 pub extra_attrs: std::collections::HashMap<String, String>,
16828 #[cfg(feature = "extra-children")]
16830 #[serde(skip)]
16831 #[cfg(feature = "extra-children")]
16832 pub extra_children: Vec<ooxml_xml::PositionedNode>,
16833}
16834
16835#[derive(Debug, Clone, Serialize, Deserialize)]
16836pub struct DdeLink {
16837 #[serde(rename = "@ddeService")]
16838 pub dde_service: XmlString,
16839 #[serde(rename = "@ddeTopic")]
16840 pub dde_topic: XmlString,
16841 #[serde(rename = "ddeItems")]
16842 #[serde(default, skip_serializing_if = "Option::is_none")]
16843 pub dde_items: Option<Box<DdeItems>>,
16844 #[cfg(feature = "extra-attrs")]
16846 #[serde(skip)]
16847 #[cfg(feature = "extra-attrs")]
16848 #[serde(default)]
16849 #[cfg(feature = "extra-attrs")]
16850 pub extra_attrs: std::collections::HashMap<String, String>,
16851 #[cfg(feature = "extra-children")]
16853 #[serde(skip)]
16854 #[cfg(feature = "extra-children")]
16855 pub extra_children: Vec<ooxml_xml::PositionedNode>,
16856}
16857
16858#[derive(Debug, Clone, Default, Serialize, Deserialize)]
16859pub struct DdeItems {
16860 #[serde(rename = "ddeItem")]
16861 #[serde(default, skip_serializing_if = "Vec::is_empty")]
16862 pub dde_item: Vec<DdeItem>,
16863 #[cfg(feature = "extra-children")]
16865 #[serde(skip)]
16866 #[cfg(feature = "extra-children")]
16867 pub extra_children: Vec<ooxml_xml::PositionedNode>,
16868}
16869
16870#[derive(Debug, Clone, Default, Serialize, Deserialize)]
16871pub struct DdeItem {
16872 #[serde(rename = "@name")]
16873 #[serde(default, skip_serializing_if = "Option::is_none")]
16874 pub name: Option<XmlString>,
16875 #[serde(rename = "@ole")]
16876 #[serde(
16877 default,
16878 skip_serializing_if = "Option::is_none",
16879 with = "ooxml_xml::ooxml_bool"
16880 )]
16881 pub ole: Option<bool>,
16882 #[serde(rename = "@advise")]
16883 #[serde(
16884 default,
16885 skip_serializing_if = "Option::is_none",
16886 with = "ooxml_xml::ooxml_bool"
16887 )]
16888 pub advise: Option<bool>,
16889 #[serde(rename = "@preferPic")]
16890 #[serde(
16891 default,
16892 skip_serializing_if = "Option::is_none",
16893 with = "ooxml_xml::ooxml_bool"
16894 )]
16895 pub prefer_pic: Option<bool>,
16896 #[serde(rename = "values")]
16897 #[serde(default, skip_serializing_if = "Option::is_none")]
16898 pub values: Option<Box<CTDdeValues>>,
16899 #[cfg(feature = "extra-attrs")]
16901 #[serde(skip)]
16902 #[cfg(feature = "extra-attrs")]
16903 #[serde(default)]
16904 #[cfg(feature = "extra-attrs")]
16905 pub extra_attrs: std::collections::HashMap<String, String>,
16906 #[cfg(feature = "extra-children")]
16908 #[serde(skip)]
16909 #[cfg(feature = "extra-children")]
16910 pub extra_children: Vec<ooxml_xml::PositionedNode>,
16911}
16912
16913#[derive(Debug, Clone, Default, Serialize, Deserialize)]
16914pub struct CTDdeValues {
16915 #[serde(rename = "@rows")]
16916 #[serde(default, skip_serializing_if = "Option::is_none")]
16917 pub rows: Option<u32>,
16918 #[serde(rename = "@cols")]
16919 #[serde(default, skip_serializing_if = "Option::is_none")]
16920 pub cols: Option<u32>,
16921 #[serde(rename = "value")]
16922 #[serde(default, skip_serializing_if = "Vec::is_empty")]
16923 pub value: Vec<CTDdeValue>,
16924 #[cfg(feature = "extra-attrs")]
16926 #[serde(skip)]
16927 #[cfg(feature = "extra-attrs")]
16928 #[serde(default)]
16929 #[cfg(feature = "extra-attrs")]
16930 pub extra_attrs: std::collections::HashMap<String, String>,
16931 #[cfg(feature = "extra-children")]
16933 #[serde(skip)]
16934 #[cfg(feature = "extra-children")]
16935 pub extra_children: Vec<ooxml_xml::PositionedNode>,
16936}
16937
16938#[derive(Debug, Clone, Serialize, Deserialize)]
16939pub struct CTDdeValue {
16940 #[serde(rename = "@t")]
16941 #[serde(default, skip_serializing_if = "Option::is_none")]
16942 pub cell_type: Option<STDdeValueType>,
16943 #[serde(rename = "val")]
16944 pub value: XmlString,
16945 #[cfg(feature = "extra-attrs")]
16947 #[serde(skip)]
16948 #[cfg(feature = "extra-attrs")]
16949 #[serde(default)]
16950 #[cfg(feature = "extra-attrs")]
16951 pub extra_attrs: std::collections::HashMap<String, String>,
16952 #[cfg(feature = "extra-children")]
16954 #[serde(skip)]
16955 #[cfg(feature = "extra-children")]
16956 pub extra_children: Vec<ooxml_xml::PositionedNode>,
16957}
16958
16959#[derive(Debug, Clone, Serialize, Deserialize)]
16960pub struct OleLink {
16961 #[serde(rename = "@r:id")]
16962 pub id: STRelationshipId,
16963 #[serde(rename = "@progId")]
16964 pub prog_id: XmlString,
16965 #[serde(rename = "oleItems")]
16966 #[serde(default, skip_serializing_if = "Option::is_none")]
16967 pub ole_items: Option<Box<OleItems>>,
16968 #[cfg(feature = "extra-attrs")]
16970 #[serde(skip)]
16971 #[cfg(feature = "extra-attrs")]
16972 #[serde(default)]
16973 #[cfg(feature = "extra-attrs")]
16974 pub extra_attrs: std::collections::HashMap<String, String>,
16975 #[cfg(feature = "extra-children")]
16977 #[serde(skip)]
16978 #[cfg(feature = "extra-children")]
16979 pub extra_children: Vec<ooxml_xml::PositionedNode>,
16980}
16981
16982#[derive(Debug, Clone, Default, Serialize, Deserialize)]
16983pub struct OleItems {
16984 #[serde(rename = "oleItem")]
16985 #[serde(default, skip_serializing_if = "Vec::is_empty")]
16986 pub ole_item: Vec<OleItem>,
16987 #[cfg(feature = "extra-children")]
16989 #[serde(skip)]
16990 #[cfg(feature = "extra-children")]
16991 pub extra_children: Vec<ooxml_xml::PositionedNode>,
16992}
16993
16994#[derive(Debug, Clone, Serialize, Deserialize)]
16995pub struct OleItem {
16996 #[serde(rename = "@name")]
16997 pub name: XmlString,
16998 #[serde(rename = "@icon")]
16999 #[serde(
17000 default,
17001 skip_serializing_if = "Option::is_none",
17002 with = "ooxml_xml::ooxml_bool"
17003 )]
17004 pub icon: Option<bool>,
17005 #[serde(rename = "@advise")]
17006 #[serde(
17007 default,
17008 skip_serializing_if = "Option::is_none",
17009 with = "ooxml_xml::ooxml_bool"
17010 )]
17011 pub advise: Option<bool>,
17012 #[serde(rename = "@preferPic")]
17013 #[serde(
17014 default,
17015 skip_serializing_if = "Option::is_none",
17016 with = "ooxml_xml::ooxml_bool"
17017 )]
17018 pub prefer_pic: Option<bool>,
17019 #[cfg(feature = "extra-attrs")]
17021 #[serde(skip)]
17022 #[cfg(feature = "extra-attrs")]
17023 #[serde(default)]
17024 #[cfg(feature = "extra-attrs")]
17025 pub extra_attrs: std::collections::HashMap<String, String>,
17026}
17027
17028pub type SmlTable = Box<Table>;
17029
17030#[derive(Debug, Clone, Serialize, Deserialize)]
17031#[serde(rename = "table")]
17032pub struct Table {
17033 #[cfg(feature = "sml-tables")]
17034 #[serde(rename = "@id")]
17035 pub id: u32,
17036 #[cfg(feature = "sml-tables")]
17037 #[serde(rename = "@name")]
17038 #[serde(default, skip_serializing_if = "Option::is_none")]
17039 pub name: Option<XmlString>,
17040 #[cfg(feature = "sml-tables")]
17041 #[serde(rename = "@displayName")]
17042 pub display_name: XmlString,
17043 #[cfg(feature = "sml-tables")]
17044 #[serde(rename = "@comment")]
17045 #[serde(default, skip_serializing_if = "Option::is_none")]
17046 pub comment: Option<XmlString>,
17047 #[cfg(feature = "sml-tables")]
17048 #[serde(rename = "@ref")]
17049 pub reference: Reference,
17050 #[cfg(feature = "sml-tables")]
17051 #[serde(rename = "@tableType")]
17052 #[serde(default, skip_serializing_if = "Option::is_none")]
17053 pub table_type: Option<STTableType>,
17054 #[cfg(feature = "sml-tables")]
17055 #[serde(rename = "@headerRowCount")]
17056 #[serde(default, skip_serializing_if = "Option::is_none")]
17057 pub header_row_count: Option<u32>,
17058 #[cfg(feature = "sml-tables")]
17059 #[serde(rename = "@insertRow")]
17060 #[serde(
17061 default,
17062 skip_serializing_if = "Option::is_none",
17063 with = "ooxml_xml::ooxml_bool"
17064 )]
17065 pub insert_row: Option<bool>,
17066 #[cfg(feature = "sml-tables")]
17067 #[serde(rename = "@insertRowShift")]
17068 #[serde(
17069 default,
17070 skip_serializing_if = "Option::is_none",
17071 with = "ooxml_xml::ooxml_bool"
17072 )]
17073 pub insert_row_shift: Option<bool>,
17074 #[cfg(feature = "sml-tables")]
17075 #[serde(rename = "@totalsRowCount")]
17076 #[serde(default, skip_serializing_if = "Option::is_none")]
17077 pub totals_row_count: Option<u32>,
17078 #[cfg(feature = "sml-tables")]
17079 #[serde(rename = "@totalsRowShown")]
17080 #[serde(
17081 default,
17082 skip_serializing_if = "Option::is_none",
17083 with = "ooxml_xml::ooxml_bool"
17084 )]
17085 pub totals_row_shown: Option<bool>,
17086 #[cfg(feature = "sml-tables")]
17087 #[serde(rename = "@published")]
17088 #[serde(
17089 default,
17090 skip_serializing_if = "Option::is_none",
17091 with = "ooxml_xml::ooxml_bool"
17092 )]
17093 pub published: Option<bool>,
17094 #[cfg(feature = "sml-tables")]
17095 #[serde(rename = "@headerRowDxfId")]
17096 #[serde(default, skip_serializing_if = "Option::is_none")]
17097 pub header_row_dxf_id: Option<STDxfId>,
17098 #[cfg(feature = "sml-tables")]
17099 #[serde(rename = "@dataDxfId")]
17100 #[serde(default, skip_serializing_if = "Option::is_none")]
17101 pub data_dxf_id: Option<STDxfId>,
17102 #[cfg(feature = "sml-tables")]
17103 #[serde(rename = "@totalsRowDxfId")]
17104 #[serde(default, skip_serializing_if = "Option::is_none")]
17105 pub totals_row_dxf_id: Option<STDxfId>,
17106 #[cfg(feature = "sml-tables")]
17107 #[serde(rename = "@headerRowBorderDxfId")]
17108 #[serde(default, skip_serializing_if = "Option::is_none")]
17109 pub header_row_border_dxf_id: Option<STDxfId>,
17110 #[cfg(feature = "sml-tables")]
17111 #[serde(rename = "@tableBorderDxfId")]
17112 #[serde(default, skip_serializing_if = "Option::is_none")]
17113 pub table_border_dxf_id: Option<STDxfId>,
17114 #[cfg(feature = "sml-tables")]
17115 #[serde(rename = "@totalsRowBorderDxfId")]
17116 #[serde(default, skip_serializing_if = "Option::is_none")]
17117 pub totals_row_border_dxf_id: Option<STDxfId>,
17118 #[cfg(feature = "sml-tables")]
17119 #[serde(rename = "@headerRowCellStyle")]
17120 #[serde(default, skip_serializing_if = "Option::is_none")]
17121 pub header_row_cell_style: Option<XmlString>,
17122 #[cfg(feature = "sml-tables")]
17123 #[serde(rename = "@dataCellStyle")]
17124 #[serde(default, skip_serializing_if = "Option::is_none")]
17125 pub data_cell_style: Option<XmlString>,
17126 #[cfg(feature = "sml-tables")]
17127 #[serde(rename = "@totalsRowCellStyle")]
17128 #[serde(default, skip_serializing_if = "Option::is_none")]
17129 pub totals_row_cell_style: Option<XmlString>,
17130 #[cfg(feature = "sml-tables")]
17131 #[serde(rename = "@connectionId")]
17132 #[serde(default, skip_serializing_if = "Option::is_none")]
17133 pub connection_id: Option<u32>,
17134 #[cfg(feature = "sml-tables")]
17135 #[serde(rename = "autoFilter")]
17136 #[serde(default, skip_serializing_if = "Option::is_none")]
17137 pub auto_filter: Option<Box<AutoFilter>>,
17138 #[cfg(feature = "sml-tables")]
17139 #[serde(rename = "sortState")]
17140 #[serde(default, skip_serializing_if = "Option::is_none")]
17141 pub sort_state: Option<Box<SortState>>,
17142 #[cfg(feature = "sml-tables")]
17143 #[serde(rename = "tableColumns")]
17144 pub table_columns: Box<TableColumns>,
17145 #[cfg(feature = "sml-tables")]
17146 #[serde(rename = "tableStyleInfo")]
17147 #[serde(default, skip_serializing_if = "Option::is_none")]
17148 pub table_style_info: Option<Box<TableStyleInfo>>,
17149 #[cfg(feature = "sml-extensions")]
17150 #[serde(rename = "extLst")]
17151 #[serde(default, skip_serializing_if = "Option::is_none")]
17152 pub extension_list: Option<Box<ExtensionList>>,
17153 #[cfg(feature = "extra-attrs")]
17155 #[serde(skip)]
17156 #[cfg(feature = "extra-attrs")]
17157 #[serde(default)]
17158 #[cfg(feature = "extra-attrs")]
17159 pub extra_attrs: std::collections::HashMap<String, String>,
17160 #[cfg(feature = "extra-children")]
17162 #[serde(skip)]
17163 #[cfg(feature = "extra-children")]
17164 pub extra_children: Vec<ooxml_xml::PositionedNode>,
17165}
17166
17167#[derive(Debug, Clone, Default, Serialize, Deserialize)]
17168pub struct TableStyleInfo {
17169 #[serde(rename = "@name")]
17170 #[serde(default, skip_serializing_if = "Option::is_none")]
17171 pub name: Option<XmlString>,
17172 #[serde(rename = "@showFirstColumn")]
17173 #[serde(
17174 default,
17175 skip_serializing_if = "Option::is_none",
17176 with = "ooxml_xml::ooxml_bool"
17177 )]
17178 pub show_first_column: Option<bool>,
17179 #[serde(rename = "@showLastColumn")]
17180 #[serde(
17181 default,
17182 skip_serializing_if = "Option::is_none",
17183 with = "ooxml_xml::ooxml_bool"
17184 )]
17185 pub show_last_column: Option<bool>,
17186 #[serde(rename = "@showRowStripes")]
17187 #[serde(
17188 default,
17189 skip_serializing_if = "Option::is_none",
17190 with = "ooxml_xml::ooxml_bool"
17191 )]
17192 pub show_row_stripes: Option<bool>,
17193 #[serde(rename = "@showColumnStripes")]
17194 #[serde(
17195 default,
17196 skip_serializing_if = "Option::is_none",
17197 with = "ooxml_xml::ooxml_bool"
17198 )]
17199 pub show_column_stripes: Option<bool>,
17200 #[cfg(feature = "extra-attrs")]
17202 #[serde(skip)]
17203 #[cfg(feature = "extra-attrs")]
17204 #[serde(default)]
17205 #[cfg(feature = "extra-attrs")]
17206 pub extra_attrs: std::collections::HashMap<String, String>,
17207}
17208
17209#[derive(Debug, Clone, Default, Serialize, Deserialize)]
17210#[serde(rename = "tableColumns")]
17211pub struct TableColumns {
17212 #[serde(rename = "@count")]
17213 #[serde(default, skip_serializing_if = "Option::is_none")]
17214 pub count: Option<u32>,
17215 #[serde(rename = "tableColumn")]
17216 #[serde(default, skip_serializing_if = "Vec::is_empty")]
17217 pub table_column: Vec<TableColumn>,
17218 #[cfg(feature = "extra-attrs")]
17220 #[serde(skip)]
17221 #[cfg(feature = "extra-attrs")]
17222 #[serde(default)]
17223 #[cfg(feature = "extra-attrs")]
17224 pub extra_attrs: std::collections::HashMap<String, String>,
17225 #[cfg(feature = "extra-children")]
17227 #[serde(skip)]
17228 #[cfg(feature = "extra-children")]
17229 pub extra_children: Vec<ooxml_xml::PositionedNode>,
17230}
17231
17232#[derive(Debug, Clone, Serialize, Deserialize)]
17233#[serde(rename = "tableColumn")]
17234pub struct TableColumn {
17235 #[serde(rename = "@id")]
17236 pub id: u32,
17237 #[serde(rename = "@uniqueName")]
17238 #[serde(default, skip_serializing_if = "Option::is_none")]
17239 pub unique_name: Option<XmlString>,
17240 #[serde(rename = "@name")]
17241 pub name: XmlString,
17242 #[serde(rename = "@totalsRowFunction")]
17243 #[serde(default, skip_serializing_if = "Option::is_none")]
17244 pub totals_row_function: Option<STTotalsRowFunction>,
17245 #[serde(rename = "@totalsRowLabel")]
17246 #[serde(default, skip_serializing_if = "Option::is_none")]
17247 pub totals_row_label: Option<XmlString>,
17248 #[serde(rename = "@queryTableFieldId")]
17249 #[serde(default, skip_serializing_if = "Option::is_none")]
17250 pub query_table_field_id: Option<u32>,
17251 #[serde(rename = "@headerRowDxfId")]
17252 #[serde(default, skip_serializing_if = "Option::is_none")]
17253 pub header_row_dxf_id: Option<STDxfId>,
17254 #[serde(rename = "@dataDxfId")]
17255 #[serde(default, skip_serializing_if = "Option::is_none")]
17256 pub data_dxf_id: Option<STDxfId>,
17257 #[serde(rename = "@totalsRowDxfId")]
17258 #[serde(default, skip_serializing_if = "Option::is_none")]
17259 pub totals_row_dxf_id: Option<STDxfId>,
17260 #[serde(rename = "@headerRowCellStyle")]
17261 #[serde(default, skip_serializing_if = "Option::is_none")]
17262 pub header_row_cell_style: Option<XmlString>,
17263 #[serde(rename = "@dataCellStyle")]
17264 #[serde(default, skip_serializing_if = "Option::is_none")]
17265 pub data_cell_style: Option<XmlString>,
17266 #[serde(rename = "@totalsRowCellStyle")]
17267 #[serde(default, skip_serializing_if = "Option::is_none")]
17268 pub totals_row_cell_style: Option<XmlString>,
17269 #[serde(rename = "calculatedColumnFormula")]
17270 #[serde(default, skip_serializing_if = "Option::is_none")]
17271 pub calculated_column_formula: Option<Box<TableFormula>>,
17272 #[serde(rename = "totalsRowFormula")]
17273 #[serde(default, skip_serializing_if = "Option::is_none")]
17274 pub totals_row_formula: Option<Box<TableFormula>>,
17275 #[serde(rename = "xmlColumnPr")]
17276 #[serde(default, skip_serializing_if = "Option::is_none")]
17277 pub xml_column_pr: Option<Box<XmlColumnProperties>>,
17278 #[serde(rename = "extLst")]
17279 #[serde(default, skip_serializing_if = "Option::is_none")]
17280 pub extension_list: Option<Box<ExtensionList>>,
17281 #[cfg(feature = "extra-attrs")]
17283 #[serde(skip)]
17284 #[cfg(feature = "extra-attrs")]
17285 #[serde(default)]
17286 #[cfg(feature = "extra-attrs")]
17287 pub extra_attrs: std::collections::HashMap<String, String>,
17288 #[cfg(feature = "extra-children")]
17290 #[serde(skip)]
17291 #[cfg(feature = "extra-children")]
17292 pub extra_children: Vec<ooxml_xml::PositionedNode>,
17293}
17294
17295#[derive(Debug, Clone, Default, Serialize, Deserialize)]
17296pub struct TableFormula {
17297 #[serde(rename = "$text")]
17298 #[serde(default, skip_serializing_if = "Option::is_none")]
17299 pub text: Option<String>,
17300 #[serde(rename = "@array")]
17301 #[serde(
17302 default,
17303 skip_serializing_if = "Option::is_none",
17304 with = "ooxml_xml::ooxml_bool"
17305 )]
17306 pub array: Option<bool>,
17307 #[cfg(feature = "extra-attrs")]
17309 #[serde(skip)]
17310 #[cfg(feature = "extra-attrs")]
17311 #[serde(default)]
17312 #[cfg(feature = "extra-attrs")]
17313 pub extra_attrs: std::collections::HashMap<String, String>,
17314 #[cfg(feature = "extra-children")]
17316 #[serde(skip)]
17317 #[cfg(feature = "extra-children")]
17318 pub extra_children: Vec<ooxml_xml::PositionedNode>,
17319}
17320
17321#[derive(Debug, Clone, Serialize, Deserialize)]
17322pub struct XmlColumnProperties {
17323 #[serde(rename = "@mapId")]
17324 pub map_id: u32,
17325 #[serde(rename = "@xpath")]
17326 pub xpath: XmlString,
17327 #[serde(rename = "@denormalized")]
17328 #[serde(
17329 default,
17330 skip_serializing_if = "Option::is_none",
17331 with = "ooxml_xml::ooxml_bool"
17332 )]
17333 pub denormalized: Option<bool>,
17334 #[serde(rename = "@xmlDataType")]
17335 pub xml_data_type: STXmlDataType,
17336 #[serde(rename = "extLst")]
17337 #[serde(default, skip_serializing_if = "Option::is_none")]
17338 pub extension_list: Option<Box<ExtensionList>>,
17339 #[cfg(feature = "extra-attrs")]
17341 #[serde(skip)]
17342 #[cfg(feature = "extra-attrs")]
17343 #[serde(default)]
17344 #[cfg(feature = "extra-attrs")]
17345 pub extra_attrs: std::collections::HashMap<String, String>,
17346 #[cfg(feature = "extra-children")]
17348 #[serde(skip)]
17349 #[cfg(feature = "extra-children")]
17350 pub extra_children: Vec<ooxml_xml::PositionedNode>,
17351}
17352
17353pub type SmlVolTypes = Box<CTVolTypes>;
17354
17355#[derive(Debug, Clone, Default, Serialize, Deserialize)]
17356pub struct CTVolTypes {
17357 #[serde(rename = "volType")]
17358 #[serde(default, skip_serializing_if = "Vec::is_empty")]
17359 pub vol_type: Vec<CTVolType>,
17360 #[serde(rename = "extLst")]
17361 #[serde(default, skip_serializing_if = "Option::is_none")]
17362 pub extension_list: Option<Box<ExtensionList>>,
17363 #[cfg(feature = "extra-children")]
17365 #[serde(skip)]
17366 #[cfg(feature = "extra-children")]
17367 pub extra_children: Vec<ooxml_xml::PositionedNode>,
17368}
17369
17370#[derive(Debug, Clone, Serialize, Deserialize)]
17371pub struct CTVolType {
17372 #[serde(rename = "@type")]
17373 pub r#type: STVolDepType,
17374 #[serde(rename = "main")]
17375 #[serde(default, skip_serializing_if = "Vec::is_empty")]
17376 pub main: Vec<CTVolMain>,
17377 #[cfg(feature = "extra-attrs")]
17379 #[serde(skip)]
17380 #[cfg(feature = "extra-attrs")]
17381 #[serde(default)]
17382 #[cfg(feature = "extra-attrs")]
17383 pub extra_attrs: std::collections::HashMap<String, String>,
17384 #[cfg(feature = "extra-children")]
17386 #[serde(skip)]
17387 #[cfg(feature = "extra-children")]
17388 pub extra_children: Vec<ooxml_xml::PositionedNode>,
17389}
17390
17391#[derive(Debug, Clone, Serialize, Deserialize)]
17392pub struct CTVolMain {
17393 #[serde(rename = "@first")]
17394 pub first: XmlString,
17395 #[serde(rename = "tp")]
17396 #[serde(default, skip_serializing_if = "Vec::is_empty")]
17397 pub tp: Vec<CTVolTopic>,
17398 #[cfg(feature = "extra-attrs")]
17400 #[serde(skip)]
17401 #[cfg(feature = "extra-attrs")]
17402 #[serde(default)]
17403 #[cfg(feature = "extra-attrs")]
17404 pub extra_attrs: std::collections::HashMap<String, String>,
17405 #[cfg(feature = "extra-children")]
17407 #[serde(skip)]
17408 #[cfg(feature = "extra-children")]
17409 pub extra_children: Vec<ooxml_xml::PositionedNode>,
17410}
17411
17412#[derive(Debug, Clone, Serialize, Deserialize)]
17413pub struct CTVolTopic {
17414 #[serde(rename = "@t")]
17415 #[serde(default, skip_serializing_if = "Option::is_none")]
17416 pub cell_type: Option<STVolValueType>,
17417 #[serde(rename = "v")]
17418 pub value: XmlString,
17419 #[serde(rename = "stp")]
17420 #[serde(default, skip_serializing_if = "Vec::is_empty")]
17421 pub stp: Vec<XmlString>,
17422 #[serde(rename = "tr")]
17423 #[serde(default, skip_serializing_if = "Vec::is_empty")]
17424 pub tr: Vec<CTVolTopicRef>,
17425 #[cfg(feature = "extra-attrs")]
17427 #[serde(skip)]
17428 #[cfg(feature = "extra-attrs")]
17429 #[serde(default)]
17430 #[cfg(feature = "extra-attrs")]
17431 pub extra_attrs: std::collections::HashMap<String, String>,
17432 #[cfg(feature = "extra-children")]
17434 #[serde(skip)]
17435 #[cfg(feature = "extra-children")]
17436 pub extra_children: Vec<ooxml_xml::PositionedNode>,
17437}
17438
17439#[derive(Debug, Clone, Serialize, Deserialize)]
17440pub struct CTVolTopicRef {
17441 #[serde(rename = "@r")]
17442 pub reference: CellRef,
17443 #[serde(rename = "@s")]
17444 pub style_index: u32,
17445 #[cfg(feature = "extra-attrs")]
17447 #[serde(skip)]
17448 #[cfg(feature = "extra-attrs")]
17449 #[serde(default)]
17450 #[cfg(feature = "extra-attrs")]
17451 pub extra_attrs: std::collections::HashMap<String, String>,
17452}
17453
17454pub type SmlWorkbook = Box<Workbook>;
17455
17456#[derive(Debug, Clone, Serialize, Deserialize)]
17457#[serde(rename = "workbook")]
17458pub struct Workbook {
17459 #[serde(rename = "@conformance")]
17460 #[serde(default, skip_serializing_if = "Option::is_none")]
17461 pub conformance: Option<STConformanceClass>,
17462 #[serde(rename = "fileVersion")]
17463 #[serde(default, skip_serializing_if = "Option::is_none")]
17464 pub file_version: Option<Box<FileVersion>>,
17465 #[cfg(feature = "sml-protection")]
17466 #[serde(rename = "fileSharing")]
17467 #[serde(default, skip_serializing_if = "Option::is_none")]
17468 pub file_sharing: Option<Box<FileSharing>>,
17469 #[serde(rename = "workbookPr")]
17470 #[serde(default, skip_serializing_if = "Option::is_none")]
17471 pub workbook_pr: Option<Box<WorkbookProperties>>,
17472 #[cfg(feature = "sml-protection")]
17473 #[serde(rename = "workbookProtection")]
17474 #[serde(default, skip_serializing_if = "Option::is_none")]
17475 pub workbook_protection: Option<Box<WorkbookProtection>>,
17476 #[serde(rename = "bookViews")]
17477 #[serde(default, skip_serializing_if = "Option::is_none")]
17478 pub book_views: Option<Box<BookViews>>,
17479 #[serde(rename = "sheets")]
17480 pub sheets: Box<Sheets>,
17481 #[cfg(feature = "sml-formulas-advanced")]
17482 #[serde(rename = "functionGroups")]
17483 #[serde(default, skip_serializing_if = "Option::is_none")]
17484 pub function_groups: Option<Box<CTFunctionGroups>>,
17485 #[cfg(feature = "sml-external")]
17486 #[serde(rename = "externalReferences")]
17487 #[serde(default, skip_serializing_if = "Option::is_none")]
17488 pub external_references: Option<Box<ExternalReferences>>,
17489 #[serde(rename = "definedNames")]
17490 #[serde(default, skip_serializing_if = "Option::is_none")]
17491 pub defined_names: Option<Box<DefinedNames>>,
17492 #[cfg(feature = "sml-formulas")]
17493 #[serde(rename = "calcPr")]
17494 #[serde(default, skip_serializing_if = "Option::is_none")]
17495 pub calc_pr: Option<Box<CalculationProperties>>,
17496 #[cfg(feature = "sml-external")]
17497 #[serde(rename = "oleSize")]
17498 #[serde(default, skip_serializing_if = "Option::is_none")]
17499 pub ole_size: Option<Box<CTOleSize>>,
17500 #[cfg(feature = "sml-structure")]
17501 #[serde(rename = "customWorkbookViews")]
17502 #[serde(default, skip_serializing_if = "Option::is_none")]
17503 pub custom_workbook_views: Option<Box<CustomWorkbookViews>>,
17504 #[cfg(feature = "sml-pivot")]
17505 #[serde(rename = "pivotCaches")]
17506 #[serde(default, skip_serializing_if = "Option::is_none")]
17507 pub pivot_caches: Option<Box<PivotCaches>>,
17508 #[cfg(feature = "sml-metadata")]
17509 #[serde(rename = "smartTagPr")]
17510 #[serde(default, skip_serializing_if = "Option::is_none")]
17511 pub smart_tag_pr: Option<Box<CTSmartTagPr>>,
17512 #[cfg(feature = "sml-metadata")]
17513 #[serde(rename = "smartTagTypes")]
17514 #[serde(default, skip_serializing_if = "Option::is_none")]
17515 pub smart_tag_types: Option<Box<CTSmartTagTypes>>,
17516 #[cfg(feature = "sml-external")]
17517 #[serde(rename = "webPublishing")]
17518 #[serde(default, skip_serializing_if = "Option::is_none")]
17519 pub web_publishing: Option<Box<WebPublishing>>,
17520 #[serde(rename = "fileRecoveryPr")]
17521 #[serde(default, skip_serializing_if = "Vec::is_empty")]
17522 pub file_recovery_pr: Vec<FileRecoveryProperties>,
17523 #[cfg(feature = "sml-external")]
17524 #[serde(rename = "webPublishObjects")]
17525 #[serde(default, skip_serializing_if = "Option::is_none")]
17526 pub web_publish_objects: Option<Box<CTWebPublishObjects>>,
17527 #[cfg(feature = "sml-extensions")]
17528 #[serde(rename = "extLst")]
17529 #[serde(default, skip_serializing_if = "Option::is_none")]
17530 pub extension_list: Option<Box<ExtensionList>>,
17531 #[cfg(feature = "extra-attrs")]
17533 #[serde(skip)]
17534 #[cfg(feature = "extra-attrs")]
17535 #[serde(default)]
17536 #[cfg(feature = "extra-attrs")]
17537 pub extra_attrs: std::collections::HashMap<String, String>,
17538 #[cfg(feature = "extra-children")]
17540 #[serde(skip)]
17541 #[cfg(feature = "extra-children")]
17542 pub extra_children: Vec<ooxml_xml::PositionedNode>,
17543}
17544
17545#[derive(Debug, Clone, Default, Serialize, Deserialize)]
17546pub struct FileVersion {
17547 #[serde(rename = "@appName")]
17548 #[serde(default, skip_serializing_if = "Option::is_none")]
17549 pub app_name: Option<String>,
17550 #[serde(rename = "@lastEdited")]
17551 #[serde(default, skip_serializing_if = "Option::is_none")]
17552 pub last_edited: Option<String>,
17553 #[serde(rename = "@lowestEdited")]
17554 #[serde(default, skip_serializing_if = "Option::is_none")]
17555 pub lowest_edited: Option<String>,
17556 #[serde(rename = "@rupBuild")]
17557 #[serde(default, skip_serializing_if = "Option::is_none")]
17558 pub rup_build: Option<String>,
17559 #[serde(rename = "@codeName")]
17560 #[serde(default, skip_serializing_if = "Option::is_none")]
17561 pub code_name: Option<Guid>,
17562 #[cfg(feature = "extra-attrs")]
17564 #[serde(skip)]
17565 #[cfg(feature = "extra-attrs")]
17566 #[serde(default)]
17567 #[cfg(feature = "extra-attrs")]
17568 pub extra_attrs: std::collections::HashMap<String, String>,
17569}
17570
17571#[derive(Debug, Clone, Default, Serialize, Deserialize)]
17572#[serde(rename = "bookViews")]
17573pub struct BookViews {
17574 #[serde(rename = "workbookView")]
17575 #[serde(default, skip_serializing_if = "Vec::is_empty")]
17576 pub workbook_view: Vec<BookView>,
17577 #[cfg(feature = "extra-children")]
17579 #[serde(skip)]
17580 #[cfg(feature = "extra-children")]
17581 pub extra_children: Vec<ooxml_xml::PositionedNode>,
17582}
17583
17584#[derive(Debug, Clone, Default, Serialize, Deserialize)]
17585#[serde(rename = "workbookView")]
17586pub struct BookView {
17587 #[cfg(feature = "sml-structure")]
17588 #[serde(rename = "@visibility")]
17589 #[serde(default, skip_serializing_if = "Option::is_none")]
17590 pub visibility: Option<Visibility>,
17591 #[cfg(feature = "sml-structure")]
17592 #[serde(rename = "@minimized")]
17593 #[serde(
17594 default,
17595 skip_serializing_if = "Option::is_none",
17596 with = "ooxml_xml::ooxml_bool"
17597 )]
17598 pub minimized: Option<bool>,
17599 #[cfg(feature = "sml-structure")]
17600 #[serde(rename = "@showHorizontalScroll")]
17601 #[serde(
17602 default,
17603 skip_serializing_if = "Option::is_none",
17604 with = "ooxml_xml::ooxml_bool"
17605 )]
17606 pub show_horizontal_scroll: Option<bool>,
17607 #[cfg(feature = "sml-structure")]
17608 #[serde(rename = "@showVerticalScroll")]
17609 #[serde(
17610 default,
17611 skip_serializing_if = "Option::is_none",
17612 with = "ooxml_xml::ooxml_bool"
17613 )]
17614 pub show_vertical_scroll: Option<bool>,
17615 #[cfg(feature = "sml-structure")]
17616 #[serde(rename = "@showSheetTabs")]
17617 #[serde(
17618 default,
17619 skip_serializing_if = "Option::is_none",
17620 with = "ooxml_xml::ooxml_bool"
17621 )]
17622 pub show_sheet_tabs: Option<bool>,
17623 #[cfg(feature = "sml-structure")]
17624 #[serde(rename = "@xWindow")]
17625 #[serde(default, skip_serializing_if = "Option::is_none")]
17626 pub x_window: Option<i32>,
17627 #[cfg(feature = "sml-structure")]
17628 #[serde(rename = "@yWindow")]
17629 #[serde(default, skip_serializing_if = "Option::is_none")]
17630 pub y_window: Option<i32>,
17631 #[cfg(feature = "sml-structure")]
17632 #[serde(rename = "@windowWidth")]
17633 #[serde(default, skip_serializing_if = "Option::is_none")]
17634 pub window_width: Option<u32>,
17635 #[cfg(feature = "sml-structure")]
17636 #[serde(rename = "@windowHeight")]
17637 #[serde(default, skip_serializing_if = "Option::is_none")]
17638 pub window_height: Option<u32>,
17639 #[cfg(feature = "sml-structure")]
17640 #[serde(rename = "@tabRatio")]
17641 #[serde(default, skip_serializing_if = "Option::is_none")]
17642 pub tab_ratio: Option<u32>,
17643 #[cfg(feature = "sml-structure")]
17644 #[serde(rename = "@firstSheet")]
17645 #[serde(default, skip_serializing_if = "Option::is_none")]
17646 pub first_sheet: Option<u32>,
17647 #[serde(rename = "@activeTab")]
17648 #[serde(default, skip_serializing_if = "Option::is_none")]
17649 pub active_tab: Option<u32>,
17650 #[cfg(feature = "sml-filtering")]
17651 #[serde(rename = "@autoFilterDateGrouping")]
17652 #[serde(
17653 default,
17654 skip_serializing_if = "Option::is_none",
17655 with = "ooxml_xml::ooxml_bool"
17656 )]
17657 pub auto_filter_date_grouping: Option<bool>,
17658 #[cfg(feature = "sml-extensions")]
17659 #[serde(rename = "extLst")]
17660 #[serde(default, skip_serializing_if = "Option::is_none")]
17661 pub extension_list: Option<Box<ExtensionList>>,
17662 #[cfg(feature = "extra-attrs")]
17664 #[serde(skip)]
17665 #[cfg(feature = "extra-attrs")]
17666 #[serde(default)]
17667 #[cfg(feature = "extra-attrs")]
17668 pub extra_attrs: std::collections::HashMap<String, String>,
17669 #[cfg(feature = "extra-children")]
17671 #[serde(skip)]
17672 #[cfg(feature = "extra-children")]
17673 pub extra_children: Vec<ooxml_xml::PositionedNode>,
17674}
17675
17676#[derive(Debug, Clone, Default, Serialize, Deserialize)]
17677pub struct CustomWorkbookViews {
17678 #[serde(rename = "customWorkbookView")]
17679 #[serde(default, skip_serializing_if = "Vec::is_empty")]
17680 pub custom_workbook_view: Vec<CustomWorkbookView>,
17681 #[cfg(feature = "extra-children")]
17683 #[serde(skip)]
17684 #[cfg(feature = "extra-children")]
17685 pub extra_children: Vec<ooxml_xml::PositionedNode>,
17686}
17687
17688#[derive(Debug, Clone, Serialize, Deserialize)]
17689pub struct CustomWorkbookView {
17690 #[serde(rename = "@name")]
17691 pub name: XmlString,
17692 #[serde(rename = "@guid")]
17693 pub guid: Guid,
17694 #[serde(rename = "@autoUpdate")]
17695 #[serde(
17696 default,
17697 skip_serializing_if = "Option::is_none",
17698 with = "ooxml_xml::ooxml_bool"
17699 )]
17700 pub auto_update: Option<bool>,
17701 #[serde(rename = "@mergeInterval")]
17702 #[serde(default, skip_serializing_if = "Option::is_none")]
17703 pub merge_interval: Option<u32>,
17704 #[serde(rename = "@changesSavedWin")]
17705 #[serde(
17706 default,
17707 skip_serializing_if = "Option::is_none",
17708 with = "ooxml_xml::ooxml_bool"
17709 )]
17710 pub changes_saved_win: Option<bool>,
17711 #[serde(rename = "@onlySync")]
17712 #[serde(
17713 default,
17714 skip_serializing_if = "Option::is_none",
17715 with = "ooxml_xml::ooxml_bool"
17716 )]
17717 pub only_sync: Option<bool>,
17718 #[serde(rename = "@personalView")]
17719 #[serde(
17720 default,
17721 skip_serializing_if = "Option::is_none",
17722 with = "ooxml_xml::ooxml_bool"
17723 )]
17724 pub personal_view: Option<bool>,
17725 #[serde(rename = "@includePrintSettings")]
17726 #[serde(
17727 default,
17728 skip_serializing_if = "Option::is_none",
17729 with = "ooxml_xml::ooxml_bool"
17730 )]
17731 pub include_print_settings: Option<bool>,
17732 #[serde(rename = "@includeHiddenRowCol")]
17733 #[serde(
17734 default,
17735 skip_serializing_if = "Option::is_none",
17736 with = "ooxml_xml::ooxml_bool"
17737 )]
17738 pub include_hidden_row_col: Option<bool>,
17739 #[serde(rename = "@maximized")]
17740 #[serde(
17741 default,
17742 skip_serializing_if = "Option::is_none",
17743 with = "ooxml_xml::ooxml_bool"
17744 )]
17745 pub maximized: Option<bool>,
17746 #[serde(rename = "@minimized")]
17747 #[serde(
17748 default,
17749 skip_serializing_if = "Option::is_none",
17750 with = "ooxml_xml::ooxml_bool"
17751 )]
17752 pub minimized: Option<bool>,
17753 #[serde(rename = "@showHorizontalScroll")]
17754 #[serde(
17755 default,
17756 skip_serializing_if = "Option::is_none",
17757 with = "ooxml_xml::ooxml_bool"
17758 )]
17759 pub show_horizontal_scroll: Option<bool>,
17760 #[serde(rename = "@showVerticalScroll")]
17761 #[serde(
17762 default,
17763 skip_serializing_if = "Option::is_none",
17764 with = "ooxml_xml::ooxml_bool"
17765 )]
17766 pub show_vertical_scroll: Option<bool>,
17767 #[serde(rename = "@showSheetTabs")]
17768 #[serde(
17769 default,
17770 skip_serializing_if = "Option::is_none",
17771 with = "ooxml_xml::ooxml_bool"
17772 )]
17773 pub show_sheet_tabs: Option<bool>,
17774 #[serde(rename = "@xWindow")]
17775 #[serde(default, skip_serializing_if = "Option::is_none")]
17776 pub x_window: Option<i32>,
17777 #[serde(rename = "@yWindow")]
17778 #[serde(default, skip_serializing_if = "Option::is_none")]
17779 pub y_window: Option<i32>,
17780 #[serde(rename = "@windowWidth")]
17781 pub window_width: u32,
17782 #[serde(rename = "@windowHeight")]
17783 pub window_height: u32,
17784 #[serde(rename = "@tabRatio")]
17785 #[serde(default, skip_serializing_if = "Option::is_none")]
17786 pub tab_ratio: Option<u32>,
17787 #[serde(rename = "@activeSheetId")]
17788 pub active_sheet_id: u32,
17789 #[serde(rename = "@showFormulaBar")]
17790 #[serde(
17791 default,
17792 skip_serializing_if = "Option::is_none",
17793 with = "ooxml_xml::ooxml_bool"
17794 )]
17795 pub show_formula_bar: Option<bool>,
17796 #[serde(rename = "@showStatusbar")]
17797 #[serde(
17798 default,
17799 skip_serializing_if = "Option::is_none",
17800 with = "ooxml_xml::ooxml_bool"
17801 )]
17802 pub show_statusbar: Option<bool>,
17803 #[serde(rename = "@showComments")]
17804 #[serde(default, skip_serializing_if = "Option::is_none")]
17805 pub show_comments: Option<CommentVisibility>,
17806 #[serde(rename = "@showObjects")]
17807 #[serde(default, skip_serializing_if = "Option::is_none")]
17808 pub show_objects: Option<ObjectVisibility>,
17809 #[serde(rename = "extLst")]
17810 #[serde(default, skip_serializing_if = "Option::is_none")]
17811 pub extension_list: Option<Box<ExtensionList>>,
17812 #[cfg(feature = "extra-attrs")]
17814 #[serde(skip)]
17815 #[cfg(feature = "extra-attrs")]
17816 #[serde(default)]
17817 #[cfg(feature = "extra-attrs")]
17818 pub extra_attrs: std::collections::HashMap<String, String>,
17819 #[cfg(feature = "extra-children")]
17821 #[serde(skip)]
17822 #[cfg(feature = "extra-children")]
17823 pub extra_children: Vec<ooxml_xml::PositionedNode>,
17824}
17825
17826#[derive(Debug, Clone, Default, Serialize, Deserialize)]
17827#[serde(rename = "sheets")]
17828pub struct Sheets {
17829 #[serde(rename = "sheet")]
17830 #[serde(default, skip_serializing_if = "Vec::is_empty")]
17831 pub sheet: Vec<Sheet>,
17832 #[cfg(feature = "extra-children")]
17834 #[serde(skip)]
17835 #[cfg(feature = "extra-children")]
17836 pub extra_children: Vec<ooxml_xml::PositionedNode>,
17837}
17838
17839#[derive(Debug, Clone, Serialize, Deserialize)]
17840#[serde(rename = "sheet")]
17841pub struct Sheet {
17842 #[serde(rename = "@name")]
17843 pub name: XmlString,
17844 #[serde(rename = "@sheetId")]
17845 pub sheet_id: u32,
17846 #[cfg(feature = "sml-structure")]
17847 #[serde(rename = "@state")]
17848 #[serde(default, skip_serializing_if = "Option::is_none")]
17849 pub state: Option<SheetState>,
17850 #[serde(rename = "@r:id")]
17851 pub id: STRelationshipId,
17852 #[cfg(feature = "extra-attrs")]
17854 #[serde(skip)]
17855 #[cfg(feature = "extra-attrs")]
17856 #[serde(default)]
17857 #[cfg(feature = "extra-attrs")]
17858 pub extra_attrs: std::collections::HashMap<String, String>,
17859}
17860
17861#[derive(Debug, Clone, Default, Serialize, Deserialize)]
17862#[serde(rename = "workbookPr")]
17863pub struct WorkbookProperties {
17864 #[serde(rename = "@date1904")]
17865 #[serde(
17866 default,
17867 skip_serializing_if = "Option::is_none",
17868 with = "ooxml_xml::ooxml_bool"
17869 )]
17870 pub date1904: Option<bool>,
17871 #[serde(rename = "@showObjects")]
17872 #[serde(default, skip_serializing_if = "Option::is_none")]
17873 pub show_objects: Option<ObjectVisibility>,
17874 #[serde(rename = "@showBorderUnselectedTables")]
17875 #[serde(
17876 default,
17877 skip_serializing_if = "Option::is_none",
17878 with = "ooxml_xml::ooxml_bool"
17879 )]
17880 pub show_border_unselected_tables: Option<bool>,
17881 #[serde(rename = "@filterPrivacy")]
17882 #[serde(
17883 default,
17884 skip_serializing_if = "Option::is_none",
17885 with = "ooxml_xml::ooxml_bool"
17886 )]
17887 pub filter_privacy: Option<bool>,
17888 #[serde(rename = "@promptedSolutions")]
17889 #[serde(
17890 default,
17891 skip_serializing_if = "Option::is_none",
17892 with = "ooxml_xml::ooxml_bool"
17893 )]
17894 pub prompted_solutions: Option<bool>,
17895 #[serde(rename = "@showInkAnnotation")]
17896 #[serde(
17897 default,
17898 skip_serializing_if = "Option::is_none",
17899 with = "ooxml_xml::ooxml_bool"
17900 )]
17901 pub show_ink_annotation: Option<bool>,
17902 #[serde(rename = "@backupFile")]
17903 #[serde(
17904 default,
17905 skip_serializing_if = "Option::is_none",
17906 with = "ooxml_xml::ooxml_bool"
17907 )]
17908 pub backup_file: Option<bool>,
17909 #[serde(rename = "@saveExternalLinkValues")]
17910 #[serde(
17911 default,
17912 skip_serializing_if = "Option::is_none",
17913 with = "ooxml_xml::ooxml_bool"
17914 )]
17915 pub save_external_link_values: Option<bool>,
17916 #[serde(rename = "@updateLinks")]
17917 #[serde(default, skip_serializing_if = "Option::is_none")]
17918 pub update_links: Option<UpdateLinks>,
17919 #[serde(rename = "@codeName")]
17920 #[serde(default, skip_serializing_if = "Option::is_none")]
17921 pub code_name: Option<String>,
17922 #[serde(rename = "@hidePivotFieldList")]
17923 #[serde(
17924 default,
17925 skip_serializing_if = "Option::is_none",
17926 with = "ooxml_xml::ooxml_bool"
17927 )]
17928 pub hide_pivot_field_list: Option<bool>,
17929 #[serde(rename = "@showPivotChartFilter")]
17930 #[serde(
17931 default,
17932 skip_serializing_if = "Option::is_none",
17933 with = "ooxml_xml::ooxml_bool"
17934 )]
17935 pub show_pivot_chart_filter: Option<bool>,
17936 #[serde(rename = "@allowRefreshQuery")]
17937 #[serde(
17938 default,
17939 skip_serializing_if = "Option::is_none",
17940 with = "ooxml_xml::ooxml_bool"
17941 )]
17942 pub allow_refresh_query: Option<bool>,
17943 #[serde(rename = "@publishItems")]
17944 #[serde(
17945 default,
17946 skip_serializing_if = "Option::is_none",
17947 with = "ooxml_xml::ooxml_bool"
17948 )]
17949 pub publish_items: Option<bool>,
17950 #[serde(rename = "@checkCompatibility")]
17951 #[serde(
17952 default,
17953 skip_serializing_if = "Option::is_none",
17954 with = "ooxml_xml::ooxml_bool"
17955 )]
17956 pub check_compatibility: Option<bool>,
17957 #[serde(rename = "@autoCompressPictures")]
17958 #[serde(
17959 default,
17960 skip_serializing_if = "Option::is_none",
17961 with = "ooxml_xml::ooxml_bool"
17962 )]
17963 pub auto_compress_pictures: Option<bool>,
17964 #[serde(rename = "@refreshAllConnections")]
17965 #[serde(
17966 default,
17967 skip_serializing_if = "Option::is_none",
17968 with = "ooxml_xml::ooxml_bool"
17969 )]
17970 pub refresh_all_connections: Option<bool>,
17971 #[serde(rename = "@defaultThemeVersion")]
17972 #[serde(default, skip_serializing_if = "Option::is_none")]
17973 pub default_theme_version: Option<u32>,
17974 #[cfg(feature = "extra-attrs")]
17976 #[serde(skip)]
17977 #[cfg(feature = "extra-attrs")]
17978 #[serde(default)]
17979 #[cfg(feature = "extra-attrs")]
17980 pub extra_attrs: std::collections::HashMap<String, String>,
17981}
17982
17983#[derive(Debug, Clone, Default, Serialize, Deserialize)]
17984pub struct CTSmartTagPr {
17985 #[serde(rename = "@embed")]
17986 #[serde(
17987 default,
17988 skip_serializing_if = "Option::is_none",
17989 with = "ooxml_xml::ooxml_bool"
17990 )]
17991 pub embed: Option<bool>,
17992 #[serde(rename = "@show")]
17993 #[serde(default, skip_serializing_if = "Option::is_none")]
17994 pub show: Option<STSmartTagShow>,
17995 #[cfg(feature = "extra-attrs")]
17997 #[serde(skip)]
17998 #[cfg(feature = "extra-attrs")]
17999 #[serde(default)]
18000 #[cfg(feature = "extra-attrs")]
18001 pub extra_attrs: std::collections::HashMap<String, String>,
18002}
18003
18004#[derive(Debug, Clone, Default, Serialize, Deserialize)]
18005pub struct CTSmartTagTypes {
18006 #[serde(rename = "smartTagType")]
18007 #[serde(default, skip_serializing_if = "Vec::is_empty")]
18008 pub smart_tag_type: Vec<CTSmartTagType>,
18009 #[cfg(feature = "extra-children")]
18011 #[serde(skip)]
18012 #[cfg(feature = "extra-children")]
18013 pub extra_children: Vec<ooxml_xml::PositionedNode>,
18014}
18015
18016#[derive(Debug, Clone, Default, Serialize, Deserialize)]
18017pub struct CTSmartTagType {
18018 #[serde(rename = "@namespaceUri")]
18019 #[serde(default, skip_serializing_if = "Option::is_none")]
18020 pub namespace_uri: Option<XmlString>,
18021 #[serde(rename = "@name")]
18022 #[serde(default, skip_serializing_if = "Option::is_none")]
18023 pub name: Option<XmlString>,
18024 #[serde(rename = "@url")]
18025 #[serde(default, skip_serializing_if = "Option::is_none")]
18026 pub url: Option<XmlString>,
18027 #[cfg(feature = "extra-attrs")]
18029 #[serde(skip)]
18030 #[cfg(feature = "extra-attrs")]
18031 #[serde(default)]
18032 #[cfg(feature = "extra-attrs")]
18033 pub extra_attrs: std::collections::HashMap<String, String>,
18034}
18035
18036#[derive(Debug, Clone, Default, Serialize, Deserialize)]
18037pub struct FileRecoveryProperties {
18038 #[serde(rename = "@autoRecover")]
18039 #[serde(
18040 default,
18041 skip_serializing_if = "Option::is_none",
18042 with = "ooxml_xml::ooxml_bool"
18043 )]
18044 pub auto_recover: Option<bool>,
18045 #[serde(rename = "@crashSave")]
18046 #[serde(
18047 default,
18048 skip_serializing_if = "Option::is_none",
18049 with = "ooxml_xml::ooxml_bool"
18050 )]
18051 pub crash_save: Option<bool>,
18052 #[serde(rename = "@dataExtractLoad")]
18053 #[serde(
18054 default,
18055 skip_serializing_if = "Option::is_none",
18056 with = "ooxml_xml::ooxml_bool"
18057 )]
18058 pub data_extract_load: Option<bool>,
18059 #[serde(rename = "@repairLoad")]
18060 #[serde(
18061 default,
18062 skip_serializing_if = "Option::is_none",
18063 with = "ooxml_xml::ooxml_bool"
18064 )]
18065 pub repair_load: Option<bool>,
18066 #[cfg(feature = "extra-attrs")]
18068 #[serde(skip)]
18069 #[cfg(feature = "extra-attrs")]
18070 #[serde(default)]
18071 #[cfg(feature = "extra-attrs")]
18072 pub extra_attrs: std::collections::HashMap<String, String>,
18073}
18074
18075#[derive(Debug, Clone, Default, Serialize, Deserialize)]
18076#[serde(rename = "calcPr")]
18077pub struct CalculationProperties {
18078 #[cfg(feature = "sml-formulas")]
18079 #[serde(rename = "@calcId")]
18080 #[serde(default, skip_serializing_if = "Option::is_none")]
18081 pub calc_id: Option<u32>,
18082 #[cfg(feature = "sml-formulas")]
18083 #[serde(rename = "@calcMode")]
18084 #[serde(default, skip_serializing_if = "Option::is_none")]
18085 pub calc_mode: Option<CalculationMode>,
18086 #[cfg(feature = "sml-formulas")]
18087 #[serde(rename = "@fullCalcOnLoad")]
18088 #[serde(
18089 default,
18090 skip_serializing_if = "Option::is_none",
18091 with = "ooxml_xml::ooxml_bool"
18092 )]
18093 pub full_calc_on_load: Option<bool>,
18094 #[cfg(feature = "sml-formulas")]
18095 #[serde(rename = "@refMode")]
18096 #[serde(default, skip_serializing_if = "Option::is_none")]
18097 pub ref_mode: Option<ReferenceMode>,
18098 #[cfg(feature = "sml-formulas-advanced")]
18099 #[serde(rename = "@iterate")]
18100 #[serde(
18101 default,
18102 skip_serializing_if = "Option::is_none",
18103 with = "ooxml_xml::ooxml_bool"
18104 )]
18105 pub iterate: Option<bool>,
18106 #[cfg(feature = "sml-formulas-advanced")]
18107 #[serde(rename = "@iterateCount")]
18108 #[serde(default, skip_serializing_if = "Option::is_none")]
18109 pub iterate_count: Option<u32>,
18110 #[cfg(feature = "sml-formulas-advanced")]
18111 #[serde(rename = "@iterateDelta")]
18112 #[serde(default, skip_serializing_if = "Option::is_none")]
18113 pub iterate_delta: Option<f64>,
18114 #[cfg(feature = "sml-formulas")]
18115 #[serde(rename = "@fullPrecision")]
18116 #[serde(
18117 default,
18118 skip_serializing_if = "Option::is_none",
18119 with = "ooxml_xml::ooxml_bool"
18120 )]
18121 pub full_precision: Option<bool>,
18122 #[cfg(feature = "sml-formulas")]
18123 #[serde(rename = "@calcCompleted")]
18124 #[serde(
18125 default,
18126 skip_serializing_if = "Option::is_none",
18127 with = "ooxml_xml::ooxml_bool"
18128 )]
18129 pub calc_completed: Option<bool>,
18130 #[cfg(feature = "sml-formulas")]
18131 #[serde(rename = "@calcOnSave")]
18132 #[serde(
18133 default,
18134 skip_serializing_if = "Option::is_none",
18135 with = "ooxml_xml::ooxml_bool"
18136 )]
18137 pub calc_on_save: Option<bool>,
18138 #[cfg(feature = "sml-formulas-advanced")]
18139 #[serde(rename = "@concurrentCalc")]
18140 #[serde(
18141 default,
18142 skip_serializing_if = "Option::is_none",
18143 with = "ooxml_xml::ooxml_bool"
18144 )]
18145 pub concurrent_calc: Option<bool>,
18146 #[cfg(feature = "sml-formulas-advanced")]
18147 #[serde(rename = "@concurrentManualCount")]
18148 #[serde(default, skip_serializing_if = "Option::is_none")]
18149 pub concurrent_manual_count: Option<u32>,
18150 #[cfg(feature = "sml-formulas")]
18151 #[serde(rename = "@forceFullCalc")]
18152 #[serde(
18153 default,
18154 skip_serializing_if = "Option::is_none",
18155 with = "ooxml_xml::ooxml_bool"
18156 )]
18157 pub force_full_calc: Option<bool>,
18158 #[cfg(feature = "extra-attrs")]
18160 #[serde(skip)]
18161 #[cfg(feature = "extra-attrs")]
18162 #[serde(default)]
18163 #[cfg(feature = "extra-attrs")]
18164 pub extra_attrs: std::collections::HashMap<String, String>,
18165}
18166
18167#[derive(Debug, Clone, Default, Serialize, Deserialize)]
18168#[serde(rename = "definedNames")]
18169pub struct DefinedNames {
18170 #[serde(rename = "definedName")]
18171 #[serde(default, skip_serializing_if = "Vec::is_empty")]
18172 pub defined_name: Vec<DefinedName>,
18173 #[cfg(feature = "extra-children")]
18175 #[serde(skip)]
18176 #[cfg(feature = "extra-children")]
18177 pub extra_children: Vec<ooxml_xml::PositionedNode>,
18178}
18179
18180#[derive(Debug, Clone, Serialize, Deserialize)]
18181#[serde(rename = "definedName")]
18182pub struct DefinedName {
18183 #[serde(rename = "$text")]
18184 #[serde(default, skip_serializing_if = "Option::is_none")]
18185 pub text: Option<String>,
18186 #[serde(rename = "@name")]
18187 pub name: XmlString,
18188 #[serde(rename = "@comment")]
18189 #[serde(default, skip_serializing_if = "Option::is_none")]
18190 pub comment: Option<XmlString>,
18191 #[cfg(feature = "sml-formulas-advanced")]
18192 #[serde(rename = "@customMenu")]
18193 #[serde(default, skip_serializing_if = "Option::is_none")]
18194 pub custom_menu: Option<XmlString>,
18195 #[serde(rename = "@description")]
18196 #[serde(default, skip_serializing_if = "Option::is_none")]
18197 pub description: Option<XmlString>,
18198 #[cfg(feature = "sml-formulas-advanced")]
18199 #[serde(rename = "@help")]
18200 #[serde(default, skip_serializing_if = "Option::is_none")]
18201 pub help: Option<XmlString>,
18202 #[cfg(feature = "sml-formulas-advanced")]
18203 #[serde(rename = "@statusBar")]
18204 #[serde(default, skip_serializing_if = "Option::is_none")]
18205 pub status_bar: Option<XmlString>,
18206 #[serde(rename = "@localSheetId")]
18207 #[serde(default, skip_serializing_if = "Option::is_none")]
18208 pub local_sheet_id: Option<u32>,
18209 #[cfg(feature = "sml-structure")]
18210 #[serde(rename = "@hidden")]
18211 #[serde(
18212 default,
18213 skip_serializing_if = "Option::is_none",
18214 with = "ooxml_xml::ooxml_bool"
18215 )]
18216 pub hidden: Option<bool>,
18217 #[cfg(feature = "sml-formulas-advanced")]
18218 #[serde(rename = "@function")]
18219 #[serde(
18220 default,
18221 skip_serializing_if = "Option::is_none",
18222 with = "ooxml_xml::ooxml_bool"
18223 )]
18224 pub function: Option<bool>,
18225 #[cfg(feature = "sml-formulas-advanced")]
18226 #[serde(rename = "@vbProcedure")]
18227 #[serde(
18228 default,
18229 skip_serializing_if = "Option::is_none",
18230 with = "ooxml_xml::ooxml_bool"
18231 )]
18232 pub vb_procedure: Option<bool>,
18233 #[cfg(feature = "sml-formulas-advanced")]
18234 #[serde(rename = "@xlm")]
18235 #[serde(
18236 default,
18237 skip_serializing_if = "Option::is_none",
18238 with = "ooxml_xml::ooxml_bool"
18239 )]
18240 pub xlm: Option<bool>,
18241 #[cfg(feature = "sml-formulas-advanced")]
18242 #[serde(rename = "@functionGroupId")]
18243 #[serde(default, skip_serializing_if = "Option::is_none")]
18244 pub function_group_id: Option<u32>,
18245 #[cfg(feature = "sml-formulas-advanced")]
18246 #[serde(rename = "@shortcutKey")]
18247 #[serde(default, skip_serializing_if = "Option::is_none")]
18248 pub shortcut_key: Option<XmlString>,
18249 #[cfg(feature = "sml-external")]
18250 #[serde(rename = "@publishToServer")]
18251 #[serde(
18252 default,
18253 skip_serializing_if = "Option::is_none",
18254 with = "ooxml_xml::ooxml_bool"
18255 )]
18256 pub publish_to_server: Option<bool>,
18257 #[cfg(feature = "sml-formulas-advanced")]
18258 #[serde(rename = "@workbookParameter")]
18259 #[serde(
18260 default,
18261 skip_serializing_if = "Option::is_none",
18262 with = "ooxml_xml::ooxml_bool"
18263 )]
18264 pub workbook_parameter: Option<bool>,
18265 #[cfg(feature = "extra-attrs")]
18267 #[serde(skip)]
18268 #[cfg(feature = "extra-attrs")]
18269 #[serde(default)]
18270 #[cfg(feature = "extra-attrs")]
18271 pub extra_attrs: std::collections::HashMap<String, String>,
18272 #[cfg(feature = "extra-children")]
18274 #[serde(skip)]
18275 #[cfg(feature = "extra-children")]
18276 pub extra_children: Vec<ooxml_xml::PositionedNode>,
18277}
18278
18279#[derive(Debug, Clone, Default, Serialize, Deserialize)]
18280pub struct ExternalReferences {
18281 #[serde(rename = "externalReference")]
18282 #[serde(default, skip_serializing_if = "Vec::is_empty")]
18283 pub external_reference: Vec<ExternalReference>,
18284 #[cfg(feature = "extra-children")]
18286 #[serde(skip)]
18287 #[cfg(feature = "extra-children")]
18288 pub extra_children: Vec<ooxml_xml::PositionedNode>,
18289}
18290
18291#[derive(Debug, Clone, Serialize, Deserialize)]
18292pub struct ExternalReference {
18293 #[serde(rename = "@r:id")]
18294 pub id: STRelationshipId,
18295 #[cfg(feature = "extra-attrs")]
18297 #[serde(skip)]
18298 #[cfg(feature = "extra-attrs")]
18299 #[serde(default)]
18300 #[cfg(feature = "extra-attrs")]
18301 pub extra_attrs: std::collections::HashMap<String, String>,
18302}
18303
18304#[derive(Debug, Clone, Serialize, Deserialize)]
18305pub struct SheetBackgroundPicture {
18306 #[serde(rename = "@r:id")]
18307 pub id: STRelationshipId,
18308 #[cfg(feature = "extra-attrs")]
18310 #[serde(skip)]
18311 #[cfg(feature = "extra-attrs")]
18312 #[serde(default)]
18313 #[cfg(feature = "extra-attrs")]
18314 pub extra_attrs: std::collections::HashMap<String, String>,
18315}
18316
18317#[derive(Debug, Clone, Default, Serialize, Deserialize)]
18318pub struct PivotCaches {
18319 #[serde(rename = "pivotCache")]
18320 #[serde(default, skip_serializing_if = "Vec::is_empty")]
18321 pub pivot_cache: Vec<CTPivotCache>,
18322 #[cfg(feature = "extra-children")]
18324 #[serde(skip)]
18325 #[cfg(feature = "extra-children")]
18326 pub extra_children: Vec<ooxml_xml::PositionedNode>,
18327}
18328
18329#[derive(Debug, Clone, Serialize, Deserialize)]
18330pub struct CTPivotCache {
18331 #[serde(rename = "@cacheId")]
18332 pub cache_id: u32,
18333 #[serde(rename = "@r:id")]
18334 pub id: STRelationshipId,
18335 #[cfg(feature = "extra-attrs")]
18337 #[serde(skip)]
18338 #[cfg(feature = "extra-attrs")]
18339 #[serde(default)]
18340 #[cfg(feature = "extra-attrs")]
18341 pub extra_attrs: std::collections::HashMap<String, String>,
18342}
18343
18344#[derive(Debug, Clone, Default, Serialize, Deserialize)]
18345pub struct FileSharing {
18346 #[serde(rename = "@readOnlyRecommended")]
18347 #[serde(
18348 default,
18349 skip_serializing_if = "Option::is_none",
18350 with = "ooxml_xml::ooxml_bool"
18351 )]
18352 pub read_only_recommended: Option<bool>,
18353 #[serde(rename = "@userName")]
18354 #[serde(default, skip_serializing_if = "Option::is_none")]
18355 pub user_name: Option<XmlString>,
18356 #[serde(rename = "@reservationPassword")]
18357 #[serde(default, skip_serializing_if = "Option::is_none")]
18358 pub reservation_password: Option<STUnsignedShortHex>,
18359 #[serde(rename = "@algorithmName")]
18360 #[serde(default, skip_serializing_if = "Option::is_none")]
18361 pub algorithm_name: Option<XmlString>,
18362 #[serde(rename = "@hashValue")]
18363 #[serde(default, skip_serializing_if = "Option::is_none")]
18364 pub hash_value: Option<Vec<u8>>,
18365 #[serde(rename = "@saltValue")]
18366 #[serde(default, skip_serializing_if = "Option::is_none")]
18367 pub salt_value: Option<Vec<u8>>,
18368 #[serde(rename = "@spinCount")]
18369 #[serde(default, skip_serializing_if = "Option::is_none")]
18370 pub spin_count: Option<u32>,
18371 #[cfg(feature = "extra-attrs")]
18373 #[serde(skip)]
18374 #[cfg(feature = "extra-attrs")]
18375 #[serde(default)]
18376 #[cfg(feature = "extra-attrs")]
18377 pub extra_attrs: std::collections::HashMap<String, String>,
18378}
18379
18380#[derive(Debug, Clone, Serialize, Deserialize)]
18381pub struct CTOleSize {
18382 #[serde(rename = "@ref")]
18383 pub reference: Reference,
18384 #[cfg(feature = "extra-attrs")]
18386 #[serde(skip)]
18387 #[cfg(feature = "extra-attrs")]
18388 #[serde(default)]
18389 #[cfg(feature = "extra-attrs")]
18390 pub extra_attrs: std::collections::HashMap<String, String>,
18391}
18392
18393#[derive(Debug, Clone, Default, Serialize, Deserialize)]
18394#[serde(rename = "workbookProtection")]
18395pub struct WorkbookProtection {
18396 #[serde(rename = "@workbookPassword")]
18397 #[serde(default, skip_serializing_if = "Option::is_none")]
18398 pub workbook_password: Option<STUnsignedShortHex>,
18399 #[serde(rename = "@workbookPasswordCharacterSet")]
18400 #[serde(default, skip_serializing_if = "Option::is_none")]
18401 pub workbook_password_character_set: Option<String>,
18402 #[serde(rename = "@revisionsPassword")]
18403 #[serde(default, skip_serializing_if = "Option::is_none")]
18404 pub revisions_password: Option<STUnsignedShortHex>,
18405 #[serde(rename = "@revisionsPasswordCharacterSet")]
18406 #[serde(default, skip_serializing_if = "Option::is_none")]
18407 pub revisions_password_character_set: Option<String>,
18408 #[serde(rename = "@lockStructure")]
18409 #[serde(
18410 default,
18411 skip_serializing_if = "Option::is_none",
18412 with = "ooxml_xml::ooxml_bool"
18413 )]
18414 pub lock_structure: Option<bool>,
18415 #[serde(rename = "@lockWindows")]
18416 #[serde(
18417 default,
18418 skip_serializing_if = "Option::is_none",
18419 with = "ooxml_xml::ooxml_bool"
18420 )]
18421 pub lock_windows: Option<bool>,
18422 #[serde(rename = "@lockRevision")]
18423 #[serde(
18424 default,
18425 skip_serializing_if = "Option::is_none",
18426 with = "ooxml_xml::ooxml_bool"
18427 )]
18428 pub lock_revision: Option<bool>,
18429 #[serde(rename = "@revisionsAlgorithmName")]
18430 #[serde(default, skip_serializing_if = "Option::is_none")]
18431 pub revisions_algorithm_name: Option<XmlString>,
18432 #[serde(rename = "@revisionsHashValue")]
18433 #[serde(default, skip_serializing_if = "Option::is_none")]
18434 pub revisions_hash_value: Option<Vec<u8>>,
18435 #[serde(rename = "@revisionsSaltValue")]
18436 #[serde(default, skip_serializing_if = "Option::is_none")]
18437 pub revisions_salt_value: Option<Vec<u8>>,
18438 #[serde(rename = "@revisionsSpinCount")]
18439 #[serde(default, skip_serializing_if = "Option::is_none")]
18440 pub revisions_spin_count: Option<u32>,
18441 #[serde(rename = "@workbookAlgorithmName")]
18442 #[serde(default, skip_serializing_if = "Option::is_none")]
18443 pub workbook_algorithm_name: Option<XmlString>,
18444 #[serde(rename = "@workbookHashValue")]
18445 #[serde(default, skip_serializing_if = "Option::is_none")]
18446 pub workbook_hash_value: Option<Vec<u8>>,
18447 #[serde(rename = "@workbookSaltValue")]
18448 #[serde(default, skip_serializing_if = "Option::is_none")]
18449 pub workbook_salt_value: Option<Vec<u8>>,
18450 #[serde(rename = "@workbookSpinCount")]
18451 #[serde(default, skip_serializing_if = "Option::is_none")]
18452 pub workbook_spin_count: Option<u32>,
18453 #[cfg(feature = "extra-attrs")]
18455 #[serde(skip)]
18456 #[cfg(feature = "extra-attrs")]
18457 #[serde(default)]
18458 #[cfg(feature = "extra-attrs")]
18459 pub extra_attrs: std::collections::HashMap<String, String>,
18460}
18461
18462#[derive(Debug, Clone, Default, Serialize, Deserialize)]
18463pub struct WebPublishing {
18464 #[serde(rename = "@css")]
18465 #[serde(
18466 default,
18467 skip_serializing_if = "Option::is_none",
18468 with = "ooxml_xml::ooxml_bool"
18469 )]
18470 pub css: Option<bool>,
18471 #[serde(rename = "@thicket")]
18472 #[serde(
18473 default,
18474 skip_serializing_if = "Option::is_none",
18475 with = "ooxml_xml::ooxml_bool"
18476 )]
18477 pub thicket: Option<bool>,
18478 #[serde(rename = "@longFileNames")]
18479 #[serde(
18480 default,
18481 skip_serializing_if = "Option::is_none",
18482 with = "ooxml_xml::ooxml_bool"
18483 )]
18484 pub long_file_names: Option<bool>,
18485 #[serde(rename = "@vml")]
18486 #[serde(
18487 default,
18488 skip_serializing_if = "Option::is_none",
18489 with = "ooxml_xml::ooxml_bool"
18490 )]
18491 pub vml: Option<bool>,
18492 #[serde(rename = "@allowPng")]
18493 #[serde(
18494 default,
18495 skip_serializing_if = "Option::is_none",
18496 with = "ooxml_xml::ooxml_bool"
18497 )]
18498 pub allow_png: Option<bool>,
18499 #[serde(rename = "@targetScreenSize")]
18500 #[serde(default, skip_serializing_if = "Option::is_none")]
18501 pub target_screen_size: Option<STTargetScreenSize>,
18502 #[serde(rename = "@dpi")]
18503 #[serde(default, skip_serializing_if = "Option::is_none")]
18504 pub dpi: Option<u32>,
18505 #[serde(rename = "@codePage")]
18506 #[serde(default, skip_serializing_if = "Option::is_none")]
18507 pub code_page: Option<u32>,
18508 #[serde(rename = "@characterSet")]
18509 #[serde(default, skip_serializing_if = "Option::is_none")]
18510 pub character_set: Option<String>,
18511 #[cfg(feature = "extra-attrs")]
18513 #[serde(skip)]
18514 #[cfg(feature = "extra-attrs")]
18515 #[serde(default)]
18516 #[cfg(feature = "extra-attrs")]
18517 pub extra_attrs: std::collections::HashMap<String, String>,
18518}
18519
18520#[derive(Debug, Clone, Default, Serialize, Deserialize)]
18521pub struct CTFunctionGroups {
18522 #[serde(rename = "@builtInGroupCount")]
18523 #[serde(default, skip_serializing_if = "Option::is_none")]
18524 pub built_in_group_count: Option<u32>,
18525 #[serde(rename = "functionGroup")]
18526 #[serde(default, skip_serializing_if = "Vec::is_empty")]
18527 pub function_group: Vec<CTFunctionGroup>,
18528 #[cfg(feature = "extra-attrs")]
18530 #[serde(skip)]
18531 #[cfg(feature = "extra-attrs")]
18532 #[serde(default)]
18533 #[cfg(feature = "extra-attrs")]
18534 pub extra_attrs: std::collections::HashMap<String, String>,
18535 #[cfg(feature = "extra-children")]
18537 #[serde(skip)]
18538 #[cfg(feature = "extra-children")]
18539 pub extra_children: Vec<ooxml_xml::PositionedNode>,
18540}
18541
18542#[derive(Debug, Clone, Default, Serialize, Deserialize)]
18543pub struct CTFunctionGroup {
18544 #[serde(rename = "@name")]
18545 #[serde(default, skip_serializing_if = "Option::is_none")]
18546 pub name: Option<XmlString>,
18547 #[cfg(feature = "extra-attrs")]
18549 #[serde(skip)]
18550 #[cfg(feature = "extra-attrs")]
18551 #[serde(default)]
18552 #[cfg(feature = "extra-attrs")]
18553 pub extra_attrs: std::collections::HashMap<String, String>,
18554}
18555
18556#[derive(Debug, Clone, Default, Serialize, Deserialize)]
18557pub struct CTWebPublishObjects {
18558 #[serde(rename = "@count")]
18559 #[serde(default, skip_serializing_if = "Option::is_none")]
18560 pub count: Option<u32>,
18561 #[serde(rename = "webPublishObject")]
18562 #[serde(default, skip_serializing_if = "Vec::is_empty")]
18563 pub web_publish_object: Vec<CTWebPublishObject>,
18564 #[cfg(feature = "extra-attrs")]
18566 #[serde(skip)]
18567 #[cfg(feature = "extra-attrs")]
18568 #[serde(default)]
18569 #[cfg(feature = "extra-attrs")]
18570 pub extra_attrs: std::collections::HashMap<String, String>,
18571 #[cfg(feature = "extra-children")]
18573 #[serde(skip)]
18574 #[cfg(feature = "extra-children")]
18575 pub extra_children: Vec<ooxml_xml::PositionedNode>,
18576}
18577
18578#[derive(Debug, Clone, Serialize, Deserialize)]
18579pub struct CTWebPublishObject {
18580 #[serde(rename = "@id")]
18581 pub id: u32,
18582 #[serde(rename = "@divId")]
18583 pub div_id: XmlString,
18584 #[serde(rename = "@sourceObject")]
18585 #[serde(default, skip_serializing_if = "Option::is_none")]
18586 pub source_object: Option<XmlString>,
18587 #[serde(rename = "@destinationFile")]
18588 pub destination_file: XmlString,
18589 #[serde(rename = "@title")]
18590 #[serde(default, skip_serializing_if = "Option::is_none")]
18591 pub title: Option<XmlString>,
18592 #[serde(rename = "@autoRepublish")]
18593 #[serde(
18594 default,
18595 skip_serializing_if = "Option::is_none",
18596 with = "ooxml_xml::ooxml_bool"
18597 )]
18598 pub auto_republish: Option<bool>,
18599 #[cfg(feature = "extra-attrs")]
18601 #[serde(skip)]
18602 #[cfg(feature = "extra-attrs")]
18603 #[serde(default)]
18604 #[cfg(feature = "extra-attrs")]
18605 pub extra_attrs: std::collections::HashMap<String, String>,
18606}