| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- 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
- }
- pub fn export_excel_sheets(header_array: Vec<Vec<&str>>, data: Vec<Vec<Vec<String>>>, sheet_name: Vec<&str>, 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);
- if header_array.len() != data.len() { return "表头和数据数量有误,请检查后再试!".to_string(); }
- for (index, headers) in header_array.iter().enumerate() {
- let mut sheet = wb.create_sheet(sheet_name[index]);
- // 设置行宽
- for _ in 0..headers.len() {
- sheet.add_column(Column { width: 20.0 });
- }
- wb.write_sheet(&mut sheet, |sheet_writer| {
- let sw = sheet_writer;
- let mut header_row = Row::new();
- for value in headers.clone() {
- header_row.add_cell(value);
- }
- sw.append_row(header_row).expect(format!("创建excel标题错误!header:{:?}", header_array).as_str());
- for cell in data[index].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
- }
|