1use serde::{Deserialize, Serialize};
6
7use super::common::{XlsxColor, XlsxExtLst, XlsxInnerXml};
8
9#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
12#[serde(rename = "chartsheet")]
13pub struct XlsxChartsheet {
14 #[serde(rename = "@xmlns", default)]
15 pub xmlns: Option<String>,
16 #[serde(rename = "sheetPr", default)]
17 pub sheet_pr: Option<XlsxChartsheetPr>,
18 #[serde(rename = "sheetViews", default)]
19 pub sheet_views: Option<XlsxChartsheetViews>,
20 #[serde(rename = "sheetProtection", default)]
21 pub sheet_protection: Option<XlsxChartsheetProtection>,
22 #[serde(rename = "customSheetViews", default)]
23 pub custom_sheet_views: Option<XlsxCustomChartsheetViews>,
24 #[serde(rename = "pageMargins", default)]
25 pub page_margins: Option<XlsxPageMargins>,
26 #[serde(rename = "pageSetup", default)]
27 pub page_setup: Option<XlsxPageSetUp>,
28 #[serde(rename = "headerFooter", default)]
29 pub header_footer: Option<XlsxHeaderFooter>,
30 #[serde(rename = "drawing", default)]
31 pub drawing: Option<XlsxDrawing>,
32 #[serde(rename = "drawingHF", default)]
33 pub drawing_hf: Option<XlsxDrawingHF>,
34 #[serde(rename = "picture", default)]
35 pub picture: Option<XlsxPicture>,
36 #[serde(rename = "webPublishItems", default)]
37 pub web_publish_items: Option<XlsxInnerXml>,
38 #[serde(rename = "extLst", default)]
39 pub ext_lst: Option<XlsxExtLst>,
40}
41
42#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
44#[serde(rename = "sheetPr")]
45pub struct XlsxChartsheetPr {
46 #[serde(rename = "@published", default)]
47 pub published: Option<bool>,
48 #[serde(rename = "@codeName", default)]
49 pub code_name: Option<String>,
50 #[serde(rename = "tabColor", default)]
51 pub tab_color: Option<XlsxColor>,
52}
53
54#[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize)]
56#[serde(rename = "sheetViews")]
57pub struct XlsxChartsheetViews {
58 #[serde(rename = "sheetView", default)]
59 pub sheet_view: Vec<XlsxChartsheetView>,
60 #[serde(rename = "extLst", default)]
61 pub ext_lst: Vec<XlsxExtLst>,
62}
63
64#[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize)]
66#[serde(rename = "sheetView")]
67pub struct XlsxChartsheetView {
68 #[serde(rename = "@tabSelected", default)]
69 pub tab_selected: Option<bool>,
70 #[serde(rename = "@zoomScale", default)]
71 pub zoom_scale: Option<u32>,
72 #[serde(rename = "@workbookViewId")]
73 pub workbook_view_id: u32,
74 #[serde(rename = "@zoomToFit", default)]
75 pub zoom_to_fit: Option<bool>,
76 #[serde(rename = "extLst", default)]
77 pub ext_lst: Vec<XlsxExtLst>,
78}
79
80#[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize)]
83#[serde(rename = "sheetProtection")]
84pub struct XlsxChartsheetProtection {
85 #[serde(rename = "@algorithmName", default)]
86 pub algorithm_name: Option<String>,
87 #[serde(rename = "@hashValue", default)]
88 pub hash_value: Option<String>,
89 #[serde(rename = "@saltValue", default)]
90 pub salt_value: Option<String>,
91 #[serde(rename = "@spinCount", default)]
92 pub spin_count: Option<u32>,
93 #[serde(rename = "@content", default)]
94 pub content: Option<bool>,
95 #[serde(rename = "@objects", default)]
96 pub objects: Option<bool>,
97}
98
99#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
101#[serde(rename = "customSheetViews")]
102pub struct XlsxCustomChartsheetViews {
103 #[serde(rename = "customSheetView", default)]
104 pub custom_sheet_view: Vec<XlsxCustomChartsheetView>,
105}
106
107#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
109#[serde(rename = "customSheetView")]
110pub struct XlsxCustomChartsheetView {
111 #[serde(rename = "@guid")]
112 pub guid: String,
113 #[serde(rename = "@scale", default)]
114 pub scale: Option<u32>,
115 #[serde(rename = "@state", default)]
116 pub state: Option<String>,
117 #[serde(rename = "@zoomToFit", default)]
118 pub zoom_to_fit: Option<bool>,
119 #[serde(rename = "pageMargins", default)]
120 pub page_margins: Vec<XlsxPageMargins>,
121 #[serde(rename = "pageSetup", default)]
122 pub page_setup: Vec<XlsxPageSetUp>,
123 #[serde(rename = "headerFooter", default)]
124 pub header_footer: Vec<XlsxHeaderFooter>,
125}
126
127#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
129#[serde(rename = "pageMargins")]
130pub struct XlsxPageMargins {
131 #[serde(rename = "@left")]
132 pub left: f64,
133 #[serde(rename = "@right")]
134 pub right: f64,
135 #[serde(rename = "@top")]
136 pub top: f64,
137 #[serde(rename = "@bottom")]
138 pub bottom: f64,
139 #[serde(rename = "@header")]
140 pub header: f64,
141 #[serde(rename = "@footer")]
142 pub footer: f64,
143}
144
145#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
147#[serde(rename = "pageSetup")]
148pub struct XlsxPageSetUp {
149 #[serde(rename = "@blackAndWhite", default)]
150 pub black_and_white: Option<bool>,
151 #[serde(rename = "@cellComments", default)]
152 pub cell_comments: Option<String>,
153 #[serde(rename = "@copies", default)]
154 pub copies: Option<i64>,
155 #[serde(rename = "@draft", default)]
156 pub draft: Option<bool>,
157 #[serde(rename = "@errors", default)]
158 pub errors: Option<String>,
159 #[serde(rename = "@firstPageNumber", default)]
160 pub first_page_number: Option<String>,
161 #[serde(rename = "@fitToHeight", default)]
162 pub fit_to_height: Option<i64>,
163 #[serde(rename = "@fitToWidth", default)]
164 pub fit_to_width: Option<i64>,
165 #[serde(rename = "@horizontalDpi", default)]
166 pub horizontal_dpi: Option<String>,
167 #[serde(rename = "@r:id", default)]
168 pub r_id: Option<String>,
169 #[serde(rename = "@orientation", default)]
170 pub orientation: Option<String>,
171 #[serde(rename = "@pageOrder", default)]
172 pub page_order: Option<String>,
173 #[serde(rename = "@paperHeight", default)]
174 pub paper_height: Option<String>,
175 #[serde(rename = "@paperSize", default)]
176 pub paper_size: Option<i64>,
177 #[serde(rename = "@paperWidth", default)]
178 pub paper_width: Option<String>,
179 #[serde(rename = "@scale", default)]
180 pub scale: Option<i64>,
181 #[serde(rename = "@useFirstPageNumber", default)]
182 pub use_first_page_number: Option<bool>,
183 #[serde(rename = "@usePrinterDefaults", default)]
184 pub use_printer_defaults: Option<bool>,
185 #[serde(rename = "@verticalDpi", default)]
186 pub vertical_dpi: Option<String>,
187}
188
189#[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize)]
192#[serde(rename = "headerFooter")]
193pub struct XlsxHeaderFooter {
194 #[serde(rename = "@differentOddEven", default)]
195 pub different_odd_even: Option<bool>,
196 #[serde(rename = "@differentFirst", default)]
197 pub different_first: Option<bool>,
198 #[serde(rename = "@scaleWithDoc", default)]
199 pub scale_with_doc: Option<bool>,
200 #[serde(rename = "@alignWithMargins", default)]
201 pub align_with_margins: Option<bool>,
202 #[serde(rename = "oddHeader", default)]
203 pub odd_header: Option<String>,
204 #[serde(rename = "oddFooter", default)]
205 pub odd_footer: Option<String>,
206 #[serde(rename = "evenHeader", default)]
207 pub even_header: Option<String>,
208 #[serde(rename = "evenFooter", default)]
209 pub even_footer: Option<String>,
210 #[serde(rename = "firstHeader", default)]
211 pub first_header: Option<String>,
212 #[serde(rename = "firstFooter", default)]
213 pub first_footer: Option<String>,
214}
215
216#[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize)]
218#[serde(rename = "drawing")]
219pub struct XlsxDrawing {
220 #[serde(rename = "@r:id", default)]
221 pub r_id: Option<String>,
222}
223
224#[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize)]
226#[serde(rename = "drawingHF")]
227pub struct XlsxDrawingHF {
228 #[serde(flatten, default)]
229 pub inner: XlsxInnerXml,
230}
231
232#[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize)]
234#[serde(rename = "picture")]
235pub struct XlsxPicture {
236 #[serde(rename = "@r:id", default)]
237 pub r_id: Option<String>,
238}