-
-
Notifications
You must be signed in to change notification settings - Fork 28
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
WIP: Conditional formatting support is in progress #58
Comments
Here is an initial example: //! Example of adding a cell type conditional formatting to a worksheet. Cells
//! with values >= 50 are in light red. Values < 50 are in light green.
use rust_xlsxwriter::{
ConditionalFormatCell, ConditionalFormatCellCriteria, Format, Workbook, XlsxError,
};
fn main() -> Result<(), XlsxError> {
// Create a new Excel file object.
let mut workbook = Workbook::new();
let worksheet = workbook.add_worksheet();
// Add some sample data.
let data = [
[90, 80, 50, 10, 20, 90, 40, 90, 30, 40],
[20, 10, 90, 100, 30, 60, 70, 60, 50, 90],
[10, 50, 60, 50, 20, 50, 80, 30, 40, 60],
[10, 90, 20, 40, 10, 40, 50, 70, 90, 50],
[70, 100, 10, 90, 10, 10, 20, 100, 100, 40],
[20, 60, 10, 100, 30, 10, 20, 60, 100, 10],
[10, 60, 10, 80, 100, 80, 30, 30, 70, 40],
[30, 90, 60, 10, 10, 100, 40, 40, 30, 40],
[80, 90, 10, 20, 20, 50, 80, 20, 60, 90],
[60, 80, 30, 30, 10, 50, 80, 60, 50, 30],
];
worksheet.write_row_matrix(2, 1, data)?;
// Set the column widths for clarity.
for col_num in 1..=10u16 {
worksheet.set_column_width(col_num, 6)?;
}
// Add a format. Light red fill with dark red text.
let format1 = Format::new()
.set_font_color("9C0006")
.set_background_color("FFC7CE");
// Add a format. Green fill with dark green text.
let format2 = Format::new()
.set_font_color("006100")
.set_background_color("C6EFCE");
// Write a conditional format over a range.
let conditional_format = ConditionalFormatCell::new()
.set_criteria(ConditionalFormatCellCriteria::GreaterThanOrEqualTo)
.set_value(50)
.set_format(&format1);
worksheet.add_conditional_format(2, 1, 11, 10, &conditional_format)?;
// Write another conditional format over the same range.
let conditional_format = ConditionalFormatCell::new()
.set_criteria(ConditionalFormatCellCriteria::LessThan)
.set_value(50)
.set_format(&format2);
worksheet.add_conditional_format(2, 1, 11, 10, &conditional_format)?;
// Save the file.
workbook.save("conditional_format.xlsx")?;
Ok(())
} Output: |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Work is in progress to implement/port Conditional Formatting.
Add a +1 if you are interested in this feature and I will post updates as it progresses.
The text was updated successfully, but these errors were encountered: