use rust_xlsxwriter::{Workbook, XlsxError, XlsxSerialize};
use serde::Serialize;
fn main() -> Result<(), XlsxError> {
let mut workbook = Workbook::new();
let worksheet = workbook.add_worksheet();
#[derive(XlsxSerialize, Serialize)]
#[xlsx(table = Table::new())]
#[serde(rename_all = "PascalCase")]
struct Produce {
fruit: &'static str,
#[xlsx(value_format = Format::new().set_num_format("$0.00"))]
cost: f64,
}
let item1 = Produce {
fruit: "Peach",
cost: 1.05,
};
let item2 = Produce {
fruit: "Plum",
cost: 0.15,
};
let item3 = Produce {
fruit: "Pear",
cost: 0.75,
};
worksheet.set_serialize_headers::<Produce>(0, 0)?;
worksheet.serialize(&item1)?;
worksheet.serialize(&item2)?;
worksheet.serialize(&item3)?;
workbook.save("serialize.xlsx")?;
Ok(())
}