1use serde::{Deserialize, Serialize};
6
7use super::common::{XlsxExtLst, XlsxInnerXml};
8
9#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
12#[serde(rename = "slicers", rename_all = "camelCase")]
13pub struct XlsxSlicers {
14 #[serde(rename = "@xmlns:mc", default)]
15 pub xmlns_mc: Option<String>,
16 #[serde(rename = "@xmlns:x", default)]
17 pub xmlns_x: Option<String>,
18 #[serde(rename = "@xmlns:xr10", default)]
19 pub xmlns_xr10: Option<String>,
20 #[serde(default)]
21 pub slicer: Vec<XlsxSlicer>,
22}
23
24#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
26#[serde(rename_all = "camelCase")]
27pub struct XlsxSlicer {
28 #[serde(rename = "@name", default)]
29 pub name: String,
30 #[serde(rename = "@xr10:uid", default)]
31 pub xr10_uid: Option<String>,
32 #[serde(rename = "@cache", default)]
33 pub cache: String,
34 #[serde(rename = "@caption", default)]
35 pub caption: Option<String>,
36 #[serde(rename = "@startItem", default)]
37 pub start_item: Option<i64>,
38 #[serde(rename = "@columnCount", default)]
39 pub column_count: Option<i64>,
40 #[serde(rename = "@showCaption", default)]
41 pub show_caption: Option<bool>,
42 #[serde(rename = "@level", default)]
43 pub level: Option<i64>,
44 #[serde(rename = "@style", default)]
45 pub style: Option<String>,
46 #[serde(rename = "@lockedPosition", default)]
47 pub locked_position: Option<bool>,
48 #[serde(rename = "@rowHeight", default)]
49 pub row_height: i64,
50}
51
52#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
55#[serde(rename = "slicerCacheDefinition", rename_all = "camelCase")]
56pub struct XlsxSlicerCacheDefinition {
57 #[serde(rename = "@xmlns:mc", default)]
58 pub xmlns_mc: Option<String>,
59 #[serde(rename = "@xmlns:x", default)]
60 pub xmlns_x: Option<String>,
61 #[serde(rename = "@xmlns:x15", default)]
62 pub xmlns_x15: Option<String>,
63 #[serde(rename = "@xmlns:xr10", default)]
64 pub xmlns_xr10: Option<String>,
65 #[serde(rename = "@name", default)]
66 pub name: String,
67 #[serde(rename = "@xr10:uid", default)]
68 pub xr10_uid: Option<String>,
69 #[serde(rename = "@sourceName", default)]
70 pub source_name: String,
71 #[serde(default)]
72 pub pivot_tables: Option<XlsxSlicerCachePivotTables>,
73 #[serde(default)]
74 pub data: Option<XlsxSlicerCacheData>,
75 #[serde(default)]
76 pub ext_lst: Option<XlsxExtLst>,
77}
78
79#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
82#[serde(rename = "pivotTables", rename_all = "camelCase")]
83pub struct XlsxSlicerCachePivotTables {
84 #[serde(default)]
85 pub pivot_table: Vec<XlsxSlicerCachePivotTable>,
86}
87
88#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
90#[serde(rename_all = "camelCase")]
91pub struct XlsxSlicerCachePivotTable {
92 #[serde(rename = "@tabId", default)]
93 pub tab_id: i64,
94 #[serde(rename = "@name", default)]
95 pub name: String,
96}
97
98#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
100#[serde(rename_all = "camelCase")]
101pub struct XlsxSlicerCacheData {
102 #[serde(default)]
103 pub olap: Option<XlsxInnerXml>,
104 #[serde(default)]
105 pub tabular: Option<XlsxTabularSlicerCache>,
106}
107
108#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
112#[serde(rename_all = "camelCase")]
113pub struct XlsxTabularSlicerCache {
114 #[serde(rename = "@pivotCacheId", default)]
115 pub pivot_cache_id: i64,
116 #[serde(rename = "@sortOrder", default)]
117 pub sort_order: Option<String>,
118 #[serde(rename = "@customListSort", default)]
119 pub custom_list_sort: Option<bool>,
120 #[serde(rename = "@showMissing", default)]
121 pub show_missing: Option<bool>,
122 #[serde(rename = "@crossFilter", default)]
123 pub cross_filter: Option<String>,
124 #[serde(default)]
125 pub items: Option<XlsxTabularSlicerCacheItems>,
126 #[serde(default)]
127 pub ext_lst: Option<XlsxExtLst>,
128}
129
130#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
133#[serde(rename = "items", rename_all = "camelCase")]
134pub struct XlsxTabularSlicerCacheItems {
135 #[serde(rename = "@count", default)]
136 pub count: Option<i64>,
137 #[serde(default)]
138 pub i: Vec<XlsxTabularSlicerCacheItem>,
139}
140
141#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
144#[serde(rename = "i", rename_all = "camelCase")]
145pub struct XlsxTabularSlicerCacheItem {
146 #[serde(rename = "@x", default)]
147 pub x: i64,
148 #[serde(rename = "@s", default)]
149 pub s: Option<bool>,
150 #[serde(rename = "@nd", default)]
151 pub nd: Option<bool>,
152}
153
154#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
156#[serde(rename = "x15:tableSlicerCache", rename_all = "camelCase")]
157pub struct XlsxTableSlicerCache {
158 #[serde(rename = "@tableId", default)]
159 pub table_id: i64,
160 #[serde(rename = "@column", default)]
161 pub column: i64,
162 #[serde(rename = "@sortOrder", default)]
163 pub sort_order: Option<String>,
164 #[serde(rename = "@customListSort", default)]
165 pub custom_list_sort: Option<bool>,
166 #[serde(rename = "@crossFilter", default)]
167 pub cross_filter: Option<String>,
168 #[serde(default)]
169 pub ext_lst: Option<XlsxExtLst>,
170}
171
172#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
174#[serde(rename = "x14:slicerList", rename_all = "camelCase")]
175pub struct XlsxX14SlicerList {
176 #[serde(default)]
177 pub slicer: Vec<XlsxX14Slicer>,
178}
179
180#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
182#[serde(rename = "x14:slicer")]
183pub struct XlsxX14Slicer {
184 #[serde(rename = "@r:id", default)]
185 pub rid: String,
186}
187
188#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
190#[serde(rename = "x14:slicerCaches")]
191pub struct XlsxX14SlicerCaches {
192 #[serde(rename = "@xmlns:x14", default)]
193 pub xmlns: String,
194 #[serde(rename = "$value", default)]
195 pub content: String,
196}
197
198#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
200#[serde(rename = "x14:slicerCache")]
201pub struct XlsxX14SlicerCache {
202 #[serde(rename = "@r:id", default)]
203 pub rid: String,
204}
205
206#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
208#[serde(rename = "x15:slicerCaches")]
209pub struct XlsxX15SlicerCaches {
210 #[serde(rename = "@xmlns:x14", default)]
211 pub xmlns: String,
212 #[serde(rename = "$value", default)]
213 pub content: String,
214}
215
216#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
219#[serde(rename = "tableSlicerCache", rename_all = "camelCase")]
220pub struct DecodeTableSlicerCache {
221 #[serde(rename = "@tableId", default)]
222 pub table_id: i64,
223 #[serde(rename = "@column", default)]
224 pub column: i64,
225 #[serde(rename = "@sortOrder", default)]
226 pub sort_order: String,
227}
228
229#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
232#[serde(rename = "slicerList", rename_all = "camelCase")]
233pub struct DecodeSlicerList {
234 #[serde(default)]
235 pub slicer: Vec<DecodeSlicer>,
236}
237
238#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
240#[serde(rename = "slicer")]
241pub struct DecodeSlicer {
242 #[serde(rename = "@id", default)]
243 pub rid: String,
244}
245
246#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
249#[serde(rename = "slicerCaches")]
250pub struct DecodeSlicerCaches {
251 #[serde(rename = "$value", default)]
252 pub content: String,
253}
254
255#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
261#[serde(rename = "timelines", rename_all = "camelCase")]
262pub struct XlsxTimelines {
263 #[serde(rename = "@xmlns:mc", default)]
264 pub xmlns_mc: Option<String>,
265 #[serde(rename = "@xmlns:x", default)]
266 pub xmlns_x: Option<String>,
267 #[serde(rename = "@xmlns:xr10", default)]
268 pub xmlns_xr10: Option<String>,
269 #[serde(default)]
270 pub timeline: Vec<XlsxTimeline>,
271}
272
273#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
275#[serde(rename_all = "camelCase")]
276pub struct XlsxTimeline {
277 #[serde(rename = "@name", default)]
278 pub name: String,
279 #[serde(rename = "@xr10:uid", default)]
280 pub xr10_uid: Option<String>,
281 #[serde(rename = "@cache", default)]
282 pub cache: String,
283 #[serde(rename = "@caption", default)]
284 pub caption: Option<String>,
285 #[serde(rename = "@showHeader", default)]
286 pub show_header: Option<bool>,
287 #[serde(rename = "@showSelectionLabel", default)]
288 pub show_selection_label: Option<bool>,
289 #[serde(rename = "@showTimeLevel", default)]
290 pub show_time_level: Option<bool>,
291 #[serde(rename = "@showHorizontalScrollbar", default)]
292 pub show_horizontal_scrollbar: Option<bool>,
293 #[serde(rename = "@level", default)]
294 pub level: i64,
295 #[serde(rename = "@selectionLevel", default)]
296 pub selection_level: i64,
297 #[serde(rename = "@scrollPosition", default)]
298 pub scroll_position: Option<String>,
299 #[serde(rename = "@style", default)]
300 pub style: Option<String>,
301}