| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- use std::collections::BTreeMap;
- use rust_xlsxwriter::*;
- pub fn creation_xlsx(one_row_name: &Vec<&str>, data_rows: &BTreeMap<String, Vec<Vec<String>>>, file_name: String) -> Result<(), XlsxError> {
- // 创建一个新的Excel文件对象。
- let mut workbook = Workbook::new();
- for (key, value) in data_rows {
- // 向工作簿中添加工作表。
- let worksheet = workbook.add_worksheet();
- worksheet.set_name(key).unwrap();
- // 第一行 列,明
- let mut row_index: usize = 0;
- let mut i: usize = 0;
- let bold_format = Format::new().set_bold();
- while i <= one_row_name.len() - 1 {
- worksheet.write_with_format(row_index as RowNum, i as ColNum, one_row_name[i], &bold_format)?;
- i = i + 1;
- }
- //后续 数据写入
- row_index = 1;
- while row_index <= value.len() {
- let row = value.get(row_index - 1).unwrap();
- i = 0;
- for str in row {
- worksheet.write(row_index as RowNum, i as ColNum, str)?;
- i = i + 1;
- }
- row_index = row_index + 1;
- }
- }
- //
- // for row in one_row_name {}
- // // 写一个不带格式的字符串。
- // worksheet.write(0, 0, "Hello")?;
- //
- //
- // // 创建一些要在工作表中使用的格式。
- // let bold_format = Format::new().set_bold();
- // let decimal_format = Format::new().set_num_format("0.000");
- // let date_format = Format::new().set_num_format("yyyy-mm-dd");
- // let merge_format = Format::new()
- // .set_border(FormatBorder::Thin)
- // .set_align(FormatAlign::Center);
- //
- //
- // // 为清晰设置列宽度。
- // worksheet.set_column_width(0, 22)?;
- //
- // // 写一个不带格式的字符串。
- // worksheet.write(0, 0, "Hello")?;
- //
- // // 用上面定义的粗体格式编写一个字符串。
- // worksheet.write_with_format(1, 0, "World", &bold_format)?;
- //
- // //
- // worksheet.write(2, 0, 1)?;
- // worksheet.write(3, 0, 2.34)?;
- //
- // // 用格式写一个数字。
- // worksheet.write_with_format(4, 0, 3.00, &decimal_format)?;
- //
- // // 写一个公式。
- // worksheet.write(5, 0, Formula::new("=SIN(PI()/4)"))?;
- //
- // // 写一个日期。
- // let date = ExcelDateTime::from_ymd(2023, 1, 25)?;
- // worksheet.write_with_format(6, 0, &date, &date_format)?;
- //
- // //写一些链接。
- // worksheet.write(7, 0, Url::new("https://www.rust-lang.org"))?;
- // worksheet.write(8, 0, Url::new("https://www.rust-lang.org").set_text("Rust"))?;
- // 写入一些合并的单元格。
- // worksheet.merge_range(9, 0, 9, 1, "Merged cells", &merge_format)?;
- // Insert an image.
- // let image = Image::new("examples/rust_logo.png")?;
- // worksheet.insert_image(1, 2, &image)?;
- // 生成文件
- let path = format!("./{}.xlsx", file_name);
- workbook.save(path)?;
- Ok(())
- }
|