1use serde::{Deserialize, Serialize};
6
7use super::common::{XlsxExtLst, XlsxInnerXml};
8
9#[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize)]
11#[serde(rename = "Relationships")]
12pub struct XlsxRelationships {
13 #[serde(rename = "Relationship", default)]
14 pub relationships: Vec<XlsxRelationship>,
15}
16
17#[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize)]
19#[serde(rename = "Relationship")]
20pub struct XlsxRelationship {
21 #[serde(rename = "@Id", default)]
22 pub id: String,
23 #[serde(rename = "@Target", default)]
24 pub target: String,
25 #[serde(rename = "@Type", default)]
26 pub r#type: String,
27 #[serde(
28 rename = "@TargetMode",
29 default,
30 skip_serializing_if = "Option::is_none"
31 )]
32 pub target_mode: Option<String>,
33}
34
35#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
37#[serde(rename = "workbook", rename_all = "PascalCase")]
38pub struct XlsxWorkbook {
39 #[serde(
40 rename = "@conformance",
41 default,
42 skip_serializing_if = "Option::is_none"
43 )]
44 pub conformance: Option<String>,
45 #[serde(
46 rename = "fileVersion",
47 default,
48 skip_serializing_if = "Option::is_none"
49 )]
50 pub file_version: Option<XlsxFileVersion>,
51 #[serde(
52 rename = "fileSharing",
53 default,
54 skip_serializing_if = "Option::is_none"
55 )]
56 pub file_sharing: Option<XlsxExtLst>,
57 #[serde(
58 rename = "workbookPr",
59 default,
60 skip_serializing_if = "Option::is_none"
61 )]
62 pub workbook_pr: Option<XlsxWorkbookPr>,
63 #[serde(
64 rename = "mc:AlternateContent",
65 default,
66 skip_serializing_if = "Option::is_none"
67 )]
68 pub alternate_content: Option<XlsxAlternateContent>,
69 #[serde(
70 rename = "http://schemas.openxmlformats.org/markup-compatibility/2006 AlternateContent",
71 default,
72 skip_serializing
73 )]
74 pub decode_alternate_content: Option<XlsxInnerXml>,
75 #[serde(
76 rename = "workbookProtection",
77 default,
78 skip_serializing_if = "Option::is_none"
79 )]
80 pub workbook_protection: Option<XlsxWorkbookProtection>,
81 #[serde(rename = "bookViews", default, skip_serializing_if = "Option::is_none")]
82 pub book_views: Option<XlsxBookViews>,
83 #[serde(rename = "sheets", default)]
84 pub sheets: XlsxSheets,
85 #[serde(
86 rename = "functionGroups",
87 default,
88 skip_serializing_if = "Option::is_none"
89 )]
90 pub function_groups: Option<XlsxFunctionGroups>,
91 #[serde(
92 rename = "externalReferences",
93 default,
94 skip_serializing_if = "Option::is_none"
95 )]
96 pub external_references: Option<XlsxExternalReferences>,
97 #[serde(
98 rename = "definedNames",
99 default,
100 skip_serializing_if = "Option::is_none"
101 )]
102 pub defined_names: Option<XlsxDefinedNames>,
103 #[serde(rename = "calcPr", default, skip_serializing_if = "Option::is_none")]
104 pub calc_pr: Option<XlsxCalcPr>,
105 #[serde(rename = "oleSize", default, skip_serializing_if = "Option::is_none")]
106 pub ole_size: Option<XlsxExtLst>,
107 #[serde(
108 rename = "customWorkbookViews",
109 default,
110 skip_serializing_if = "Option::is_none"
111 )]
112 pub custom_workbook_views: Option<XlsxCustomWorkbookViews>,
113 #[serde(
114 rename = "pivotCaches",
115 default,
116 skip_serializing_if = "Option::is_none"
117 )]
118 pub pivot_caches: Option<XlsxPivotCaches>,
119 #[serde(
120 rename = "smartTagPr",
121 default,
122 skip_serializing_if = "Option::is_none"
123 )]
124 pub smart_tag_pr: Option<XlsxExtLst>,
125 #[serde(
126 rename = "smartTagTypes",
127 default,
128 skip_serializing_if = "Option::is_none"
129 )]
130 pub smart_tag_types: Option<XlsxExtLst>,
131 #[serde(
132 rename = "webPublishing",
133 default,
134 skip_serializing_if = "Option::is_none"
135 )]
136 pub web_publishing: Option<XlsxExtLst>,
137 #[serde(
138 rename = "fileRecoveryPr",
139 default,
140 skip_serializing_if = "Option::is_none"
141 )]
142 pub file_recovery_pr: Option<XlsxFileRecoveryPr>,
143 #[serde(
144 rename = "webPublishObjects",
145 default,
146 skip_serializing_if = "Option::is_none"
147 )]
148 pub web_publish_objects: Option<XlsxExtLst>,
149 #[serde(rename = "extLst", default, skip_serializing_if = "Option::is_none")]
150 pub ext_lst: Option<XlsxExtLst>,
151}
152
153#[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize)]
155pub struct XlsxFileRecoveryPr {
156 #[serde(
157 rename = "@autoRecover",
158 default,
159 skip_serializing_if = "Option::is_none"
160 )]
161 pub auto_recover: Option<bool>,
162 #[serde(
163 rename = "@crashSave",
164 default,
165 skip_serializing_if = "Option::is_none"
166 )]
167 pub crash_save: Option<bool>,
168 #[serde(
169 rename = "@dataExtractLoad",
170 default,
171 skip_serializing_if = "Option::is_none"
172 )]
173 pub data_extract_load: Option<bool>,
174 #[serde(
175 rename = "@repairLoad",
176 default,
177 skip_serializing_if = "Option::is_none"
178 )]
179 pub repair_load: Option<bool>,
180}
181
182#[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize)]
184pub struct XlsxWorkbookProtection {
185 #[serde(
186 rename = "@lockRevision",
187 default,
188 skip_serializing_if = "Option::is_none"
189 )]
190 pub lock_revision: Option<bool>,
191 #[serde(
192 rename = "@lockStructure",
193 default,
194 skip_serializing_if = "Option::is_none"
195 )]
196 pub lock_structure: Option<bool>,
197 #[serde(
198 rename = "@lockWindows",
199 default,
200 skip_serializing_if = "Option::is_none"
201 )]
202 pub lock_windows: Option<bool>,
203 #[serde(
204 rename = "@revisionsAlgorithmName",
205 default,
206 skip_serializing_if = "Option::is_none"
207 )]
208 pub revisions_algorithm_name: Option<String>,
209 #[serde(
210 rename = "@revisionsHashValue",
211 default,
212 skip_serializing_if = "Option::is_none"
213 )]
214 pub revisions_hash_value: Option<String>,
215 #[serde(
216 rename = "@revisionsSaltValue",
217 default,
218 skip_serializing_if = "Option::is_none"
219 )]
220 pub revisions_salt_value: Option<String>,
221 #[serde(
222 rename = "@revisionsSpinCount",
223 default,
224 skip_serializing_if = "Option::is_none"
225 )]
226 pub revisions_spin_count: Option<i64>,
227 #[serde(
228 rename = "@workbookAlgorithmName",
229 default,
230 skip_serializing_if = "Option::is_none"
231 )]
232 pub workbook_algorithm_name: Option<String>,
233 #[serde(
234 rename = "@workbookHashValue",
235 default,
236 skip_serializing_if = "Option::is_none"
237 )]
238 pub workbook_hash_value: Option<String>,
239 #[serde(
240 rename = "@workbookSaltValue",
241 default,
242 skip_serializing_if = "Option::is_none"
243 )]
244 pub workbook_salt_value: Option<String>,
245 #[serde(
246 rename = "@workbookSpinCount",
247 default,
248 skip_serializing_if = "Option::is_none"
249 )]
250 pub workbook_spin_count: Option<i64>,
251}
252
253#[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize)]
255pub struct XlsxFileVersion {
256 #[serde(rename = "@appName", default, skip_serializing_if = "Option::is_none")]
257 pub app_name: Option<String>,
258 #[serde(rename = "@codeName", default, skip_serializing_if = "Option::is_none")]
259 pub code_name: Option<String>,
260 #[serde(
261 rename = "@lastEdited",
262 default,
263 skip_serializing_if = "Option::is_none"
264 )]
265 pub last_edited: Option<String>,
266 #[serde(
267 rename = "@lowestEdited",
268 default,
269 skip_serializing_if = "Option::is_none"
270 )]
271 pub lowest_edited: Option<String>,
272 #[serde(rename = "@rupBuild", default, skip_serializing_if = "Option::is_none")]
273 pub rup_build: Option<String>,
274}
275
276#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
278pub struct XlsxWorkbookPr {
279 #[serde(rename = "@date1904", default, skip_serializing_if = "Option::is_none")]
280 pub date1904: Option<bool>,
281 #[serde(
282 rename = "@showObjects",
283 default,
284 skip_serializing_if = "Option::is_none"
285 )]
286 pub show_objects: Option<String>,
287 #[serde(
288 rename = "@showBorderUnselectedTables",
289 default,
290 skip_serializing_if = "Option::is_none"
291 )]
292 pub show_border_unselected_tables: Option<bool>,
293 #[serde(
294 rename = "@filterPrivacy",
295 default,
296 skip_serializing_if = "Option::is_none"
297 )]
298 pub filter_privacy: Option<bool>,
299 #[serde(
300 rename = "@promptedSolutions",
301 default,
302 skip_serializing_if = "Option::is_none"
303 )]
304 pub prompted_solutions: Option<bool>,
305 #[serde(
306 rename = "@showInkAnnotation",
307 default,
308 skip_serializing_if = "Option::is_none"
309 )]
310 pub show_ink_annotation: Option<bool>,
311 #[serde(
312 rename = "@backupFile",
313 default,
314 skip_serializing_if = "Option::is_none"
315 )]
316 pub backup_file: Option<bool>,
317 #[serde(
318 rename = "@saveExternalLinkValues",
319 default,
320 skip_serializing_if = "Option::is_none"
321 )]
322 pub save_external_link_values: Option<bool>,
323 #[serde(
324 rename = "@updateLinks",
325 default,
326 skip_serializing_if = "Option::is_none"
327 )]
328 pub update_links: Option<String>,
329 #[serde(rename = "@codeName", default, skip_serializing_if = "Option::is_none")]
330 pub code_name: Option<String>,
331 #[serde(
332 rename = "@hidePivotFieldList",
333 default,
334 skip_serializing_if = "Option::is_none"
335 )]
336 pub hide_pivot_field_list: Option<bool>,
337 #[serde(
338 rename = "@showPivotChartFilter",
339 default,
340 skip_serializing_if = "Option::is_none"
341 )]
342 pub show_pivot_chart_filter: Option<bool>,
343 #[serde(
344 rename = "@allowRefreshQuery",
345 default,
346 skip_serializing_if = "Option::is_none"
347 )]
348 pub allow_refresh_query: Option<bool>,
349 #[serde(
350 rename = "@publishItems",
351 default,
352 skip_serializing_if = "Option::is_none"
353 )]
354 pub publish_items: Option<bool>,
355 #[serde(
356 rename = "@checkCompatibility",
357 default,
358 skip_serializing_if = "Option::is_none"
359 )]
360 pub check_compatibility: Option<bool>,
361 #[serde(
362 rename = "@autoCompressPictures",
363 default,
364 skip_serializing_if = "Option::is_none"
365 )]
366 pub auto_compress_pictures: Option<bool>,
367 #[serde(
368 rename = "@refreshAllConnections",
369 default,
370 skip_serializing_if = "Option::is_none"
371 )]
372 pub refresh_all_connections: Option<bool>,
373 #[serde(
374 rename = "@defaultThemeVersion",
375 default,
376 skip_serializing_if = "Option::is_none"
377 )]
378 pub default_theme_version: Option<String>,
379}
380
381#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
383pub struct XlsxBookViews {
384 #[serde(rename = "workbookView", default)]
385 pub workbook_view: Vec<XlsxWorkBookView>,
386}
387
388#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
390pub struct XlsxWorkBookView {
391 #[serde(
392 rename = "@visibility",
393 default,
394 skip_serializing_if = "Option::is_none"
395 )]
396 pub visibility: Option<String>,
397 #[serde(
398 rename = "@minimized",
399 default,
400 skip_serializing_if = "Option::is_none"
401 )]
402 pub minimized: Option<bool>,
403 #[serde(
404 rename = "@showHorizontalScroll",
405 default,
406 skip_serializing_if = "Option::is_none"
407 )]
408 pub show_horizontal_scroll: Option<bool>,
409 #[serde(
410 rename = "@showVerticalScroll",
411 default,
412 skip_serializing_if = "Option::is_none"
413 )]
414 pub show_vertical_scroll: Option<bool>,
415 #[serde(
416 rename = "@showSheetTabs",
417 default,
418 skip_serializing_if = "Option::is_none"
419 )]
420 pub show_sheet_tabs: Option<bool>,
421 #[serde(rename = "@xWindow", default, skip_serializing_if = "Option::is_none")]
422 pub x_window: Option<String>,
423 #[serde(rename = "@yWindow", default, skip_serializing_if = "Option::is_none")]
424 pub y_window: Option<String>,
425 #[serde(
426 rename = "@windowWidth",
427 default,
428 skip_serializing_if = "Option::is_none"
429 )]
430 pub window_width: Option<i64>,
431 #[serde(
432 rename = "@windowHeight",
433 default,
434 skip_serializing_if = "Option::is_none"
435 )]
436 pub window_height: Option<i64>,
437 #[serde(rename = "@tabRatio", default, skip_serializing_if = "Option::is_none")]
438 pub tab_ratio: Option<f64>,
439 #[serde(
440 rename = "@firstSheet",
441 default,
442 skip_serializing_if = "Option::is_none"
443 )]
444 pub first_sheet: Option<i64>,
445 #[serde(
446 rename = "@activeTab",
447 default,
448 skip_serializing_if = "Option::is_none"
449 )]
450 pub active_tab: Option<i64>,
451 #[serde(
452 rename = "@autoFilterDateGrouping",
453 default,
454 skip_serializing_if = "Option::is_none"
455 )]
456 pub auto_filter_date_grouping: Option<bool>,
457}
458
459#[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize)]
461pub struct XlsxSheets {
462 #[serde(rename = "sheet", default)]
463 pub sheet: Vec<XlsxSheet>,
464}
465
466#[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize)]
468pub struct XlsxSheet {
469 #[serde(rename = "@name", default, skip_serializing_if = "Option::is_none")]
470 pub name: Option<String>,
471 #[serde(rename = "@sheetId", default, skip_serializing_if = "Option::is_none")]
472 pub sheet_id: Option<i64>,
473 #[serde(rename = "@r:id", default, skip_serializing_if = "Option::is_none")]
474 pub id: Option<String>,
475 #[serde(rename = "@id", default, skip_serializing_if = "Option::is_none")]
477 pub plain_id: Option<String>,
478 #[serde(rename = "@state", default, skip_serializing_if = "Option::is_none")]
479 pub state: Option<String>,
480}
481
482#[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize)]
484pub struct XlsxFunctionGroup {
485 #[serde(rename = "@name", default)]
486 pub name: String,
487}
488
489#[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize)]
491pub struct XlsxFunctionGroups {
492 #[serde(
493 rename = "@builtInGroupCount",
494 default,
495 skip_serializing_if = "Option::is_none"
496 )]
497 pub built_in_group_count: Option<i64>,
498 #[serde(rename = "functionGroup", default)]
499 pub function_group: Vec<XlsxFunctionGroup>,
500}
501
502#[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize)]
504pub struct XlsxExternalReferences {
505 #[serde(rename = "externalReference", default)]
506 pub external_reference: Vec<XlsxExternalReference>,
507}
508
509#[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize)]
511pub struct XlsxExternalReference {
512 #[serde(rename = "@r:id", default, skip_serializing_if = "Option::is_none")]
513 pub rid: Option<String>,
514}
515
516#[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize)]
518pub struct XlsxPivotCaches {
519 #[serde(rename = "pivotCache", default)]
520 pub pivot_cache: Vec<XlsxPivotCache>,
521}
522
523#[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize)]
525pub struct XlsxPivotCache {
526 #[serde(rename = "@cacheId", default)]
527 pub cache_id: i64,
528 #[serde(rename = "@r:id", default, skip_serializing_if = "Option::is_none")]
529 pub rid: Option<String>,
530}
531
532#[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize)]
534#[serde(rename = "mc:AlternateContent")]
535pub struct XlsxAlternateContent {
536 #[serde(rename = "@xmlns:mc", default, skip_serializing_if = "Option::is_none")]
537 pub xmlns_mc: Option<String>,
538 #[serde(rename = "$value", default)]
539 pub content: String,
540}
541
542#[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize)]
544#[serde(rename = "mc:Choice")]
545pub struct XlsxChoice {
546 #[serde(
547 rename = "@xmlns:a14",
548 default,
549 skip_serializing_if = "Option::is_none"
550 )]
551 pub xmlns_a14: Option<String>,
552 #[serde(
553 rename = "@xmlns:sle15",
554 default,
555 skip_serializing_if = "Option::is_none"
556 )]
557 pub xmlns_sle15: Option<String>,
558 #[serde(rename = "@Requires", default, skip_serializing_if = "Option::is_none")]
559 pub requires: Option<String>,
560 #[serde(rename = "$value", default)]
561 pub content: String,
562}
563
564#[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize)]
566#[serde(rename = "mc:Fallback")]
567pub struct XlsxFallback {
568 #[serde(rename = "$value", default)]
569 pub content: String,
570}
571
572#[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize)]
574pub struct XlsxDefinedNames {
575 #[serde(rename = "definedName", default)]
576 pub defined_name: Vec<XlsxDefinedName>,
577}
578
579#[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize)]
581pub struct XlsxDefinedName {
582 #[serde(rename = "@comment", default, skip_serializing_if = "Option::is_none")]
583 pub comment: Option<String>,
584 #[serde(
585 rename = "@customMenu",
586 default,
587 skip_serializing_if = "Option::is_none"
588 )]
589 pub custom_menu: Option<String>,
590 #[serde(
591 rename = "@description",
592 default,
593 skip_serializing_if = "Option::is_none"
594 )]
595 pub description: Option<String>,
596 #[serde(rename = "@function", default, skip_serializing_if = "Option::is_none")]
597 pub function: Option<bool>,
598 #[serde(
599 rename = "@functionGroupId",
600 default,
601 skip_serializing_if = "Option::is_none"
602 )]
603 pub function_group_id: Option<i64>,
604 #[serde(rename = "@help", default, skip_serializing_if = "Option::is_none")]
605 pub help: Option<String>,
606 #[serde(rename = "@hidden", default, skip_serializing_if = "Option::is_none")]
607 pub hidden: Option<bool>,
608 #[serde(
609 rename = "@localSheetId",
610 default,
611 skip_serializing_if = "Option::is_none"
612 )]
613 pub local_sheet_id: Option<i64>,
614 #[serde(rename = "@name", default, skip_serializing_if = "Option::is_none")]
615 pub name: Option<String>,
616 #[serde(
617 rename = "@publishToServer",
618 default,
619 skip_serializing_if = "Option::is_none"
620 )]
621 pub publish_to_server: Option<bool>,
622 #[serde(
623 rename = "@shortcutKey",
624 default,
625 skip_serializing_if = "Option::is_none"
626 )]
627 pub shortcut_key: Option<String>,
628 #[serde(
629 rename = "@statusBar",
630 default,
631 skip_serializing_if = "Option::is_none"
632 )]
633 pub status_bar: Option<String>,
634 #[serde(
635 rename = "@vbProcedure",
636 default,
637 skip_serializing_if = "Option::is_none"
638 )]
639 pub vb_procedure: Option<bool>,
640 #[serde(
641 rename = "@workbookParameter",
642 default,
643 skip_serializing_if = "Option::is_none"
644 )]
645 pub workbook_parameter: Option<bool>,
646 #[serde(rename = "@xml", default, skip_serializing_if = "Option::is_none")]
647 pub xlm: Option<bool>,
648 #[serde(rename = "$value", default)]
649 pub data: String,
650}
651
652#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
654pub struct XlsxCalcPr {
655 #[serde(
656 rename = "@calcCompleted",
657 default,
658 skip_serializing_if = "Option::is_none"
659 )]
660 pub calc_completed: Option<bool>,
661 #[serde(rename = "@calcId", default, skip_serializing_if = "Option::is_none")]
662 pub calc_id: Option<i64>,
663 #[serde(rename = "@calcMode", default, skip_serializing_if = "Option::is_none")]
664 pub calc_mode: Option<String>,
665 #[serde(
666 rename = "@calcOnSave",
667 default,
668 skip_serializing_if = "Option::is_none"
669 )]
670 pub calc_on_save: Option<bool>,
671 #[serde(
672 rename = "@concurrentCalc",
673 default,
674 skip_serializing_if = "Option::is_none"
675 )]
676 pub concurrent_calc: Option<bool>,
677 #[serde(
678 rename = "@concurrentManualCount",
679 default,
680 skip_serializing_if = "Option::is_none"
681 )]
682 pub concurrent_manual_count: Option<i64>,
683 #[serde(
684 rename = "@forceFullCalc",
685 default,
686 skip_serializing_if = "Option::is_none"
687 )]
688 pub force_full_calc: Option<bool>,
689 #[serde(
690 rename = "@fullCalcOnLoad",
691 default,
692 skip_serializing_if = "Option::is_none"
693 )]
694 pub full_calc_on_load: Option<bool>,
695 #[serde(
696 rename = "@fullPrecision",
697 default,
698 skip_serializing_if = "Option::is_none"
699 )]
700 pub full_precision: Option<bool>,
701 #[serde(rename = "@iterate", default, skip_serializing_if = "Option::is_none")]
702 pub iterate: Option<bool>,
703 #[serde(
704 rename = "@iterateCount",
705 default,
706 skip_serializing_if = "Option::is_none"
707 )]
708 pub iterate_count: Option<i64>,
709 #[serde(
710 rename = "@iterateDelta",
711 default,
712 skip_serializing_if = "Option::is_none"
713 )]
714 pub iterate_delta: Option<f64>,
715 #[serde(rename = "@refMode", default, skip_serializing_if = "Option::is_none")]
716 pub ref_mode: Option<String>,
717}
718
719#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
721pub struct XlsxCustomWorkbookViews {
722 #[serde(rename = "customWorkbookView", default)]
723 pub custom_workbook_view: Vec<XlsxCustomWorkbookView>,
724}
725
726#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
728pub struct XlsxCustomWorkbookView {
729 #[serde(
730 rename = "@activeSheetId",
731 default,
732 skip_serializing_if = "Option::is_none"
733 )]
734 pub active_sheet_id: Option<i64>,
735 #[serde(
736 rename = "@autoUpdate",
737 default,
738 skip_serializing_if = "Option::is_none"
739 )]
740 pub auto_update: Option<bool>,
741 #[serde(
742 rename = "@changesSavedWin",
743 default,
744 skip_serializing_if = "Option::is_none"
745 )]
746 pub changes_saved_win: Option<bool>,
747 #[serde(rename = "@guid", default, skip_serializing_if = "Option::is_none")]
748 pub guid: Option<String>,
749 #[serde(
750 rename = "@includeHiddenRowCol",
751 default,
752 skip_serializing_if = "Option::is_none"
753 )]
754 pub include_hidden_row_col: Option<bool>,
755 #[serde(
756 rename = "@includePrintSettings",
757 default,
758 skip_serializing_if = "Option::is_none"
759 )]
760 pub include_print_settings: Option<bool>,
761 #[serde(
762 rename = "@maximized",
763 default,
764 skip_serializing_if = "Option::is_none"
765 )]
766 pub maximized: Option<bool>,
767 #[serde(rename = "@mergeInterval", default)]
768 pub merge_interval: i64,
769 #[serde(
770 rename = "@minimized",
771 default,
772 skip_serializing_if = "Option::is_none"
773 )]
774 pub minimized: Option<bool>,
775 #[serde(rename = "@name", default, skip_serializing_if = "Option::is_none")]
776 pub name: Option<String>,
777 #[serde(rename = "@onlySync", default, skip_serializing_if = "Option::is_none")]
778 pub only_sync: Option<bool>,
779 #[serde(
780 rename = "@personalView",
781 default,
782 skip_serializing_if = "Option::is_none"
783 )]
784 pub personal_view: Option<bool>,
785 #[serde(
786 rename = "@showComments",
787 default,
788 skip_serializing_if = "Option::is_none"
789 )]
790 pub show_comments: Option<String>,
791 #[serde(
792 rename = "@showFormulaBar",
793 default,
794 skip_serializing_if = "Option::is_none"
795 )]
796 pub show_formula_bar: Option<bool>,
797 #[serde(
798 rename = "@showHorizontalScroll",
799 default,
800 skip_serializing_if = "Option::is_none"
801 )]
802 pub show_horizontal_scroll: Option<bool>,
803 #[serde(
804 rename = "@showObjects",
805 default,
806 skip_serializing_if = "Option::is_none"
807 )]
808 pub show_objects: Option<String>,
809 #[serde(
810 rename = "@showSheetTabs",
811 default,
812 skip_serializing_if = "Option::is_none"
813 )]
814 pub show_sheet_tabs: Option<bool>,
815 #[serde(
816 rename = "@showStatusbar",
817 default,
818 skip_serializing_if = "Option::is_none"
819 )]
820 pub show_statusbar: Option<bool>,
821 #[serde(
822 rename = "@showVerticalScroll",
823 default,
824 skip_serializing_if = "Option::is_none"
825 )]
826 pub show_vertical_scroll: Option<bool>,
827 #[serde(rename = "@tabRatio", default, skip_serializing_if = "Option::is_none")]
828 pub tab_ratio: Option<f64>,
829 #[serde(
830 rename = "@windowHeight",
831 default,
832 skip_serializing_if = "Option::is_none"
833 )]
834 pub window_height: Option<i64>,
835 #[serde(
836 rename = "@windowWidth",
837 default,
838 skip_serializing_if = "Option::is_none"
839 )]
840 pub window_width: Option<i64>,
841 #[serde(rename = "@xWindow", default, skip_serializing_if = "Option::is_none")]
842 pub x_window: Option<i64>,
843 #[serde(rename = "@yWindow", default, skip_serializing_if = "Option::is_none")]
844 pub y_window: Option<i64>,
845}
846
847#[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize)]
853pub struct DefinedName {
854 #[serde(default)]
855 pub name: String,
856 #[serde(default)]
857 pub comment: String,
858 #[serde(rename = "RefersTo", default)]
859 pub refers_to: String,
860 #[serde(default)]
861 pub scope: String,
862}
863
864#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
866pub struct CalcPropsOptions {
867 #[serde(default)]
868 pub calc_id: Option<u64>,
869 #[serde(default)]
870 pub calc_mode: Option<String>,
871 #[serde(
872 rename = "FullCalcOnLoad",
873 default,
874 skip_serializing_if = "Option::is_none"
875 )]
876 pub full_calc_on_load: Option<bool>,
877 #[serde(default)]
878 pub ref_mode: Option<String>,
879 #[serde(default)]
880 pub iterate: Option<bool>,
881 #[serde(default)]
882 pub iterate_count: Option<u64>,
883 #[serde(default)]
884 pub iterate_delta: Option<f64>,
885 #[serde(
886 rename = "FullPrecision",
887 default,
888 skip_serializing_if = "Option::is_none"
889 )]
890 pub full_precision: Option<bool>,
891 #[serde(
892 rename = "CalcCompleted",
893 default,
894 skip_serializing_if = "Option::is_none"
895 )]
896 pub calc_completed: Option<bool>,
897 #[serde(
898 rename = "CalcOnSave",
899 default,
900 skip_serializing_if = "Option::is_none"
901 )]
902 pub calc_on_save: Option<bool>,
903 #[serde(
904 rename = "ConcurrentCalc",
905 default,
906 skip_serializing_if = "Option::is_none"
907 )]
908 pub concurrent_calc: Option<bool>,
909 #[serde(
910 rename = "ConcurrentManualCount",
911 default,
912 skip_serializing_if = "Option::is_none"
913 )]
914 pub concurrent_manual_count: Option<u64>,
915 #[serde(
916 rename = "ForceFullCalc",
917 default,
918 skip_serializing_if = "Option::is_none"
919 )]
920 pub force_full_calc: Option<bool>,
921}
922
923#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
925pub struct WorkbookPropsOptions {
926 #[serde(default)]
927 pub date1904: Option<bool>,
928 #[serde(
929 rename = "FilterPrivacy",
930 default,
931 skip_serializing_if = "Option::is_none"
932 )]
933 pub filter_privacy: Option<bool>,
934 #[serde(default)]
935 pub code_name: Option<String>,
936}
937
938#[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize)]
940pub struct WorkbookProtectionOptions {
941 #[serde(rename = "AlgorithmName", default)]
942 pub algorithm_name: String,
943 #[serde(default)]
944 pub password: String,
945 #[serde(rename = "LockStructure", default)]
946 pub lock_structure: bool,
947 #[serde(rename = "LockWindows", default)]
948 pub lock_windows: bool,
949}