use rust_xlsxwriter::{Chart, ChartType, ExcelDateTime, Format, Workbook, XlsxError};
fn main() -> Result<(), XlsxError> {
let mut workbook = Workbook::new();
let worksheet = workbook.add_worksheet();
let date_format = Format::new().set_num_format("yyyy-mm-dd");
worksheet.set_column_width(0, 11)?;
let dates = [
ExcelDateTime::parse_from_str("2024-01-01")?,
ExcelDateTime::parse_from_str("2024-01-02")?,
ExcelDateTime::parse_from_str("2024-01-03")?,
ExcelDateTime::parse_from_str("2024-01-04")?,
ExcelDateTime::parse_from_str("2024-01-05")?,
];
let values = [27.2, 25.03, 19.05, 20.34, 18.5];
worksheet.write_column_with_format(0, 0, dates, &date_format)?;
worksheet.write_column(0, 1, values)?;
let mut chart = Chart::new(ChartType::Column);
chart
.add_series()
.set_categories(("Sheet1", 0, 0, 4, 0))
.set_values(("Sheet1", 0, 1, 4, 1));
chart.x_axis().set_date_axis(true);
worksheet.insert_chart(0, 3, &chart)?;
workbook.save("chart.xlsx")?;
Ok(())
}