use chrono::Local; use simple_excel_writer::*; use uuid::Uuid; pub fn export_excel(header_array: Vec<&str>, data: Vec>, prefix_name: &str) -> String { //本地存储路径 let save_path = "C:/Users/Public/Documents/"; let _ = std::fs::create_dir(format!("{}rust_export/", save_path)); // 当前时间 let date = Local::now().format("%Y-%m-%d").to_string(); let uid = Uuid::new_v4().to_string()[0..8].to_string(); let name = if prefix_name == "" { "".to_string() } else { format!("{}_", prefix_name) }; let file_name = format!("{}rust_export/{}{}_{}.xlsx", save_path, name, date, uid); let mut wb = Workbook::create(&file_name); let mut sheet = wb.create_sheet("sheet1"); // 设置行宽 for _ in 0..header_array.len() { sheet.add_column(Column { width: 30.0 }); } wb.write_sheet(&mut sheet, |sheet_writer| { let sw = sheet_writer; let mut header_row = Row::new(); for value in header_array.clone() { header_row.add_cell(value); } sw.append_row(header_row).expect(format!("创建excel标题错误!header:{:?}", header_array).as_str()); for cell in data.clone() { let mut data_row = Row::new(); for value in cell.clone() { data_row.add_cell(value); } sw.append_row(data_row).expect(format!("添加excel数据错误!cell:{:?}", cell).as_str()); } sw.append_row(Default::default()) }).expect("写入excel错误!"); wb.close().expect("关闭excel错误!"); file_name }