use ooxml_wml::{DocumentBuilder, ListType};
fn main() -> ooxml_wml::Result<()> {
let mut builder = DocumentBuilder::new();
{
let para = builder.body_mut().add_paragraph();
let run = para.add_run();
run.set_text("Document Title");
run.set_bold(true);
run.set_font_size(48); }
builder.add_paragraph("This is a simple paragraph with regular text.");
{
let para = builder.body_mut().add_paragraph();
let run = para.add_run();
run.set_text("This text is italic.");
run.set_italic(true);
}
let bullet_id = builder.add_list(ListType::Bullet);
for item in [
"First bullet point",
"Second bullet point",
"Third bullet point",
] {
let para = builder.body_mut().add_paragraph();
para.add_run().set_text(item);
para.set_numbering(bullet_id, 0);
}
let num_id = builder.add_list(ListType::Decimal);
for item in [
"First numbered item",
"Second numbered item",
"Third numbered item",
] {
let para = builder.body_mut().add_paragraph();
para.add_run().set_text(item);
para.set_numbering(num_id, 0);
}
{
let table = builder.body_mut().add_table();
let header_row = table.add_row();
for header in ["Column 1", "Column 2", "Column 3"] {
let cell = header_row.add_cell();
let para = cell.add_paragraph();
let run = para.add_run();
run.set_text(header);
run.set_bold(true);
}
for row_data in [["A1", "B1", "C1"], ["A2", "B2", "C2"], ["A3", "B3", "C3"]] {
let row = table.add_row();
for cell_text in row_data {
let cell = row.add_cell();
cell.add_paragraph().add_run().set_text(cell_text);
}
}
}
let output_path = "output.docx";
builder.save(output_path)?;
println!("Document saved to: {}", output_path);
Ok(())
}