use rust_xlsxwriter::{
ConditionalFormatText, ConditionalFormatTextRule, Format, Workbook, XlsxError,
};
fn main() -> Result<(), XlsxError> {
let mut workbook = Workbook::new();
let worksheet = workbook.add_worksheet();
let data = [
"apocrustic",
"burstwort",
"cloudburst",
"crustification",
"distrustfulness",
"laurustine",
"outburst",
"rusticism",
"thunderburst",
"trustee",
"trustworthiness",
"unburstableness",
"unfrustratable",
];
worksheet.write_column(0, 0, data)?;
worksheet.write_column(0, 2, data)?;
worksheet.set_column_width(0, 20)?;
worksheet.set_column_width(2, 20)?;
let format1 = Format::new()
.set_font_color("006100")
.set_background_color("C6EFCE");
let format2 = Format::new()
.set_font_color("9C0006")
.set_background_color("FFC7CE");
let conditional_format = ConditionalFormatText::new()
.set_rule(ConditionalFormatTextRule::Contains("rust".to_string()))
.set_format(&format1);
worksheet.add_conditional_format(0, 0, 12, 0, &conditional_format)?;
let conditional_format = ConditionalFormatText::new()
.set_rule(ConditionalFormatTextRule::DoesNotContain(
"rust".to_string(),
))
.set_format(&format2);
worksheet.add_conditional_format(0, 0, 12, 0, &conditional_format)?;
let conditional_format = ConditionalFormatText::new()
.set_rule(ConditionalFormatTextRule::BeginsWith("t".to_string()))
.set_format(&format1);
worksheet.add_conditional_format(0, 2, 12, 2, &conditional_format)?;
let conditional_format = ConditionalFormatText::new()
.set_rule(ConditionalFormatTextRule::EndsWith("t".to_string()))
.set_format(&format2);
worksheet.add_conditional_format(0, 2, 12, 2, &conditional_format)?;
workbook.save("conditional_format.xlsx")?;
Ok(())
}