use rust_xlsxwriter::{Format, Table, TableColumn, Workbook, XlsxError};
fn main() -> Result<(), XlsxError> {
let mut workbook = Workbook::new();
let worksheet = workbook.add_worksheet();
let items = ["Apples", "Pears", "Bananas", "Oranges"];
let data = [
[10000, 5000, 8000, 6000],
[2000, 3000, 4000, 5000],
[6000, 6000, 6500, 6000],
[500, 300, 200, 700],
];
worksheet.write_column(3, 1, items)?;
worksheet.write_row_matrix(3, 2, data)?;
worksheet.set_column_range_width(1, 6, 12)?;
let format1 = Format::new().set_font_color("#FF0000");
let format2 = Format::new().set_font_color("#00FF00");
let format3 = Format::new().set_font_color("#0000FF");
let format4 = Format::new().set_font_color("#FFFF00");
let columns = vec![
TableColumn::new().set_header("Product"),
TableColumn::new()
.set_header("Quarter 1")
.set_header_format(format1),
TableColumn::new()
.set_header("Quarter 2")
.set_header_format(format2),
TableColumn::new()
.set_header("Quarter 3")
.set_header_format(format3),
TableColumn::new()
.set_header("Quarter 4")
.set_header_format(format4),
];
let table = Table::new().set_columns(&columns);
worksheet.add_table(2, 1, 6, 5, &table)?;
workbook.save("tables.xlsx")?;
Ok(())
}