pub struct Message {
pub title: Option<String>,
pub text: String,
}Expand description
An input or error message attached to a DataValidationRule (promptTitle/prompt or
errorTitle/error on CT_DataValidation).
Fields§
§title: Option<String>The message’s title (shown in bold in Excel’s popup/tooltip).
text: StringThe message’s body text.
Implementations§
Source§impl Message
impl Message
Sourcepub fn new(text: impl Into<String>) -> Message
pub fn new(text: impl Into<String>) -> Message
Creates a message with just body text, no title.
Examples found in repository?
examples/xlsx_conditional_formatting_and_validation.rs (line 86)
17fn main() -> office_toolkit::Result<()> {
18 let path = output_path("xlsx_conditional_formatting_and_validation.xlsx");
19
20 let cell_is_sheet = Sheet::new("Cell-is rule")
21 .with_row(Row::new().with_number(45.0))
22 .with_row(Row::new().with_number(72.0))
23 .with_row(Row::new().with_number(91.0))
24 .with_conditional_formatting_rule(ConditionalFormattingRule::cell_is(
25 "A1:A3",
26 ComparisonOperator::GreaterThan,
27 "70",
28 CellFormat::new()
29 .with_fill_color("FFC6EFCE")
30 .with_font_color("FF006100"),
31 ));
32
33 let scales_and_bars_sheet = Sheet::new("Color scale and data bar")
34 .with_row(Row::new().with_number(10.0))
35 .with_row(Row::new().with_number(50.0))
36 .with_row(Row::new().with_number(90.0))
37 .with_conditional_formatting_rule(ConditionalFormattingRule::color_scale(
38 "A1:A3",
39 vec![
40 ColorScaleStop::new(CfvoPosition::Min, "FFF8696B"),
41 ColorScaleStop::new(CfvoPosition::Max, "FF63BE7B"),
42 ],
43 ))
44 .with_row(Row::new().with_number(10.0))
45 .with_row(Row::new().with_number(50.0))
46 .with_row(Row::new().with_number(90.0))
47 .with_conditional_formatting_rule(ConditionalFormattingRule::data_bar(
48 "B1:B3",
49 CfvoPosition::Min,
50 CfvoPosition::Max,
51 "FF638EC6",
52 ));
53
54 let icon_set_and_ranking_sheet = Sheet::new("Icon set, top-10, duplicates")
55 .with_row(Row::new().with_number(1.0))
56 .with_row(Row::new().with_number(2.0))
57 .with_row(Row::new().with_number(3.0))
58 .with_conditional_formatting_rule(ConditionalFormattingRule::icon_set(
59 "A1:A3",
60 IconSetType::ThreeTrafficLights,
61 ))
62 .with_row(Row::new().with_number(4.0))
63 .with_row(Row::new().with_number(5.0))
64 .with_row(Row::new().with_number(6.0))
65 .with_conditional_formatting_rule(ConditionalFormattingRule::top10(
66 "B1:B3",
67 1,
68 false,
69 CellFormat::new().with_bold(true),
70 ))
71 .with_row(Row::new().with_text("A"))
72 .with_row(Row::new().with_text("A"))
73 .with_row(Row::new().with_text("B"))
74 .with_conditional_formatting_rule(ConditionalFormattingRule::duplicate_values(
75 "C1:C3",
76 CellFormat::new().with_fill_color("FFFFC7CE"),
77 ));
78
79 let data_validation_sheet = Sheet::new("Data validation")
80 .with_row(Row::new().with_text("Pick one"))
81 .with_data_validation_rule(DataValidationRule::list("A1:A1", "\"Small,Medium,Large\""))
82 .with_row(Row::new().with_number(0.0))
83 .with_data_validation_rule(
84 DataValidationRule::whole_number("B1:B1", ComparisonOperator::LessThanOrEqual, "100")
85 .with_input_message(
86 Message::new("Enter a whole number from 0 to 100.").with_title("Valid range"),
87 )
88 .with_error_message(
89 Message::new("That value is out of range.").with_title("Invalid entry"),
90 ),
91 );
92
93 let workbook = Workbook::new()
94 .with_sheet(cell_is_sheet)
95 .with_sheet(scales_and_bars_sheet)
96 .with_sheet(icon_set_and_ranking_sheet)
97 .with_sheet(data_validation_sheet);
98
99 workbook.save_to_file(&path)?;
100 println!("Wrote {}", path.display());
101 Ok(())
102}Sourcepub fn with_title(self, title: impl Into<String>) -> Message
pub fn with_title(self, title: impl Into<String>) -> Message
Sets a title and returns the message for chaining.
Examples found in repository?
examples/xlsx_conditional_formatting_and_validation.rs (line 86)
17fn main() -> office_toolkit::Result<()> {
18 let path = output_path("xlsx_conditional_formatting_and_validation.xlsx");
19
20 let cell_is_sheet = Sheet::new("Cell-is rule")
21 .with_row(Row::new().with_number(45.0))
22 .with_row(Row::new().with_number(72.0))
23 .with_row(Row::new().with_number(91.0))
24 .with_conditional_formatting_rule(ConditionalFormattingRule::cell_is(
25 "A1:A3",
26 ComparisonOperator::GreaterThan,
27 "70",
28 CellFormat::new()
29 .with_fill_color("FFC6EFCE")
30 .with_font_color("FF006100"),
31 ));
32
33 let scales_and_bars_sheet = Sheet::new("Color scale and data bar")
34 .with_row(Row::new().with_number(10.0))
35 .with_row(Row::new().with_number(50.0))
36 .with_row(Row::new().with_number(90.0))
37 .with_conditional_formatting_rule(ConditionalFormattingRule::color_scale(
38 "A1:A3",
39 vec![
40 ColorScaleStop::new(CfvoPosition::Min, "FFF8696B"),
41 ColorScaleStop::new(CfvoPosition::Max, "FF63BE7B"),
42 ],
43 ))
44 .with_row(Row::new().with_number(10.0))
45 .with_row(Row::new().with_number(50.0))
46 .with_row(Row::new().with_number(90.0))
47 .with_conditional_formatting_rule(ConditionalFormattingRule::data_bar(
48 "B1:B3",
49 CfvoPosition::Min,
50 CfvoPosition::Max,
51 "FF638EC6",
52 ));
53
54 let icon_set_and_ranking_sheet = Sheet::new("Icon set, top-10, duplicates")
55 .with_row(Row::new().with_number(1.0))
56 .with_row(Row::new().with_number(2.0))
57 .with_row(Row::new().with_number(3.0))
58 .with_conditional_formatting_rule(ConditionalFormattingRule::icon_set(
59 "A1:A3",
60 IconSetType::ThreeTrafficLights,
61 ))
62 .with_row(Row::new().with_number(4.0))
63 .with_row(Row::new().with_number(5.0))
64 .with_row(Row::new().with_number(6.0))
65 .with_conditional_formatting_rule(ConditionalFormattingRule::top10(
66 "B1:B3",
67 1,
68 false,
69 CellFormat::new().with_bold(true),
70 ))
71 .with_row(Row::new().with_text("A"))
72 .with_row(Row::new().with_text("A"))
73 .with_row(Row::new().with_text("B"))
74 .with_conditional_formatting_rule(ConditionalFormattingRule::duplicate_values(
75 "C1:C3",
76 CellFormat::new().with_fill_color("FFFFC7CE"),
77 ));
78
79 let data_validation_sheet = Sheet::new("Data validation")
80 .with_row(Row::new().with_text("Pick one"))
81 .with_data_validation_rule(DataValidationRule::list("A1:A1", "\"Small,Medium,Large\""))
82 .with_row(Row::new().with_number(0.0))
83 .with_data_validation_rule(
84 DataValidationRule::whole_number("B1:B1", ComparisonOperator::LessThanOrEqual, "100")
85 .with_input_message(
86 Message::new("Enter a whole number from 0 to 100.").with_title("Valid range"),
87 )
88 .with_error_message(
89 Message::new("That value is out of range.").with_title("Invalid entry"),
90 ),
91 );
92
93 let workbook = Workbook::new()
94 .with_sheet(cell_is_sheet)
95 .with_sheet(scales_and_bars_sheet)
96 .with_sheet(icon_set_and_ranking_sheet)
97 .with_sheet(data_validation_sheet);
98
99 workbook.save_to_file(&path)?;
100 println!("Wrote {}", path.display());
101 Ok(())
102}Trait Implementations§
impl StructuralPartialEq for Message
Auto Trait Implementations§
impl Freeze for Message
impl RefUnwindSafe for Message
impl Send for Message
impl Sync for Message
impl Unpin for Message
impl UnsafeUnpin for Message
impl UnwindSafe for Message
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more