mirror of
https://github.com/storytold/gridcraft.git
synced 2026-11-08 19:41:45 +00:00
The reader took only activeTab from <workbookView> and the writer wrote that alone back, so a workbook Excel saved with the sheet tabs and both scroll bars hidden (and a non-default tab split) opened with all three shown and lost the settings on save. Workbook gains a view field (WorkbookView: show_sheet_tabs, show_horizontal_scroll, show_vertical_scroll, tab_ratio; the format defaults are shown/shown/shown/600). The reader fills it from the <workbookView> attributes; the writer emits each attribute only when it differs from the default, so an ordinary workbook file is unchanged. Regression test: workbook_view_settings_survive_a_round_trip reads a package carrying the hidden settings, checks the model, and checks the written workbook.xml keeps all four attributes (and that a default workbook still writes the bare element). Scope: this is the data-loss half of #3057. The app does not act on the settings yet and File > Options has no controls for them; that is the other half the ticket was split into.
36 lines
1.5 KiB
Rust
36 lines
1.5 KiB
Rust
//! The GridCraft document model: workbooks, sheets, a copy-on-write cell store, interned
|
|
//! styles, defined names, tables, conditional formats, validation, comments, charts and print
|
|
//! settings. Pure data; calculation lives in `gridcraft-calc`.
|
|
#![deny(clippy::unwrap_used, clippy::expect_used, clippy::panic, clippy::unimplemented, clippy::todo, clippy::unreachable)]
|
|
#![forbid(unsafe_code)]
|
|
|
|
mod b64;
|
|
pub mod cell;
|
|
mod cellmap;
|
|
pub mod features;
|
|
pub mod macros;
|
|
pub mod password;
|
|
pub mod preserved;
|
|
pub mod sheet;
|
|
pub mod store;
|
|
pub mod style;
|
|
pub mod workbook;
|
|
|
|
pub use cell::{Cell, CellPicture, Formula};
|
|
pub use features::*;
|
|
pub use macros::*;
|
|
pub use password::PasswordHash;
|
|
pub use preserved::{Preserved, PreservedPart, PreservedRel, PreservedSheet, PreservedXml};
|
|
pub use sheet::{DEFAULT_COL_WIDTH, DEFAULT_ROW_HEIGHT, LineIndex, Sheet, SheetViewMode, Visibility, points_to_chars};
|
|
pub use store::CellStore;
|
|
pub use style::{
|
|
Alignment, BorderLine, BorderStyle, Borders, Color, Fill, Font, HAlign, NumFmt, PatternType, Style, StyleId, StyleTable, Theme, Underline,
|
|
VAlign, VertAlign,
|
|
};
|
|
pub use workbook::{CalcMode, CalcSettings, DefinedName, DocProps, PhoneticProps, PhoneticRun, PhoneticString, ShowObjects, Workbook, WorkbookView};
|
|
|
|
/// Font used for new workbooks. Only a name: renderers substitute an available open font
|
|
/// (e.g. the metric-compatible Carlito) when it isn't installed.
|
|
pub const DEFAULT_FONT: &str = "Calibri";
|
|
pub const DEFAULT_FONT_SIZE: f32 = 11.0;
|