use karo::{col_range, index, Format, NumFormat, Workbook};
fn main() -> karo::Result<()> {
let mut workbook = Workbook::new();
{
let worksheet = workbook.add_worksheet(None)?;
worksheet.set_column(col_range(0, 0)?, 30f64, None)?;
let mut f = Format::default();
worksheet.write_number(index(0, 0)?, 3.1415926, None)?;
f.num_format = NumFormat::from_format_string("0.000");
worksheet.write_number(index(1, 0)?, 3.1415926, Some(&f))?;
f.num_format = NumFormat::from_format_string("#,##0");
worksheet.write_number(index(2, 0)?, 1234.56, Some(&f))?;
f.num_format = NumFormat::from_format_string("#,##0.00");
worksheet.write_number(index(3, 0)?, 1234.56, Some(&f))?;
f.num_format = NumFormat::from_format_string("0.00");
worksheet.write_number(index(4, 0)?, 49.99, Some(&f))?;
f.num_format = NumFormat::from_format_string("mm/dd/yy");
worksheet.write_number(index(5, 0)?, 36892.521, Some(&f))?;
f.num_format = NumFormat::from_format_string("mmm d yyyy");
worksheet.write_number(index(6, 0)?, 36892.521, Some(&f))?;
f.num_format = NumFormat::from_format_string("d mmmm yyyy");
worksheet.write_number(index(7, 0)?, 36892.521, Some(&f))?;
f.num_format =
NumFormat::from_format_string("dd/mm/yyyy hh:mm AM/PM");
worksheet.write_number(index(8, 0)?, 36892.521, Some(&f))?;
f.num_format = NumFormat::from_format_string(
"0 \"dollar and\" .00 \"cents\"",
);
worksheet.write_number(index(9, 0)?, 1.87, Some(&f))?;
f.num_format = NumFormat::from_format_string(
"[Green]General;[Red]-General;General",
);
worksheet.write_number(index(10, 0)?, 123.0, Some(&f))?; worksheet.write_number(index(11, 0)?, -45.0, Some(&f))?; worksheet.write_number(index(12, 0)?, 0.0, Some(&f))?;
f.num_format = NumFormat::from_format_string("00000");
worksheet.write_number(index(13, 0)?, 1209.0, Some(&f))?;
}
workbook.write_file("format_num_format.xlsx")?;
Ok(())
}