WorkSheetCol

Trait WorkSheetCol 

Source
pub trait WorkSheetCol: _Col {
    // Provided methods
    fn get_columns<R: LocationRange>(
        &self,
        col_range: R,
    ) -> WorkSheetResult<HashMap<String, Column>> { ... }
    fn get_columns_with_format<R: LocationRange>(
        &self,
        col_range: R,
    ) -> WorkSheetResult<HashMap<String, (Column, Option<Format>)>> { ... }
    fn get_columns_width<R: LocationRange>(
        &self,
        col_range: R,
    ) -> WorkSheetResult<HashMap<String, Option<f64>>> { ... }
    fn set_columns<R: LocationRange>(
        &mut self,
        col_range: R,
        column: &Column,
    ) -> WorkSheetResult<()> { ... }
    fn set_columns_with_format<R: LocationRange>(
        &mut self,
        col_range: R,
        column: &Column,
        format: &Format,
    ) -> WorkSheetResult<()> { ... }
    fn set_columns_width<R: LocationRange>(
        &mut self,
        col_range: R,
        width: f64,
    ) -> WorkSheetResult<()> { ... }
    fn set_columns_width_pixels<R: LocationRange>(
        &mut self,
        col_range: R,
        width: f64,
    ) -> WorkSheetResult<()> { ... }
    fn set_columns_width_with_format<R: LocationRange>(
        &mut self,
        col_range: R,
        width: f64,
        format: &Format,
    ) -> WorkSheetResult<()> { ... }
    fn set_columns_width_pixels_with_format<R: LocationRange>(
        &mut self,
        col_range: R,
        width: f64,
        format: &Format,
    ) -> WorkSheetResult<()> { ... }
    fn hide_columns<R: LocationRange>(
        &mut self,
        col_range: R,
    ) -> WorkSheetResult<()> { ... }
    fn set_columns_level<R: LocationRange>(
        &mut self,
        col_range: R,
        level: u8,
    ) -> WorkSheetResult<()> { ... }
    fn collapse_columns<R: LocationRange>(
        &mut self,
        col_range: R,
    ) -> WorkSheetResult<()> { ... }
}
Expand description

WorkSheetCol is a trait for WorkSheets that allowing them working with Columns.

Not only does it support reading and updating cols directly, but it also provides a set of suggested methods for reading and updating cols swiftly.

Provided Methods§

Source

fn get_columns<R: LocationRange>( &self, col_range: R, ) -> WorkSheetResult<HashMap<String, Column>>

Get the Columns based on the col range, note that the col range starts with 1.

§Example
use edit_xlsx::{Workbook, WorkSheetCol};
let workbook = Workbook::from_path("./examples/xlsx/accounting.xlsx").unwrap();
let worksheet = workbook.get_worksheet_by_name("worksheet").unwrap();
let columns = worksheet.get_columns("B:B").unwrap();
let first_col = columns.get("B:B").unwrap();
// Convert to u32 to reduce error
assert_eq!(first_col.width.unwrap() as u32, 26);
Source

fn get_columns_with_format<R: LocationRange>( &self, col_range: R, ) -> WorkSheetResult<HashMap<String, (Column, Option<Format>)>>

Get the Columns and Formats of cols based on the col range, note that the col range starts with 1.

§Example
use edit_xlsx::{FormatColor, Workbook, WorkSheetCol};
let workbook = Workbook::from_path("./examples/xlsx/accounting.xlsx").unwrap();
let worksheet = workbook.get_worksheet_by_name("worksheet").unwrap();
let columns_with_format = worksheet.get_columns_with_format("M:N").unwrap();
let (_, format) = columns_with_format.get("M:N").unwrap();
let format_clone = format.clone();
assert_eq!(format_clone.unwrap().get_background().fg_color, FormatColor::RGB(255, 0, 0));
Examples found in repository?
examples/xlsx2adoc.rs (line 75)
67fn find_col_width(sheet: &WorkSheet) -> Result<Vec<f64>, Error> {
68    let mut widths = Vec::<f64>::new();
69    let default_col_width = sheet.get_default_column().unwrap_or(1.0);
70
71    for _ in 0..sheet.max_column() {
72        widths.push(default_col_width);
73    }
74
75    let formatted_col_result = sheet.get_columns_with_format((1, 1, 1, 16384));
76    let formatted_col = match formatted_col_result {
77        Ok(f) => f,
78        Err(e) => return Err(error_text(&format!("{:?}", e))),
79    };
80
81    for w in formatted_col.iter() {
82        let column_name = w.0;
83        let a = w.1;
84        let columns_specs = a.0;
85        let column_width = columns_specs.width;
86        match column_width {
87            Some(width) => {
88                let col_range = decode_col_range(column_name, widths.len());
89                for c in col_range {
90                    widths[c] = width;
91                }
92            }
93            None => {},
94        };
95}
96    Ok(widths)
97}
More examples
Hide additional examples
examples/read_and_copy.rs (line 16)
7fn main() -> WorkbookResult<()> {
8    // Read an existed workbook
9    let reading_book = Workbook::from_path("./tests/xlsx/accounting.xlsx")?;
10    let reading_sheet = reading_book.get_worksheet_by_name("worksheet")?;
11    // Create a new workbook to write
12    let mut writing_book = Workbook::new();
13    let writing_sheet = writing_book.get_worksheet_mut(1)?;
14
15    // Synchronous column width and format
16    let columns_map = reading_sheet.get_columns_with_format("A:XFD")?;
17    match reading_sheet.get_default_column() {
18        None => writing_sheet.set_default_column_adaptive(),
19        Some(width) => writing_sheet.set_default_column(width),
20    }
21    columns_map.iter().for_each(|(col_range, (column, format))| {
22        if let Some(format) = format {
23            // if col format exists, write it to writing_sheet
24            writing_sheet.set_columns_with_format(col_range, column, format).unwrap()
25        } else {
26            writing_sheet.set_columns(col_range, column).unwrap()
27        }
28    });
29
30    // Synchronous row height and format
31    writing_sheet.set_default_row(reading_sheet.get_default_row());
32    for row_number in 1..=reading_sheet.max_row() {
33        let (row, format) = reading_sheet.get_row_with_format(row_number)?;
34        if let Some(format) = format {
35            // if col format exists, write it to writing_sheet
36            writing_sheet.set_row_with_format(row_number, &row, &format)?;
37        } else {
38            writing_sheet.set_row(row_number, &row)?;
39        }
40    }
41
42    // Read then write text and format
43    for row in 1..=reading_sheet.max_row() {
44        for col in 1..=reading_sheet.max_column() {
45            if let Ok(cell) = reading_sheet.read_cell((row, col)) {
46                writing_sheet.write_cell((row, col), &cell)?;
47            }
48        }
49    }
50
51    writing_book.save_as("./examples/read_and_copy.xlsx")?;
52    Ok(())
53}
Source

fn get_columns_width<R: LocationRange>( &self, col_range: R, ) -> WorkSheetResult<HashMap<String, Option<f64>>>

Get the custom width of cols based on the col range, note that the col range starts with 1.

§Example
use edit_xlsx::{Workbook, WorkSheetCol};
let workbook = Workbook::from_path("./examples/xlsx/accounting.xlsx").unwrap();
let worksheet = workbook.get_worksheet_by_name("worksheet").unwrap();
let widths = worksheet.get_columns_width("A:C").unwrap();
widths.iter().for_each(|(k, v)|{
  //Convert to u32 to reduce error
  let width = v.unwrap() as u32;
  match k.as_str() {
    "A:A"|"C:C" => assert_eq!(width, 12),
    "B:B" => assert_eq!(width, 26),
    _ => {}
  }
});
Source

fn set_columns<R: LocationRange>( &mut self, col_range: R, column: &Column, ) -> WorkSheetResult<()>

update columns by Column.

Only not none fields will be updated

§Example
use edit_xlsx::{Column, Workbook, WorkSheetCol};
let mut workbook = Workbook::from_path("./examples/xlsx/accounting.xlsx").unwrap();
let mut worksheet = workbook.get_worksheet_mut_by_name("worksheet").unwrap();
let mut col = Column::default();
col.outline_level = Some(1);
col.hidden = Some(1);
worksheet.set_columns("B:E", &col).unwrap();
workbook.save_as("./examples/col_set_columns.xlsx").unwrap()
Examples found in repository?
examples/read_and_copy.rs (line 26)
7fn main() -> WorkbookResult<()> {
8    // Read an existed workbook
9    let reading_book = Workbook::from_path("./tests/xlsx/accounting.xlsx")?;
10    let reading_sheet = reading_book.get_worksheet_by_name("worksheet")?;
11    // Create a new workbook to write
12    let mut writing_book = Workbook::new();
13    let writing_sheet = writing_book.get_worksheet_mut(1)?;
14
15    // Synchronous column width and format
16    let columns_map = reading_sheet.get_columns_with_format("A:XFD")?;
17    match reading_sheet.get_default_column() {
18        None => writing_sheet.set_default_column_adaptive(),
19        Some(width) => writing_sheet.set_default_column(width),
20    }
21    columns_map.iter().for_each(|(col_range, (column, format))| {
22        if let Some(format) = format {
23            // if col format exists, write it to writing_sheet
24            writing_sheet.set_columns_with_format(col_range, column, format).unwrap()
25        } else {
26            writing_sheet.set_columns(col_range, column).unwrap()
27        }
28    });
29
30    // Synchronous row height and format
31    writing_sheet.set_default_row(reading_sheet.get_default_row());
32    for row_number in 1..=reading_sheet.max_row() {
33        let (row, format) = reading_sheet.get_row_with_format(row_number)?;
34        if let Some(format) = format {
35            // if col format exists, write it to writing_sheet
36            writing_sheet.set_row_with_format(row_number, &row, &format)?;
37        } else {
38            writing_sheet.set_row(row_number, &row)?;
39        }
40    }
41
42    // Read then write text and format
43    for row in 1..=reading_sheet.max_row() {
44        for col in 1..=reading_sheet.max_column() {
45            if let Ok(cell) = reading_sheet.read_cell((row, col)) {
46                writing_sheet.write_cell((row, col), &cell)?;
47            }
48        }
49    }
50
51    writing_book.save_as("./examples/read_and_copy.xlsx")?;
52    Ok(())
53}
Source

fn set_columns_with_format<R: LocationRange>( &mut self, col_range: R, column: &Column, format: &Format, ) -> WorkSheetResult<()>

update columns and formats by Column.

Only not none fields will be updated.

NOTICE: Changing the Column’s Format does not mean that the effect can be seen directly in Excel, because the style priority is Cell>Row>Column.

§Example
use edit_xlsx::{Column, Format, FormatColor, Workbook, WorkSheetCol};
let mut workbook = Workbook::from_path("./examples/xlsx/accounting.xlsx").unwrap();
let mut worksheet = workbook.get_worksheet_mut_by_name("worksheet").unwrap();
let mut col = Column::default();
col.outline_level = Some(1);
col.hidden = Some(1);
let white_font = Format::default().set_background_color(FormatColor::Index(4)).set_color(FormatColor::RGB(255, 255, 255));
worksheet.set_columns_with_format("B:E", &col, &white_font).unwrap();
workbook.save_as("./examples/col_set_columns_with_format.xlsx").unwrap()
Examples found in repository?
examples/read_and_copy.rs (line 24)
7fn main() -> WorkbookResult<()> {
8    // Read an existed workbook
9    let reading_book = Workbook::from_path("./tests/xlsx/accounting.xlsx")?;
10    let reading_sheet = reading_book.get_worksheet_by_name("worksheet")?;
11    // Create a new workbook to write
12    let mut writing_book = Workbook::new();
13    let writing_sheet = writing_book.get_worksheet_mut(1)?;
14
15    // Synchronous column width and format
16    let columns_map = reading_sheet.get_columns_with_format("A:XFD")?;
17    match reading_sheet.get_default_column() {
18        None => writing_sheet.set_default_column_adaptive(),
19        Some(width) => writing_sheet.set_default_column(width),
20    }
21    columns_map.iter().for_each(|(col_range, (column, format))| {
22        if let Some(format) = format {
23            // if col format exists, write it to writing_sheet
24            writing_sheet.set_columns_with_format(col_range, column, format).unwrap()
25        } else {
26            writing_sheet.set_columns(col_range, column).unwrap()
27        }
28    });
29
30    // Synchronous row height and format
31    writing_sheet.set_default_row(reading_sheet.get_default_row());
32    for row_number in 1..=reading_sheet.max_row() {
33        let (row, format) = reading_sheet.get_row_with_format(row_number)?;
34        if let Some(format) = format {
35            // if col format exists, write it to writing_sheet
36            writing_sheet.set_row_with_format(row_number, &row, &format)?;
37        } else {
38            writing_sheet.set_row(row_number, &row)?;
39        }
40    }
41
42    // Read then write text and format
43    for row in 1..=reading_sheet.max_row() {
44        for col in 1..=reading_sheet.max_column() {
45            if let Ok(cell) = reading_sheet.read_cell((row, col)) {
46                writing_sheet.write_cell((row, col), &cell)?;
47            }
48        }
49    }
50
51    writing_book.save_as("./examples/read_and_copy.xlsx")?;
52    Ok(())
53}
Source

fn set_columns_width<R: LocationRange>( &mut self, col_range: R, width: f64, ) -> WorkSheetResult<()>

set the width of columns by columns range, The effect is the same as

§Basic Example
use edit_xlsx::Column;
let mut col = Column::default();
col.width = Some(8.0);
// worksheet.set_columns("A:C", &col);
Examples found in repository?
examples/text_indent.rs (line 11)
3fn main() -> WorkbookResult<()> {
4    // Create a new workbook
5    let mut workbook = Workbook::new();
6    let worksheet = workbook.get_worksheet_mut(1)?;
7
8    let indent1 = Format::default().set_indent(1);
9    let indent2 = Format::default().set_indent(2);
10
11    worksheet.set_columns_width("A:A", 40.0)?;
12
13    worksheet.write_with_format("A1", "This text is indented 1 level", &indent1)?;
14    worksheet.write_with_format("A2", "This text is indented 2 levels", &indent2)?;
15
16    // Note: Alignment is not applied correctly when changing the reading order, this bug will be fixed in the future!
17    // let indent = Format::default().set_reading_order(2).set_align(FormatAlignType::Right).set_indent(2);
18    // worksheet.right_to_left();
19
20    workbook.save_as("examples/text_indent.xlsx")?;
21    Ok(())
22}
More examples
Hide additional examples
examples/doc_properties.rs (line 19)
3fn main() -> WorkbookResult<()> {
4    // Create a new workbook
5    let mut workbook = Workbook::new();
6    let mut properties = Properties::default();
7    properties.set_title("This is an example spreadsheet")
8        .set_subject("With document properties")
9        .set_author("pt")
10        .set_manager("example manager")
11        .set_company("example company")
12        .set_category("Example spreadsheets")
13        .set_keywords("Sample, Example, Properties")
14        .set_comments("Created with Rust")
15        .set_status("example status");
16    workbook.set_properties(&properties)?;
17    // Use the default worksheet
18    let worksheet = workbook.get_worksheet_mut(1)?;
19    worksheet.set_columns_width("A:A", 70.0)?;
20    worksheet.write("A1", "Select 'Workbook Properties' to see properties.")?;
21    workbook.save_as("examples/doc_properties.xlsx")?;
22    Ok(())
23}
examples/merge.rs (line 8)
3fn main() -> WorkbookResult<()> {
4    let mut workbook = Workbook::new();
5    let worksheet = workbook.get_worksheet_mut(1)?;
6
7    // Increase the cell size of the merged cells to highlight the formatting.
8    worksheet.set_columns_width("B:D", 18.0)?;
9    worksheet.set_row_height(4, 40.0)?;
10    worksheet.set_row_height(7, 30.0)?;
11    worksheet.set_row_height(8, 30.0)?;
12
13    // Create a format to use in the merged range.
14    let merge_format = Format::default()
15        .set_bold()
16        .set_border(FormatBorderType::Double)
17        .set_align(FormatAlignType::Center)
18        .set_align(FormatAlignType::VerticalCenter)
19        .set_background_color(FormatColor::RGB(255, 255, 0));
20
21    // Merge 3 cells.
22    worksheet.merge_range_with_format("B4:D4", "Merged Range", &merge_format)?;
23    // Merge 3 cells over two rows.
24    worksheet.merge_range_with_format("B7:D8", "Merged Range", &merge_format)?;
25
26    workbook.save_as("examples/merge.xlsx")?;
27    Ok(())
28}
examples/hide_sheet.rs (line 8)
3fn main() -> WorkbookResult<()> {
4    // Create a new workbook
5    let mut workbook = Workbook::new();
6    let worksheet1 = workbook.get_worksheet_mut(1)?;
7
8    worksheet1.set_columns_width("A:A", 30.0)?;
9    worksheet1.write("A1", "Sheet2 is hidden")?;
10
11    // Hide Sheet2. It won't be visible until it is unhidden in Excel.
12    let worksheet2 = workbook.add_worksheet()?;
13    worksheet2.set_columns_width("A:A", 30.0)?;
14    // worksheet2.activate();
15    worksheet2.hide();
16    worksheet2.write("A1", "Now it's my turn to find you!")?;
17    // Note, you can't hide the "active" worksheet, which generally is the
18    // first worksheet, since this would cause an Excel error. So, in order to hide
19    // the first sheet you will need to activate another worksheet:
20    //
21    //    worksheet2.activate();
22    //    worksheet1.hide();
23
24    let worksheet3 = workbook.add_worksheet()?;
25    worksheet3.set_columns_width("A:A", 30.0)?;
26    worksheet3.write("A1", "Sheet2 is hidden")?;
27
28    workbook.save_as("examples/hide_sheet.xlsx")?;
29    Ok(())
30}
examples/ignore_errors.rs (line 26)
4fn main() -> WorkbookResult<()> {
5    let mut workbook = Workbook::new();
6    let worksheet = workbook.get_worksheet_mut(1)?;
7
8    // Write strings that looks like numbers. This will cause an Excel warning.
9    worksheet.write_string("C2", "123".to_string())?;
10    worksheet.write_string("C3", "123".to_string())?;
11
12    // Write a divide by zero formula. This will also cause an Excel warning.
13    worksheet.write_formula("C5", "=1/0")?;
14    worksheet.write_formula("C6", "=1/0")?;
15    // In older versions of Excel, you could use the write_old_formula method:
16    // worksheet.write_old_formula("C5", "=1/0")?;
17    // worksheet.write_old_formula("C6", "=1/0")?;
18
19    // Turn off some of the warnings:
20    let mut error_map = HashMap::new();
21    error_map.insert("number_stored_as_text", "C3");
22    error_map.insert("eval_error", "C6");
23    worksheet.ignore_errors(error_map);
24
25    // Write some descriptions for the cells and make the column wider for clarity.
26    worksheet.set_columns_width("B:B", 16.0)?;
27    worksheet.write("B2", "Warning:")?;
28    worksheet.write("B3", "Warning turned off:")?;
29    worksheet.write("B5", "Warning:")?;
30    worksheet.write("B6", "Warning turned off:")?;
31
32    workbook.save_as("examples/ignore_errors.xlsx")?;
33    Ok(())
34}
examples/right_to_left.rs (line 16)
3fn main() -> WorkbookResult<()> {
4    // Add the cell formats.
5    let format_left_to_right = Format::default()
6        .set_reading_order(1);
7    let format_right_to_left = Format::default()
8        .set_reading_order(2);
9
10    // Create a new workbook
11    let mut workbook = Workbook::new();
12    // Set up some worksheets and set tab colors
13    let worksheet1 = workbook.get_worksheet_mut(1)?;
14
15    // Make the columns wider for clarity.
16    worksheet1.set_columns_width("A:A", 25.0)?;
17
18    // Standard direction:         | A1 | B1 | C1 | ...
19    worksheet1.write("A1", "نص عربي / English text")?;  // Default direction.
20    worksheet1.write_with_format("A2", "نص عربي / English text", &format_left_to_right)?;
21    worksheet1.write_with_format("A3", "نص عربي / English text", &format_right_to_left)?;
22
23    let worksheet2 = workbook.add_worksheet()?;
24    worksheet2.set_columns_width("A:A", 25.0)?;
25    worksheet2.right_to_left();
26
27    // Right to left direction:    ... | C1 | B1 | A1 |
28    worksheet2.write("A1", "نص عربي / English text")?;  // Default direction.
29    worksheet2.write_with_format("A2", "نص عربي / English text", &format_left_to_right)?;
30    worksheet2.write_with_format("A3", "نص عربي / English text", &format_right_to_left)?;
31
32    workbook.save_as("examples/right_to_left.xlsx")?;
33
34    Ok(())
35}
Source

fn set_columns_width_pixels<R: LocationRange>( &mut self, col_range: R, width: f64, ) -> WorkSheetResult<()>

Examples found in repository?
examples/dynamic_arrays.rs (line 28)
3fn main() -> WorkbookResult<()> {
4    // Create a new workbook called simple.xls and add some worksheets.
5    let mut workbook = Workbook::new();
6    let header1 = Format::default()
7        .set_color(FormatColor::RGB(255, 255, 255))
8        .set_background_color(FormatColor::RGB(74, 196, 12));
9    let header2 = Format::default()
10        .set_color(FormatColor::RGB(255, 255, 255))
11        .set_background_color(FormatColor::RGB(40, 253, 3));
12
13    //
14    // Example of using the FILTER() function.
15    //
16    let worksheet1 = workbook.add_worksheet_by_name("Filter")?;
17    worksheet1.write_formula("F2", "_xlfn.FILTER(A1:D17,C1:C17=K2)")?;
18
19    // Write the data the function will work on.
20    worksheet1.write_with_format("K1", "Product", &header2)?;
21    worksheet1.write("K2", "Apple")?;
22    worksheet1.write_with_format("F1", "Region", &header2)?;
23    worksheet1.write_with_format("G1", "Sales Rep", &header2)?;
24    worksheet1.write_with_format("H1", "Product", &header2)?;
25    worksheet1.write_with_format("I1", "Units", &header2)?;
26
27    write_worksheet_data(worksheet1, &header1)?;
28    worksheet1.set_columns_width_pixels("E:E", 10.0)?;
29    worksheet1.set_columns_width_pixels("J:J", 10.0)?;
30
31    //
32    // Example of using the UNIQUE() function.
33    //
34    let worksheet2 = workbook.add_worksheet_by_name("Unique")?;
35    worksheet2.write_formula("F2", "_xlfn.UNIQUE(B2:B17)")?;
36
37    // A more complex example combining SORT and UNIQUE.
38    worksheet2.write_formula("H2", "_xlfn.SORT(_xlfn.UNIQUE(B2:B17))")?;
39
40    // Write the data the function will work on.
41    worksheet2.write_with_format("F1", "Sales Rep", &header2)?;
42    worksheet2.write_with_format("H1", "Sales Rep", &header2)?;
43
44    write_worksheet_data(worksheet2, &header1)?;
45    worksheet2.set_columns_width_pixels("E:E", 10.0)?;
46    worksheet2.set_columns_width_pixels("G:G", 10.0)?;
47
48    //
49    // Example of using the SORT() function.
50    //
51    let worksheet3 = workbook.add_worksheet_by_name("Sort")?;
52    worksheet3.write_formula("F2", "_xlfn.SORT(B2:B17)")?;
53
54    // A more complex example combining SORT and FILTER.
55    worksheet3.write_formula("H2", "_xlfn.SORT(_xlfn.FILTER(C2: D17, D2: D17 > 5000, \"\"), 2, 1)")?;
56
57    // Write the data the function will work on.
58    worksheet3.write_with_format("F1", "Sales Rep", &header2)?;
59    worksheet3.write_with_format("H1", "Product", &header2)?;
60    worksheet3.write_with_format("I1", "Units", &header2)?;
61
62    write_worksheet_data(worksheet3, &header1)?;
63    worksheet3.set_columns_width_pixels("E:E", 10.0)?;
64    worksheet3.set_columns_width_pixels("G:G", 10.0)?;
65
66
67    //
68    // Example of using the SORTBY() function.
69    //
70    let worksheet4 = workbook.add_worksheet_by_name("Sortby")?;
71    worksheet4.write_formula("D2", "_xlfn.SORTBY(A2:B9,B2:B9)")?;
72
73    // Write the data the function will work on.
74    worksheet4.write_with_format("A1", "Name", &header1)?;
75    worksheet4.write_with_format("B1", "Age", &header1)?;
76
77    worksheet4.write("A2", "Tom")?;
78    worksheet4.write("A3", "Fred")?;
79    worksheet4.write("A4", "Amy")?;
80    worksheet4.write("A5", "Sal")?;
81    worksheet4.write("A6", "Fritz")?;
82    worksheet4.write("A7", "Srivan")?;
83    worksheet4.write("A8", "Xi")?;
84    worksheet4.write("A9", "Hector")?;
85
86    worksheet4.write("B2", 52)?;
87    worksheet4.write("B3", 65)?;
88    worksheet4.write("B4", 22)?;
89    worksheet4.write("B5", 73)?;
90    worksheet4.write("B6", 19)?;
91    worksheet4.write("B7", 39)?;
92    worksheet4.write("B8", 19)?;
93    worksheet4.write("B9", 66)?;
94
95    worksheet4.write_with_format("D1", "Name", &header2)?;
96    worksheet4.write_with_format("E1", "Age", &header2)?;
97
98    worksheet4.set_columns_width_pixels("C:C", 10.0)?;
99
100    //
101    // Example of using the XLOOKUP() function.
102    //
103    let worksheet5 = workbook.add_worksheet_by_name("Xlookup")?;
104    worksheet5.write_formula("F1", "_xlfn.XLOOKUP(E1,A2:A9,C2:C9)")?;
105
106    // Write the data the function will work on.
107    worksheet5.write_with_format("A1", "Country", &header1)?;
108    worksheet5.write_with_format("B1", "Abr", &header1)?;
109    worksheet5.write_with_format("C1", "Prefix", &header1)?;
110
111    worksheet5.write("A2", "China")?;
112    worksheet5.write("A3", "India")?;
113    worksheet5.write("A4", "United States")?;
114    worksheet5.write("A5", "Indonesia")?;
115    worksheet5.write("A6", "Brazil")?;
116    worksheet5.write("A7", "Pakistan")?;
117    worksheet5.write("A8", "Nigeria")?;
118    worksheet5.write("A9", "Bangladesh")?;
119
120    worksheet5.write("B2", "CN")?;
121    worksheet5.write("B3", "IN")?;
122    worksheet5.write("B4", "US")?;
123    worksheet5.write("B5", "ID")?;
124    worksheet5.write("B6", "BR")?;
125    worksheet5.write("B7", "PK")?;
126    worksheet5.write("B8", "NG")?;
127    worksheet5.write("B9", "BD")?;
128
129    worksheet5.write("C2", 86)?;
130    worksheet5.write("C3", 91)?;
131    worksheet5.write("C4", 1)?;
132    worksheet5.write("C5", 62)?;
133    worksheet5.write("C6", 55)?;
134    worksheet5.write("C7", 92)?;
135    worksheet5.write("C8", 234)?;
136    worksheet5.write("C9", 880)?;
137
138    worksheet5.write_with_format("E1", "Brazil", &header2)?;
139
140    worksheet5.set_columns_width_pixels("A:A", 100.0)?;
141    worksheet5.set_columns_width_pixels("D:D", 10.0)?;
142
143    //
144    // Example of using the XMATCH() function.
145    //
146    let worksheet6 = workbook.add_worksheet_by_name("Xmatch")?;
147    worksheet6.write_formula("D2", "_xlfn.XMATCH(C2,A2:A6)")?;
148
149    // Write the data the function will work on.
150    worksheet6.write_with_format("A1", "Product", &header1)?;
151
152    worksheet6.write("A2", "Apple")?;
153    worksheet6.write("A3", "Grape")?;
154    worksheet6.write("A4", "Pear")?;
155    worksheet6.write("A5", "Banana")?;
156    worksheet6.write("A6", "Cherry")?;
157
158    worksheet6.write_with_format("C1", "Product", &header2)?;
159    worksheet6.write_with_format("D1", "Position", &header2)?;
160    worksheet6.write("C2", "Grape")?;
161
162    worksheet6.set_columns_width_pixels("B:B", 10.0)?;
163
164    //
165    // Example of using the RANDARRAY() function.
166    //
167    let worksheet7 = workbook.add_worksheet_by_name("Randarray")?;
168    worksheet7.write_dynamic_array_formula("A1", "_xlfn.RANDARRAY(5,3,1,100, TRUE)")?;
169
170    //
171    // Example of using the SEQUENCE() function.
172    //
173    let worksheet8 = workbook.add_worksheet_by_name("Sequence")?;
174    worksheet8.write_dynamic_array_formula("A1", "_xlfn.SEQUENCE(4,5)")?;
175
176    //
177    // Example of using the Spill range operator.
178    //
179    let worksheet9 = workbook.add_worksheet_by_name("Spill ranges")?;
180    worksheet9.write_dynamic_array_formula("H2", "_xlfn.ANCHORARRAY(F2)")?;
181
182    worksheet9.write_dynamic_array_formula("J2", "_xlfn.COUNTA(_xlfn.ANCHORARRAY(F2))")?;
183
184    // Write the data the to work on.
185    worksheet9.write_dynamic_array_formula("F2", "_xlfn.UNIQUE(B2:B17)")?;
186    worksheet9.write_with_format("F1", "Unique", &header2)?;
187    worksheet9.write_with_format("H1", "Spill", &header2)?;
188    worksheet9.write_with_format("J1", "Spill", &header2)?;
189
190    write_worksheet_data(worksheet9, &header1)?;
191    worksheet9.set_columns_width_pixels("E:E", 10.0)?;
192    worksheet9.set_columns_width_pixels("G:G", 10.0)?;
193    worksheet9.set_columns_width_pixels("I:I", 10.0)?;
194
195    //
196    // Example of using dynamic ranges with older Excel functions.
197    //
198    let worksheet10 = workbook.add_worksheet_by_name("Older functions")?;
199    worksheet10.write_dynamic_array_formula("B1", "=LEN(A1:A3)")?;
200
201    // Write the data the to work on.
202    worksheet10.write("A1", "Foo")?;
203    worksheet10.write("A2", "Food")?;
204    worksheet10.write("A3", "Frood")?;
205
206
207    workbook.save_as("examples/dynamic_arrays.xlsx")?;
208    Ok(())
209}
Source

fn set_columns_width_with_format<R: LocationRange>( &mut self, col_range: R, width: f64, format: &Format, ) -> WorkSheetResult<()>

set the width of columns by columns range, The effect is the same as

§Basic Example
use edit_xlsx::{Column, Format};
let mut col = Column::default();
col.width = Some(8.0);
let format = Format::default();
// worksheet.set_columns_with_format("A:C", &col, &format);
Examples found in repository?
examples/outline_collapsed.rs (line 129)
3fn main() -> WorkbookResult<()> {
4    // Create a new workbook
5    let mut workbook = Workbook::new();
6    // Add a general format
7    let bold = Format::default().set_bold();
8
9    //
10    // Example 1: A worksheet with outlined rows. It also includes SUBTOTAL()
11    // functions so that it looks like the type of automatic outlines that are
12    // generated when you use the Excel Data->SubTotals menu item.
13    //
14    let worksheet1 = workbook.add_worksheet_by_name("Outlined Rows")?;
15    worksheet1.set_row_level(2, 2)?;
16    worksheet1.set_row_level(3, 2)?;
17    worksheet1.set_row_level(4, 2)?;
18    worksheet1.set_row_level(5, 2)?;
19    worksheet1.set_row_level(6, 1)?;
20    worksheet1.set_row_level(7, 2)?;
21    worksheet1.set_row_level(8, 2)?;
22    worksheet1.set_row_level(9, 2)?;
23    worksheet1.set_row_level(10, 2)?;
24    worksheet1.set_row_level(11, 1)?;
25    create_sub_totals(worksheet1)?;
26
27    //
28    // Example 2: Create a worksheet with collapsed outlined rows.
29    // This is the same as the example 1  except that the all rows are collapsed.
30    // Note: We need to indicate the rows that contains the collapsed symbol '+'
31    // with the optional parameter, 'collapsed'.
32    //
33    let worksheet2 = workbook.add_worksheet_by_name("Collapsed Rows 1")?;
34    worksheet2.set_row_level(2, 2)?;
35    worksheet2.hide_row(2)?;
36    worksheet2.set_row_level(3, 2)?;
37    worksheet2.hide_row(3)?;
38    worksheet2.set_row_level(4, 2)?;
39    worksheet2.hide_row(4)?;
40    worksheet2.set_row_level(5, 2)?;
41    worksheet2.hide_row(5)?;
42    worksheet2.set_row_level(6, 1)?;
43    worksheet2.hide_row(6)?;
44    worksheet2.set_row_level(7, 2)?;
45    worksheet2.hide_row(7)?;
46    worksheet2.set_row_level(8, 2)?;
47    worksheet2.hide_row(8)?;
48    worksheet2.set_row_level(9, 2)?;
49    worksheet2.hide_row(9)?;
50    worksheet2.set_row_level(10, 2)?;
51    worksheet2.hide_row(10)?;
52    worksheet2.set_row_level(11, 1)?;
53    worksheet2.hide_row(11)?;
54
55    worksheet2.collapse_row(12)?;
56
57    // Write the sub-total data that is common to the row examples.
58    create_sub_totals(worksheet2)?;
59
60
61    //
62    // Example 3: Create a worksheet with collapsed outlined rows.
63    // Same as the example 1  except that the two sub-totals are collapsed.
64    //
65    let worksheet3 = workbook.add_worksheet_by_name("Collapsed Rows 2")?;
66    worksheet3.set_row_level(2, 2)?;
67    worksheet3.hide_row(2)?;
68    worksheet3.set_row_level(3, 2)?;
69    worksheet3.hide_row(3)?;
70    worksheet3.set_row_level(4, 2)?;
71    worksheet3.hide_row(4)?;
72    worksheet3.set_row_level(5, 2)?;
73    worksheet3.hide_row(5)?;
74    worksheet3.set_row_level(6, 1)?;
75    worksheet3.collapse_row(6)?;
76    worksheet3.set_row_level(7, 2)?;
77    worksheet3.hide_row(7)?;
78    worksheet3.set_row_level(8, 2)?;
79    worksheet3.hide_row(8)?;
80    worksheet3.set_row_level(9, 2)?;
81    worksheet3.hide_row(9)?;
82    worksheet3.set_row_level(10, 2)?;
83    worksheet3.hide_row(10)?;
84    worksheet3.set_row_level(11, 1)?;
85    worksheet3.collapse_row(11)?;
86    // Write the sub-total data that is common to the row examples.
87    create_sub_totals(worksheet3)?;
88
89
90    //
91    // Example 4: Create a worksheet with outlined rows.
92    // Same as the example 1  except that the two sub-totals are collapsed.
93    //
94    let worksheet4 = workbook.add_worksheet_by_name("Collapsed Rows 3")?;
95    worksheet4.set_row_level(2, 2)?;
96    worksheet4.hide_row(2)?;
97    worksheet4.set_row_level(3, 2)?;
98    worksheet4.hide_row(3)?;
99    worksheet4.set_row_level(4, 2)?;
100    worksheet4.hide_row(4)?;
101    worksheet4.set_row_level(5, 2)?;
102    worksheet4.hide_row(5)?;
103    worksheet4.set_row_level(6, 1)?;
104    worksheet4.hide_row(6)?;
105    worksheet4.collapse_row(6)?;
106    worksheet4.set_row_level(7, 2)?;
107    worksheet4.hide_row(7)?;
108    worksheet4.set_row_level(8, 2)?;
109    worksheet4.hide_row(8)?;
110    worksheet4.set_row_level(9, 2)?;
111    worksheet4.hide_row(9)?;
112    worksheet4.set_row_level(10, 2)?;
113    worksheet4.hide_row(10)?;
114    worksheet4.set_row_level(11, 1)?;
115    worksheet4.hide_row(11)?;
116    worksheet4.collapse_row(11)?;
117    worksheet4.collapse_row(12)?;
118    // Write the sub-total data that is common to the row examples.
119    create_sub_totals(worksheet4)?;
120
121
122
123    //
124    // Example 5: Create a worksheet with outlined columns.
125    //
126    let worksheet5 = workbook.add_worksheet_by_name("Outline Columns")?;
127    worksheet5.set_row_height_with_format(1, 15.0, &bold)?;
128    worksheet5.write_row("A1", &["Month", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Total"])?;
129    worksheet5.set_columns_width_with_format("A:A", 10.0, &bold)?;
130    worksheet5.set_columns_width("B:G", 5.0)?;
131    worksheet5.set_columns_level("B:G", 1)?;
132    worksheet5.set_columns_width("H:H", 10.0)?;
133    worksheet5.write_column("A2", &["North", "South", "East", "East"])?;
134    worksheet5.write_row("B2", &[50, 20, 15, 25, 65, 80])?;
135    worksheet5.write_row("B3", &[10, 20, 30, 50, 50, 50])?;
136    worksheet5.write_row("B4", &[45, 75, 50, 15, 75, 100])?;
137    worksheet5.write_row("B5", &[15, 15, 55, 35, 20, 50])?;
138    worksheet5.write_formula("H2", "=SUM(B2:G2)")?;
139    worksheet5.write_formula("H3", "=SUM(B3:G3)")?;
140    worksheet5.write_formula("H4", "=SUM(B4:G4)")?;
141    worksheet5.write_formula("H5", "=SUM(B5:G5)")?;
142    worksheet5.write_formula_with_format("H6", "=SUM(H2:H5)", &bold)?;
143
144
145
146    //
147    // Example 6: Create a worksheet with collapsed outlined columns.
148    // This is the same as the previous example except with collapsed columns.
149    //
150    let worksheet6 = workbook.add_worksheet_by_name("Collapsed Columns")?;
151    worksheet6.set_row_height_with_format(1, 15.0, &bold)?;
152    worksheet6.write_row("A1", &["Month", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Total"])?;
153    worksheet6.set_columns_width_with_format("A:H", 10.0, &bold)?;
154    worksheet6.set_columns_level("B:G", 1)?;
155    worksheet6.set_columns_level("C:F", 2)?;
156    worksheet6.set_columns_level("D:E", 3)?;
157    worksheet6.hide_columns("D:E")?;
158    worksheet6.collapse_columns("D:E")?;
159    worksheet6.write_column("A2", &["North", "South", "East", "East"])?;
160    worksheet6.write_row("B2", &[50, 20, 15, 25, 65, 80])?;
161    worksheet6.write_row("B3", &[10, 20, 30, 50, 50, 50])?;
162    worksheet6.write_row("B4", &[45, 75, 50, 15, 75, 100])?;
163    worksheet6.write_row("B5", &[15, 15, 55, 35, 20, 50])?;
164    worksheet6.write_formula("H2", "=SUM(B2:G2)")?;
165    worksheet6.write_formula("H3", "=SUM(B3:G3)")?;
166    worksheet6.write_formula("H4", "=SUM(B4:G4)")?;
167    worksheet6.write_formula("H5", "=SUM(B5:G5)")?;
168    worksheet6.write_formula_with_format("H6", "=SUM(H2:H5)", &bold)?;
169
170
171    workbook.save_as("examples/outline_collapsed.xlsx")?;
172    Ok(())
173}
More examples
Hide additional examples
examples/outline.rs (line 128)
3fn main() -> WorkbookResult<()> {
4    // Create a new workbook
5    let mut workbook = Workbook::new();
6    let worksheet1 = workbook.add_worksheet_by_name("Outlined Rows")?;
7    // Add a general format
8    let bold = Format::default().set_bold();
9
10    //
11    // Example 1: A worksheet with outlined rows. It also includes SUBTOTAL()?;    // functions so that it looks like the type of automatic outlines that are
12    // generated when you use the Excel Data->SubTotals menu item.
13    //
14    // For outlines the important parameters are 'level' and 'hidden'. Rows with
15    // the same 'level' are grouped together. The group will be collapsed if
16    // 'hidden' is enabled. The parameters 'height' and 'cell_format' are assigned
17    // default values if they are None.
18    //
19    worksheet1.set_row_level(2, 2)?;
20    worksheet1.set_row_level(3, 2)?;
21    worksheet1.set_row_level(4, 2)?;
22    worksheet1.set_row_level(5, 2)?;
23    worksheet1.set_row_level(6, 1)?;
24    worksheet1.set_row_level(7, 2)?;
25    worksheet1.set_row_level(8, 2)?;
26    worksheet1.set_row_level(9, 2)?;
27    worksheet1.set_row_level(10, 2)?;
28    worksheet1.set_row_level(11, 1)?;
29
30    // Adjust the column width for clarity
31    worksheet1.set_columns_width("A:A", 20.0)?;
32
33    // Add the data, labels and formulas
34    worksheet1.write_with_format("A1", "Region", &bold)?;
35    worksheet1.write("A2", "North")?;
36    worksheet1.write("A3", "North")?;
37    worksheet1.write("A4", "North")?;
38    worksheet1.write("A5", "North")?;
39    worksheet1.write_with_format("A6", "North Total", &bold)?;
40
41    worksheet1.write_with_format("B1", "Sales", &bold)?;
42    worksheet1.write("B2", 1000)?;
43    worksheet1.write("B3", 1200)?;
44    worksheet1.write("B4", 900)?;
45    worksheet1.write("B5", 1200)?;
46    worksheet1.write_formula_with_format("B6", "=SUBTOTAL(9,B2:B5)", &bold)?;
47    worksheet1.write("A7", "South")?;
48    worksheet1.write("A8", "South")?;
49    worksheet1.write("A9", "South")?;
50    worksheet1.write("A10", "South")?;
51    worksheet1.write_with_format("A11", "South Total", &bold)?;
52    worksheet1.write("B7", 400)?;
53    worksheet1.write("B8", 600)?;
54    worksheet1.write("B9", 500)?;
55    worksheet1.write("B10", 600)?;
56    worksheet1.write_formula_with_format("B11", "=SUBTOTAL(9,B7:B10)", &bold)?;
57    worksheet1.write_with_format("A12", "Grand Total", &bold)?;
58    worksheet1.write_formula_with_format("B12", "=SUBTOTAL(9,B2:B10)", &bold)?;
59
60
61    //
62    // Example 2: A worksheet with outlined rows. This is the same as the
63    // previous example except that the rows are collapsed.
64    // Note: We need to indicate the rows that contains the collapsed symbol '+'
65    // with the optional parameter, 'collapsed'. The group will be then be
66    // collapsed if 'hidden' is True.
67    //
68    let worksheet2 = workbook.add_worksheet_by_name("Collapsed Rows")?;
69    worksheet2.set_row_level(2, 2)?;
70    worksheet2.hide_row(2)?;
71    worksheet2.set_row_level(3, 2)?;
72    worksheet2.hide_row(3)?;
73    worksheet2.set_row_level(4, 2)?;
74    worksheet2.hide_row(4)?;
75    worksheet2.set_row_level(5, 2)?;
76    worksheet2.hide_row(5)?;
77    worksheet2.set_row_level(6, 1)?;
78    worksheet2.hide_row(6)?;
79    worksheet2.set_row_level(7, 2)?;
80    worksheet2.hide_row(7)?;
81    worksheet2.set_row_level(8, 2)?;
82    worksheet2.hide_row(8)?;
83    worksheet2.set_row_level(9, 2)?;
84    worksheet2.hide_row(9)?;
85    worksheet2.set_row_level(10, 2)?;
86    worksheet2.hide_row(10)?;
87    worksheet2.set_row_level(11, 1)?;
88    worksheet2.hide_row(11)?;
89    worksheet2.collapse_row(12)?;
90
91    // Adjust the column width for clarity
92    worksheet2.set_columns_width("A:A", 20.0)?;
93
94    // Add the data, labels and formulas
95    worksheet2.write_with_format("A1", "Region", &bold)?;
96    worksheet2.write("A2", "North")?;
97    worksheet2.write("A3", "North")?;
98    worksheet2.write("A4", "North")?;
99    worksheet2.write("A5", "North")?;
100    worksheet2.write_with_format("A6", "North Total", &bold)?;
101
102    worksheet2.write_with_format("B1", "Sales", &bold)?;
103    worksheet2.write("B2", 1000)?;
104    worksheet2.write("B3", 1200)?;
105    worksheet2.write("B4", 900)?;
106    worksheet2.write("B5", 1200)?;
107    worksheet2.write_formula_with_format("B6", "=SUBTOTAL(9,B2:B5)", &bold)?;
108    worksheet2.write("A7", "South")?;
109    worksheet2.write("A8", "South")?;
110    worksheet2.write("A9", "South")?;
111    worksheet2.write("A10", "South")?;
112    worksheet2.write_with_format("A11", "South Total", &bold)?;
113    worksheet2.write("B7", 400)?;
114    worksheet2.write("B8", 600)?;
115    worksheet2.write("B9", 500)?;
116    worksheet2.write("B10", 600)?;
117    worksheet2.write_formula_with_format("B11", "=SUBTOTAL(9,B7:B10)", &bold)?;
118    worksheet2.write_with_format("A12", "Grand Total", &bold)?;
119    worksheet2.write_formula_with_format("B12", "=SUBTOTAL(9,B2:B10)", &bold)?;
120
121    //
122    // Example 3: Create a worksheet with outlined columns.
123    //
124    let worksheet3 = workbook.add_worksheet_by_name("Outline Columns")?;
125    // Add bold format to the first row.
126    worksheet3.set_row_height_with_format(1, 15.0, &bold)?;
127    worksheet3.write_row("A1", &["Month", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Total"])?;
128    worksheet3.set_columns_width_with_format("A:A", 10.0, &bold)?;
129    worksheet3.set_columns_width("B:G", 10.0)?;
130    worksheet3.set_columns_level("B:G", 1)?;
131    worksheet3.set_columns_width("H:H", 10.0)?;
132    worksheet3.write_column("A2", &["North", "South", "East", "East"])?;
133    worksheet3.write_row("B2", &[50, 20, 15, 25, 65, 80])?;
134    worksheet3.write_row("B3", &[10, 20, 30, 50, 50, 50])?;
135    worksheet3.write_row("B4", &[45, 75, 50, 15, 75, 100])?;
136    worksheet3.write_row("B5", &[15, 15, 55, 35, 20, 50])?;
137    worksheet3.write_formula("H2", "=SUM(B2:G2)")?;
138    worksheet3.write_formula("H3", "=SUM(B3:G3)")?;
139    worksheet3.write_formula("H4", "=SUM(B4:G4)")?;
140    worksheet3.write_formula("H5", "=SUM(B5:G5)")?;
141    worksheet3.write_formula_with_format("H6", "=SUM(H2:H5)", &bold)?;
142
143    //
144    // Example 4: Show all possible outline levels.
145    //
146    let levels = [
147        "Level 1",
148        "Level 2",
149        "Level 3",
150        "Level 4",
151        "Level 5",
152        "Level 6",
153        "Level 7",
154        "Level 6",
155        "Level 5",
156        "Level 4",
157        "Level 3",
158        "Level 2",
159        "Level 1",
160    ];
161    let worksheet4 = workbook.add_worksheet_by_name("Outline levels")?;
162    worksheet4.write_column("A1", &levels)?;
163
164    worksheet4.set_row_level(1, 1)?;
165    worksheet4.set_row_level(2, 2)?;
166    worksheet4.set_row_level(3, 3)?;
167    worksheet4.set_row_level(4, 4)?;
168    worksheet4.set_row_level(5, 5)?;
169    worksheet4.set_row_level(6, 6)?;
170    worksheet4.set_row_level(7, 7)?;
171    worksheet4.set_row_level(8, 6)?;
172    worksheet4.set_row_level(9, 5)?;
173    worksheet4.set_row_level(10, 4)?;
174    worksheet4.set_row_level(11, 3)?;
175    worksheet4.set_row_level(12, 2)?;
176    worksheet4.set_row_level(13, 1)?;
177
178    workbook.save_as("examples/outline.xlsx")?;
179    Ok(())
180}
Source

fn set_columns_width_pixels_with_format<R: LocationRange>( &mut self, col_range: R, width: f64, format: &Format, ) -> WorkSheetResult<()>

Source

fn hide_columns<R: LocationRange>( &mut self, col_range: R, ) -> WorkSheetResult<()>

hide columns by column range, The effect is the same as

§Basic Example
use edit_xlsx::Column;
let mut col = Column::default();
col.hidden = Some(1);
// worksheet.set_columns("A:C", &col);
Examples found in repository?
examples/hide_row_col.rs (line 23)
3fn main() -> WorkbookResult<()> {
4    // Create a new workbook
5    let mut workbook = Workbook::new();
6
7    let worksheet = workbook.get_worksheet_mut(1)?;
8
9    // Write some data.
10    worksheet.write("D1", "Some hidden columns.")?;
11    worksheet.write("A8", "Some hidden rows.")?;
12
13    // Hide all rows without data.
14    worksheet.hide_unused_rows(true);
15
16    // Set the height of empty rows that we do want to display even if it is
17    // the default height.
18    for row in 2..=7 {
19        worksheet.set_row_height(row, 15.0)?;
20    }
21
22    // Columns can be hidden explicitly. This doesn't increase the file size..
23    worksheet.hide_columns("G:XFD")?;
24
25    workbook.save_as("examples/hide_row_col.xlsx")?;
26    Ok(())
27}
More examples
Hide additional examples
examples/outline_collapsed.rs (line 157)
3fn main() -> WorkbookResult<()> {
4    // Create a new workbook
5    let mut workbook = Workbook::new();
6    // Add a general format
7    let bold = Format::default().set_bold();
8
9    //
10    // Example 1: A worksheet with outlined rows. It also includes SUBTOTAL()
11    // functions so that it looks like the type of automatic outlines that are
12    // generated when you use the Excel Data->SubTotals menu item.
13    //
14    let worksheet1 = workbook.add_worksheet_by_name("Outlined Rows")?;
15    worksheet1.set_row_level(2, 2)?;
16    worksheet1.set_row_level(3, 2)?;
17    worksheet1.set_row_level(4, 2)?;
18    worksheet1.set_row_level(5, 2)?;
19    worksheet1.set_row_level(6, 1)?;
20    worksheet1.set_row_level(7, 2)?;
21    worksheet1.set_row_level(8, 2)?;
22    worksheet1.set_row_level(9, 2)?;
23    worksheet1.set_row_level(10, 2)?;
24    worksheet1.set_row_level(11, 1)?;
25    create_sub_totals(worksheet1)?;
26
27    //
28    // Example 2: Create a worksheet with collapsed outlined rows.
29    // This is the same as the example 1  except that the all rows are collapsed.
30    // Note: We need to indicate the rows that contains the collapsed symbol '+'
31    // with the optional parameter, 'collapsed'.
32    //
33    let worksheet2 = workbook.add_worksheet_by_name("Collapsed Rows 1")?;
34    worksheet2.set_row_level(2, 2)?;
35    worksheet2.hide_row(2)?;
36    worksheet2.set_row_level(3, 2)?;
37    worksheet2.hide_row(3)?;
38    worksheet2.set_row_level(4, 2)?;
39    worksheet2.hide_row(4)?;
40    worksheet2.set_row_level(5, 2)?;
41    worksheet2.hide_row(5)?;
42    worksheet2.set_row_level(6, 1)?;
43    worksheet2.hide_row(6)?;
44    worksheet2.set_row_level(7, 2)?;
45    worksheet2.hide_row(7)?;
46    worksheet2.set_row_level(8, 2)?;
47    worksheet2.hide_row(8)?;
48    worksheet2.set_row_level(9, 2)?;
49    worksheet2.hide_row(9)?;
50    worksheet2.set_row_level(10, 2)?;
51    worksheet2.hide_row(10)?;
52    worksheet2.set_row_level(11, 1)?;
53    worksheet2.hide_row(11)?;
54
55    worksheet2.collapse_row(12)?;
56
57    // Write the sub-total data that is common to the row examples.
58    create_sub_totals(worksheet2)?;
59
60
61    //
62    // Example 3: Create a worksheet with collapsed outlined rows.
63    // Same as the example 1  except that the two sub-totals are collapsed.
64    //
65    let worksheet3 = workbook.add_worksheet_by_name("Collapsed Rows 2")?;
66    worksheet3.set_row_level(2, 2)?;
67    worksheet3.hide_row(2)?;
68    worksheet3.set_row_level(3, 2)?;
69    worksheet3.hide_row(3)?;
70    worksheet3.set_row_level(4, 2)?;
71    worksheet3.hide_row(4)?;
72    worksheet3.set_row_level(5, 2)?;
73    worksheet3.hide_row(5)?;
74    worksheet3.set_row_level(6, 1)?;
75    worksheet3.collapse_row(6)?;
76    worksheet3.set_row_level(7, 2)?;
77    worksheet3.hide_row(7)?;
78    worksheet3.set_row_level(8, 2)?;
79    worksheet3.hide_row(8)?;
80    worksheet3.set_row_level(9, 2)?;
81    worksheet3.hide_row(9)?;
82    worksheet3.set_row_level(10, 2)?;
83    worksheet3.hide_row(10)?;
84    worksheet3.set_row_level(11, 1)?;
85    worksheet3.collapse_row(11)?;
86    // Write the sub-total data that is common to the row examples.
87    create_sub_totals(worksheet3)?;
88
89
90    //
91    // Example 4: Create a worksheet with outlined rows.
92    // Same as the example 1  except that the two sub-totals are collapsed.
93    //
94    let worksheet4 = workbook.add_worksheet_by_name("Collapsed Rows 3")?;
95    worksheet4.set_row_level(2, 2)?;
96    worksheet4.hide_row(2)?;
97    worksheet4.set_row_level(3, 2)?;
98    worksheet4.hide_row(3)?;
99    worksheet4.set_row_level(4, 2)?;
100    worksheet4.hide_row(4)?;
101    worksheet4.set_row_level(5, 2)?;
102    worksheet4.hide_row(5)?;
103    worksheet4.set_row_level(6, 1)?;
104    worksheet4.hide_row(6)?;
105    worksheet4.collapse_row(6)?;
106    worksheet4.set_row_level(7, 2)?;
107    worksheet4.hide_row(7)?;
108    worksheet4.set_row_level(8, 2)?;
109    worksheet4.hide_row(8)?;
110    worksheet4.set_row_level(9, 2)?;
111    worksheet4.hide_row(9)?;
112    worksheet4.set_row_level(10, 2)?;
113    worksheet4.hide_row(10)?;
114    worksheet4.set_row_level(11, 1)?;
115    worksheet4.hide_row(11)?;
116    worksheet4.collapse_row(11)?;
117    worksheet4.collapse_row(12)?;
118    // Write the sub-total data that is common to the row examples.
119    create_sub_totals(worksheet4)?;
120
121
122
123    //
124    // Example 5: Create a worksheet with outlined columns.
125    //
126    let worksheet5 = workbook.add_worksheet_by_name("Outline Columns")?;
127    worksheet5.set_row_height_with_format(1, 15.0, &bold)?;
128    worksheet5.write_row("A1", &["Month", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Total"])?;
129    worksheet5.set_columns_width_with_format("A:A", 10.0, &bold)?;
130    worksheet5.set_columns_width("B:G", 5.0)?;
131    worksheet5.set_columns_level("B:G", 1)?;
132    worksheet5.set_columns_width("H:H", 10.0)?;
133    worksheet5.write_column("A2", &["North", "South", "East", "East"])?;
134    worksheet5.write_row("B2", &[50, 20, 15, 25, 65, 80])?;
135    worksheet5.write_row("B3", &[10, 20, 30, 50, 50, 50])?;
136    worksheet5.write_row("B4", &[45, 75, 50, 15, 75, 100])?;
137    worksheet5.write_row("B5", &[15, 15, 55, 35, 20, 50])?;
138    worksheet5.write_formula("H2", "=SUM(B2:G2)")?;
139    worksheet5.write_formula("H3", "=SUM(B3:G3)")?;
140    worksheet5.write_formula("H4", "=SUM(B4:G4)")?;
141    worksheet5.write_formula("H5", "=SUM(B5:G5)")?;
142    worksheet5.write_formula_with_format("H6", "=SUM(H2:H5)", &bold)?;
143
144
145
146    //
147    // Example 6: Create a worksheet with collapsed outlined columns.
148    // This is the same as the previous example except with collapsed columns.
149    //
150    let worksheet6 = workbook.add_worksheet_by_name("Collapsed Columns")?;
151    worksheet6.set_row_height_with_format(1, 15.0, &bold)?;
152    worksheet6.write_row("A1", &["Month", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Total"])?;
153    worksheet6.set_columns_width_with_format("A:H", 10.0, &bold)?;
154    worksheet6.set_columns_level("B:G", 1)?;
155    worksheet6.set_columns_level("C:F", 2)?;
156    worksheet6.set_columns_level("D:E", 3)?;
157    worksheet6.hide_columns("D:E")?;
158    worksheet6.collapse_columns("D:E")?;
159    worksheet6.write_column("A2", &["North", "South", "East", "East"])?;
160    worksheet6.write_row("B2", &[50, 20, 15, 25, 65, 80])?;
161    worksheet6.write_row("B3", &[10, 20, 30, 50, 50, 50])?;
162    worksheet6.write_row("B4", &[45, 75, 50, 15, 75, 100])?;
163    worksheet6.write_row("B5", &[15, 15, 55, 35, 20, 50])?;
164    worksheet6.write_formula("H2", "=SUM(B2:G2)")?;
165    worksheet6.write_formula("H3", "=SUM(B3:G3)")?;
166    worksheet6.write_formula("H4", "=SUM(B4:G4)")?;
167    worksheet6.write_formula("H5", "=SUM(B5:G5)")?;
168    worksheet6.write_formula_with_format("H6", "=SUM(H2:H5)", &bold)?;
169
170
171    workbook.save_as("examples/outline_collapsed.xlsx")?;
172    Ok(())
173}
Source

fn set_columns_level<R: LocationRange>( &mut self, col_range: R, level: u8, ) -> WorkSheetResult<()>

set the outline of columns by column range, The effect is the same as

§Basic Example
use edit_xlsx::Column;
let mut col = Column::default();
col.outline_level = Some(1);
// worksheet.set_columns("A:C", &col);
Examples found in repository?
examples/outline_collapsed.rs (line 131)
3fn main() -> WorkbookResult<()> {
4    // Create a new workbook
5    let mut workbook = Workbook::new();
6    // Add a general format
7    let bold = Format::default().set_bold();
8
9    //
10    // Example 1: A worksheet with outlined rows. It also includes SUBTOTAL()
11    // functions so that it looks like the type of automatic outlines that are
12    // generated when you use the Excel Data->SubTotals menu item.
13    //
14    let worksheet1 = workbook.add_worksheet_by_name("Outlined Rows")?;
15    worksheet1.set_row_level(2, 2)?;
16    worksheet1.set_row_level(3, 2)?;
17    worksheet1.set_row_level(4, 2)?;
18    worksheet1.set_row_level(5, 2)?;
19    worksheet1.set_row_level(6, 1)?;
20    worksheet1.set_row_level(7, 2)?;
21    worksheet1.set_row_level(8, 2)?;
22    worksheet1.set_row_level(9, 2)?;
23    worksheet1.set_row_level(10, 2)?;
24    worksheet1.set_row_level(11, 1)?;
25    create_sub_totals(worksheet1)?;
26
27    //
28    // Example 2: Create a worksheet with collapsed outlined rows.
29    // This is the same as the example 1  except that the all rows are collapsed.
30    // Note: We need to indicate the rows that contains the collapsed symbol '+'
31    // with the optional parameter, 'collapsed'.
32    //
33    let worksheet2 = workbook.add_worksheet_by_name("Collapsed Rows 1")?;
34    worksheet2.set_row_level(2, 2)?;
35    worksheet2.hide_row(2)?;
36    worksheet2.set_row_level(3, 2)?;
37    worksheet2.hide_row(3)?;
38    worksheet2.set_row_level(4, 2)?;
39    worksheet2.hide_row(4)?;
40    worksheet2.set_row_level(5, 2)?;
41    worksheet2.hide_row(5)?;
42    worksheet2.set_row_level(6, 1)?;
43    worksheet2.hide_row(6)?;
44    worksheet2.set_row_level(7, 2)?;
45    worksheet2.hide_row(7)?;
46    worksheet2.set_row_level(8, 2)?;
47    worksheet2.hide_row(8)?;
48    worksheet2.set_row_level(9, 2)?;
49    worksheet2.hide_row(9)?;
50    worksheet2.set_row_level(10, 2)?;
51    worksheet2.hide_row(10)?;
52    worksheet2.set_row_level(11, 1)?;
53    worksheet2.hide_row(11)?;
54
55    worksheet2.collapse_row(12)?;
56
57    // Write the sub-total data that is common to the row examples.
58    create_sub_totals(worksheet2)?;
59
60
61    //
62    // Example 3: Create a worksheet with collapsed outlined rows.
63    // Same as the example 1  except that the two sub-totals are collapsed.
64    //
65    let worksheet3 = workbook.add_worksheet_by_name("Collapsed Rows 2")?;
66    worksheet3.set_row_level(2, 2)?;
67    worksheet3.hide_row(2)?;
68    worksheet3.set_row_level(3, 2)?;
69    worksheet3.hide_row(3)?;
70    worksheet3.set_row_level(4, 2)?;
71    worksheet3.hide_row(4)?;
72    worksheet3.set_row_level(5, 2)?;
73    worksheet3.hide_row(5)?;
74    worksheet3.set_row_level(6, 1)?;
75    worksheet3.collapse_row(6)?;
76    worksheet3.set_row_level(7, 2)?;
77    worksheet3.hide_row(7)?;
78    worksheet3.set_row_level(8, 2)?;
79    worksheet3.hide_row(8)?;
80    worksheet3.set_row_level(9, 2)?;
81    worksheet3.hide_row(9)?;
82    worksheet3.set_row_level(10, 2)?;
83    worksheet3.hide_row(10)?;
84    worksheet3.set_row_level(11, 1)?;
85    worksheet3.collapse_row(11)?;
86    // Write the sub-total data that is common to the row examples.
87    create_sub_totals(worksheet3)?;
88
89
90    //
91    // Example 4: Create a worksheet with outlined rows.
92    // Same as the example 1  except that the two sub-totals are collapsed.
93    //
94    let worksheet4 = workbook.add_worksheet_by_name("Collapsed Rows 3")?;
95    worksheet4.set_row_level(2, 2)?;
96    worksheet4.hide_row(2)?;
97    worksheet4.set_row_level(3, 2)?;
98    worksheet4.hide_row(3)?;
99    worksheet4.set_row_level(4, 2)?;
100    worksheet4.hide_row(4)?;
101    worksheet4.set_row_level(5, 2)?;
102    worksheet4.hide_row(5)?;
103    worksheet4.set_row_level(6, 1)?;
104    worksheet4.hide_row(6)?;
105    worksheet4.collapse_row(6)?;
106    worksheet4.set_row_level(7, 2)?;
107    worksheet4.hide_row(7)?;
108    worksheet4.set_row_level(8, 2)?;
109    worksheet4.hide_row(8)?;
110    worksheet4.set_row_level(9, 2)?;
111    worksheet4.hide_row(9)?;
112    worksheet4.set_row_level(10, 2)?;
113    worksheet4.hide_row(10)?;
114    worksheet4.set_row_level(11, 1)?;
115    worksheet4.hide_row(11)?;
116    worksheet4.collapse_row(11)?;
117    worksheet4.collapse_row(12)?;
118    // Write the sub-total data that is common to the row examples.
119    create_sub_totals(worksheet4)?;
120
121
122
123    //
124    // Example 5: Create a worksheet with outlined columns.
125    //
126    let worksheet5 = workbook.add_worksheet_by_name("Outline Columns")?;
127    worksheet5.set_row_height_with_format(1, 15.0, &bold)?;
128    worksheet5.write_row("A1", &["Month", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Total"])?;
129    worksheet5.set_columns_width_with_format("A:A", 10.0, &bold)?;
130    worksheet5.set_columns_width("B:G", 5.0)?;
131    worksheet5.set_columns_level("B:G", 1)?;
132    worksheet5.set_columns_width("H:H", 10.0)?;
133    worksheet5.write_column("A2", &["North", "South", "East", "East"])?;
134    worksheet5.write_row("B2", &[50, 20, 15, 25, 65, 80])?;
135    worksheet5.write_row("B3", &[10, 20, 30, 50, 50, 50])?;
136    worksheet5.write_row("B4", &[45, 75, 50, 15, 75, 100])?;
137    worksheet5.write_row("B5", &[15, 15, 55, 35, 20, 50])?;
138    worksheet5.write_formula("H2", "=SUM(B2:G2)")?;
139    worksheet5.write_formula("H3", "=SUM(B3:G3)")?;
140    worksheet5.write_formula("H4", "=SUM(B4:G4)")?;
141    worksheet5.write_formula("H5", "=SUM(B5:G5)")?;
142    worksheet5.write_formula_with_format("H6", "=SUM(H2:H5)", &bold)?;
143
144
145
146    //
147    // Example 6: Create a worksheet with collapsed outlined columns.
148    // This is the same as the previous example except with collapsed columns.
149    //
150    let worksheet6 = workbook.add_worksheet_by_name("Collapsed Columns")?;
151    worksheet6.set_row_height_with_format(1, 15.0, &bold)?;
152    worksheet6.write_row("A1", &["Month", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Total"])?;
153    worksheet6.set_columns_width_with_format("A:H", 10.0, &bold)?;
154    worksheet6.set_columns_level("B:G", 1)?;
155    worksheet6.set_columns_level("C:F", 2)?;
156    worksheet6.set_columns_level("D:E", 3)?;
157    worksheet6.hide_columns("D:E")?;
158    worksheet6.collapse_columns("D:E")?;
159    worksheet6.write_column("A2", &["North", "South", "East", "East"])?;
160    worksheet6.write_row("B2", &[50, 20, 15, 25, 65, 80])?;
161    worksheet6.write_row("B3", &[10, 20, 30, 50, 50, 50])?;
162    worksheet6.write_row("B4", &[45, 75, 50, 15, 75, 100])?;
163    worksheet6.write_row("B5", &[15, 15, 55, 35, 20, 50])?;
164    worksheet6.write_formula("H2", "=SUM(B2:G2)")?;
165    worksheet6.write_formula("H3", "=SUM(B3:G3)")?;
166    worksheet6.write_formula("H4", "=SUM(B4:G4)")?;
167    worksheet6.write_formula("H5", "=SUM(B5:G5)")?;
168    worksheet6.write_formula_with_format("H6", "=SUM(H2:H5)", &bold)?;
169
170
171    workbook.save_as("examples/outline_collapsed.xlsx")?;
172    Ok(())
173}
More examples
Hide additional examples
examples/outline.rs (line 130)
3fn main() -> WorkbookResult<()> {
4    // Create a new workbook
5    let mut workbook = Workbook::new();
6    let worksheet1 = workbook.add_worksheet_by_name("Outlined Rows")?;
7    // Add a general format
8    let bold = Format::default().set_bold();
9
10    //
11    // Example 1: A worksheet with outlined rows. It also includes SUBTOTAL()?;    // functions so that it looks like the type of automatic outlines that are
12    // generated when you use the Excel Data->SubTotals menu item.
13    //
14    // For outlines the important parameters are 'level' and 'hidden'. Rows with
15    // the same 'level' are grouped together. The group will be collapsed if
16    // 'hidden' is enabled. The parameters 'height' and 'cell_format' are assigned
17    // default values if they are None.
18    //
19    worksheet1.set_row_level(2, 2)?;
20    worksheet1.set_row_level(3, 2)?;
21    worksheet1.set_row_level(4, 2)?;
22    worksheet1.set_row_level(5, 2)?;
23    worksheet1.set_row_level(6, 1)?;
24    worksheet1.set_row_level(7, 2)?;
25    worksheet1.set_row_level(8, 2)?;
26    worksheet1.set_row_level(9, 2)?;
27    worksheet1.set_row_level(10, 2)?;
28    worksheet1.set_row_level(11, 1)?;
29
30    // Adjust the column width for clarity
31    worksheet1.set_columns_width("A:A", 20.0)?;
32
33    // Add the data, labels and formulas
34    worksheet1.write_with_format("A1", "Region", &bold)?;
35    worksheet1.write("A2", "North")?;
36    worksheet1.write("A3", "North")?;
37    worksheet1.write("A4", "North")?;
38    worksheet1.write("A5", "North")?;
39    worksheet1.write_with_format("A6", "North Total", &bold)?;
40
41    worksheet1.write_with_format("B1", "Sales", &bold)?;
42    worksheet1.write("B2", 1000)?;
43    worksheet1.write("B3", 1200)?;
44    worksheet1.write("B4", 900)?;
45    worksheet1.write("B5", 1200)?;
46    worksheet1.write_formula_with_format("B6", "=SUBTOTAL(9,B2:B5)", &bold)?;
47    worksheet1.write("A7", "South")?;
48    worksheet1.write("A8", "South")?;
49    worksheet1.write("A9", "South")?;
50    worksheet1.write("A10", "South")?;
51    worksheet1.write_with_format("A11", "South Total", &bold)?;
52    worksheet1.write("B7", 400)?;
53    worksheet1.write("B8", 600)?;
54    worksheet1.write("B9", 500)?;
55    worksheet1.write("B10", 600)?;
56    worksheet1.write_formula_with_format("B11", "=SUBTOTAL(9,B7:B10)", &bold)?;
57    worksheet1.write_with_format("A12", "Grand Total", &bold)?;
58    worksheet1.write_formula_with_format("B12", "=SUBTOTAL(9,B2:B10)", &bold)?;
59
60
61    //
62    // Example 2: A worksheet with outlined rows. This is the same as the
63    // previous example except that the rows are collapsed.
64    // Note: We need to indicate the rows that contains the collapsed symbol '+'
65    // with the optional parameter, 'collapsed'. The group will be then be
66    // collapsed if 'hidden' is True.
67    //
68    let worksheet2 = workbook.add_worksheet_by_name("Collapsed Rows")?;
69    worksheet2.set_row_level(2, 2)?;
70    worksheet2.hide_row(2)?;
71    worksheet2.set_row_level(3, 2)?;
72    worksheet2.hide_row(3)?;
73    worksheet2.set_row_level(4, 2)?;
74    worksheet2.hide_row(4)?;
75    worksheet2.set_row_level(5, 2)?;
76    worksheet2.hide_row(5)?;
77    worksheet2.set_row_level(6, 1)?;
78    worksheet2.hide_row(6)?;
79    worksheet2.set_row_level(7, 2)?;
80    worksheet2.hide_row(7)?;
81    worksheet2.set_row_level(8, 2)?;
82    worksheet2.hide_row(8)?;
83    worksheet2.set_row_level(9, 2)?;
84    worksheet2.hide_row(9)?;
85    worksheet2.set_row_level(10, 2)?;
86    worksheet2.hide_row(10)?;
87    worksheet2.set_row_level(11, 1)?;
88    worksheet2.hide_row(11)?;
89    worksheet2.collapse_row(12)?;
90
91    // Adjust the column width for clarity
92    worksheet2.set_columns_width("A:A", 20.0)?;
93
94    // Add the data, labels and formulas
95    worksheet2.write_with_format("A1", "Region", &bold)?;
96    worksheet2.write("A2", "North")?;
97    worksheet2.write("A3", "North")?;
98    worksheet2.write("A4", "North")?;
99    worksheet2.write("A5", "North")?;
100    worksheet2.write_with_format("A6", "North Total", &bold)?;
101
102    worksheet2.write_with_format("B1", "Sales", &bold)?;
103    worksheet2.write("B2", 1000)?;
104    worksheet2.write("B3", 1200)?;
105    worksheet2.write("B4", 900)?;
106    worksheet2.write("B5", 1200)?;
107    worksheet2.write_formula_with_format("B6", "=SUBTOTAL(9,B2:B5)", &bold)?;
108    worksheet2.write("A7", "South")?;
109    worksheet2.write("A8", "South")?;
110    worksheet2.write("A9", "South")?;
111    worksheet2.write("A10", "South")?;
112    worksheet2.write_with_format("A11", "South Total", &bold)?;
113    worksheet2.write("B7", 400)?;
114    worksheet2.write("B8", 600)?;
115    worksheet2.write("B9", 500)?;
116    worksheet2.write("B10", 600)?;
117    worksheet2.write_formula_with_format("B11", "=SUBTOTAL(9,B7:B10)", &bold)?;
118    worksheet2.write_with_format("A12", "Grand Total", &bold)?;
119    worksheet2.write_formula_with_format("B12", "=SUBTOTAL(9,B2:B10)", &bold)?;
120
121    //
122    // Example 3: Create a worksheet with outlined columns.
123    //
124    let worksheet3 = workbook.add_worksheet_by_name("Outline Columns")?;
125    // Add bold format to the first row.
126    worksheet3.set_row_height_with_format(1, 15.0, &bold)?;
127    worksheet3.write_row("A1", &["Month", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Total"])?;
128    worksheet3.set_columns_width_with_format("A:A", 10.0, &bold)?;
129    worksheet3.set_columns_width("B:G", 10.0)?;
130    worksheet3.set_columns_level("B:G", 1)?;
131    worksheet3.set_columns_width("H:H", 10.0)?;
132    worksheet3.write_column("A2", &["North", "South", "East", "East"])?;
133    worksheet3.write_row("B2", &[50, 20, 15, 25, 65, 80])?;
134    worksheet3.write_row("B3", &[10, 20, 30, 50, 50, 50])?;
135    worksheet3.write_row("B4", &[45, 75, 50, 15, 75, 100])?;
136    worksheet3.write_row("B5", &[15, 15, 55, 35, 20, 50])?;
137    worksheet3.write_formula("H2", "=SUM(B2:G2)")?;
138    worksheet3.write_formula("H3", "=SUM(B3:G3)")?;
139    worksheet3.write_formula("H4", "=SUM(B4:G4)")?;
140    worksheet3.write_formula("H5", "=SUM(B5:G5)")?;
141    worksheet3.write_formula_with_format("H6", "=SUM(H2:H5)", &bold)?;
142
143    //
144    // Example 4: Show all possible outline levels.
145    //
146    let levels = [
147        "Level 1",
148        "Level 2",
149        "Level 3",
150        "Level 4",
151        "Level 5",
152        "Level 6",
153        "Level 7",
154        "Level 6",
155        "Level 5",
156        "Level 4",
157        "Level 3",
158        "Level 2",
159        "Level 1",
160    ];
161    let worksheet4 = workbook.add_worksheet_by_name("Outline levels")?;
162    worksheet4.write_column("A1", &levels)?;
163
164    worksheet4.set_row_level(1, 1)?;
165    worksheet4.set_row_level(2, 2)?;
166    worksheet4.set_row_level(3, 3)?;
167    worksheet4.set_row_level(4, 4)?;
168    worksheet4.set_row_level(5, 5)?;
169    worksheet4.set_row_level(6, 6)?;
170    worksheet4.set_row_level(7, 7)?;
171    worksheet4.set_row_level(8, 6)?;
172    worksheet4.set_row_level(9, 5)?;
173    worksheet4.set_row_level(10, 4)?;
174    worksheet4.set_row_level(11, 3)?;
175    worksheet4.set_row_level(12, 2)?;
176    worksheet4.set_row_level(13, 1)?;
177
178    workbook.save_as("examples/outline.xlsx")?;
179    Ok(())
180}
Source

fn collapse_columns<R: LocationRange>( &mut self, col_range: R, ) -> WorkSheetResult<()>

collapse columns by column range, The effect is the same as

§Basic Example
use edit_xlsx::Column;
let mut col = Column::default();
col.collapsed = Some(1);
// worksheet.set_columns("A:C", &col);
Examples found in repository?
examples/outline_collapsed.rs (line 158)
3fn main() -> WorkbookResult<()> {
4    // Create a new workbook
5    let mut workbook = Workbook::new();
6    // Add a general format
7    let bold = Format::default().set_bold();
8
9    //
10    // Example 1: A worksheet with outlined rows. It also includes SUBTOTAL()
11    // functions so that it looks like the type of automatic outlines that are
12    // generated when you use the Excel Data->SubTotals menu item.
13    //
14    let worksheet1 = workbook.add_worksheet_by_name("Outlined Rows")?;
15    worksheet1.set_row_level(2, 2)?;
16    worksheet1.set_row_level(3, 2)?;
17    worksheet1.set_row_level(4, 2)?;
18    worksheet1.set_row_level(5, 2)?;
19    worksheet1.set_row_level(6, 1)?;
20    worksheet1.set_row_level(7, 2)?;
21    worksheet1.set_row_level(8, 2)?;
22    worksheet1.set_row_level(9, 2)?;
23    worksheet1.set_row_level(10, 2)?;
24    worksheet1.set_row_level(11, 1)?;
25    create_sub_totals(worksheet1)?;
26
27    //
28    // Example 2: Create a worksheet with collapsed outlined rows.
29    // This is the same as the example 1  except that the all rows are collapsed.
30    // Note: We need to indicate the rows that contains the collapsed symbol '+'
31    // with the optional parameter, 'collapsed'.
32    //
33    let worksheet2 = workbook.add_worksheet_by_name("Collapsed Rows 1")?;
34    worksheet2.set_row_level(2, 2)?;
35    worksheet2.hide_row(2)?;
36    worksheet2.set_row_level(3, 2)?;
37    worksheet2.hide_row(3)?;
38    worksheet2.set_row_level(4, 2)?;
39    worksheet2.hide_row(4)?;
40    worksheet2.set_row_level(5, 2)?;
41    worksheet2.hide_row(5)?;
42    worksheet2.set_row_level(6, 1)?;
43    worksheet2.hide_row(6)?;
44    worksheet2.set_row_level(7, 2)?;
45    worksheet2.hide_row(7)?;
46    worksheet2.set_row_level(8, 2)?;
47    worksheet2.hide_row(8)?;
48    worksheet2.set_row_level(9, 2)?;
49    worksheet2.hide_row(9)?;
50    worksheet2.set_row_level(10, 2)?;
51    worksheet2.hide_row(10)?;
52    worksheet2.set_row_level(11, 1)?;
53    worksheet2.hide_row(11)?;
54
55    worksheet2.collapse_row(12)?;
56
57    // Write the sub-total data that is common to the row examples.
58    create_sub_totals(worksheet2)?;
59
60
61    //
62    // Example 3: Create a worksheet with collapsed outlined rows.
63    // Same as the example 1  except that the two sub-totals are collapsed.
64    //
65    let worksheet3 = workbook.add_worksheet_by_name("Collapsed Rows 2")?;
66    worksheet3.set_row_level(2, 2)?;
67    worksheet3.hide_row(2)?;
68    worksheet3.set_row_level(3, 2)?;
69    worksheet3.hide_row(3)?;
70    worksheet3.set_row_level(4, 2)?;
71    worksheet3.hide_row(4)?;
72    worksheet3.set_row_level(5, 2)?;
73    worksheet3.hide_row(5)?;
74    worksheet3.set_row_level(6, 1)?;
75    worksheet3.collapse_row(6)?;
76    worksheet3.set_row_level(7, 2)?;
77    worksheet3.hide_row(7)?;
78    worksheet3.set_row_level(8, 2)?;
79    worksheet3.hide_row(8)?;
80    worksheet3.set_row_level(9, 2)?;
81    worksheet3.hide_row(9)?;
82    worksheet3.set_row_level(10, 2)?;
83    worksheet3.hide_row(10)?;
84    worksheet3.set_row_level(11, 1)?;
85    worksheet3.collapse_row(11)?;
86    // Write the sub-total data that is common to the row examples.
87    create_sub_totals(worksheet3)?;
88
89
90    //
91    // Example 4: Create a worksheet with outlined rows.
92    // Same as the example 1  except that the two sub-totals are collapsed.
93    //
94    let worksheet4 = workbook.add_worksheet_by_name("Collapsed Rows 3")?;
95    worksheet4.set_row_level(2, 2)?;
96    worksheet4.hide_row(2)?;
97    worksheet4.set_row_level(3, 2)?;
98    worksheet4.hide_row(3)?;
99    worksheet4.set_row_level(4, 2)?;
100    worksheet4.hide_row(4)?;
101    worksheet4.set_row_level(5, 2)?;
102    worksheet4.hide_row(5)?;
103    worksheet4.set_row_level(6, 1)?;
104    worksheet4.hide_row(6)?;
105    worksheet4.collapse_row(6)?;
106    worksheet4.set_row_level(7, 2)?;
107    worksheet4.hide_row(7)?;
108    worksheet4.set_row_level(8, 2)?;
109    worksheet4.hide_row(8)?;
110    worksheet4.set_row_level(9, 2)?;
111    worksheet4.hide_row(9)?;
112    worksheet4.set_row_level(10, 2)?;
113    worksheet4.hide_row(10)?;
114    worksheet4.set_row_level(11, 1)?;
115    worksheet4.hide_row(11)?;
116    worksheet4.collapse_row(11)?;
117    worksheet4.collapse_row(12)?;
118    // Write the sub-total data that is common to the row examples.
119    create_sub_totals(worksheet4)?;
120
121
122
123    //
124    // Example 5: Create a worksheet with outlined columns.
125    //
126    let worksheet5 = workbook.add_worksheet_by_name("Outline Columns")?;
127    worksheet5.set_row_height_with_format(1, 15.0, &bold)?;
128    worksheet5.write_row("A1", &["Month", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Total"])?;
129    worksheet5.set_columns_width_with_format("A:A", 10.0, &bold)?;
130    worksheet5.set_columns_width("B:G", 5.0)?;
131    worksheet5.set_columns_level("B:G", 1)?;
132    worksheet5.set_columns_width("H:H", 10.0)?;
133    worksheet5.write_column("A2", &["North", "South", "East", "East"])?;
134    worksheet5.write_row("B2", &[50, 20, 15, 25, 65, 80])?;
135    worksheet5.write_row("B3", &[10, 20, 30, 50, 50, 50])?;
136    worksheet5.write_row("B4", &[45, 75, 50, 15, 75, 100])?;
137    worksheet5.write_row("B5", &[15, 15, 55, 35, 20, 50])?;
138    worksheet5.write_formula("H2", "=SUM(B2:G2)")?;
139    worksheet5.write_formula("H3", "=SUM(B3:G3)")?;
140    worksheet5.write_formula("H4", "=SUM(B4:G4)")?;
141    worksheet5.write_formula("H5", "=SUM(B5:G5)")?;
142    worksheet5.write_formula_with_format("H6", "=SUM(H2:H5)", &bold)?;
143
144
145
146    //
147    // Example 6: Create a worksheet with collapsed outlined columns.
148    // This is the same as the previous example except with collapsed columns.
149    //
150    let worksheet6 = workbook.add_worksheet_by_name("Collapsed Columns")?;
151    worksheet6.set_row_height_with_format(1, 15.0, &bold)?;
152    worksheet6.write_row("A1", &["Month", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Total"])?;
153    worksheet6.set_columns_width_with_format("A:H", 10.0, &bold)?;
154    worksheet6.set_columns_level("B:G", 1)?;
155    worksheet6.set_columns_level("C:F", 2)?;
156    worksheet6.set_columns_level("D:E", 3)?;
157    worksheet6.hide_columns("D:E")?;
158    worksheet6.collapse_columns("D:E")?;
159    worksheet6.write_column("A2", &["North", "South", "East", "East"])?;
160    worksheet6.write_row("B2", &[50, 20, 15, 25, 65, 80])?;
161    worksheet6.write_row("B3", &[10, 20, 30, 50, 50, 50])?;
162    worksheet6.write_row("B4", &[45, 75, 50, 15, 75, 100])?;
163    worksheet6.write_row("B5", &[15, 15, 55, 35, 20, 50])?;
164    worksheet6.write_formula("H2", "=SUM(B2:G2)")?;
165    worksheet6.write_formula("H3", "=SUM(B3:G3)")?;
166    worksheet6.write_formula("H4", "=SUM(B4:G4)")?;
167    worksheet6.write_formula("H5", "=SUM(B5:G5)")?;
168    worksheet6.write_formula_with_format("H6", "=SUM(H2:H5)", &bold)?;
169
170
171    workbook.save_as("examples/outline_collapsed.xlsx")?;
172    Ok(())
173}

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§