| 1234567891011121314151617181920212223242526272829303132333435363738 |
- use chrono::Local;
- use simple_excel_writer::*;
- use uuid::Uuid;
- pub fn export_excel(header_array: Vec<&str>, data: Vec<Vec<String>>, 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
- }
|