|
|
@@ -0,0 +1,41 @@
|
|
|
+use chrono::Local;
|
|
|
+use simple_excel_writer::*;
|
|
|
+use uuid::Uuid;
|
|
|
+
|
|
|
+pub fn export_excel(header_array: Vec<&str>, data: Vec<Vec<&str>>, prefix_name: &str) -> String {
|
|
|
+ //本地存储路径
|
|
|
+ let save_path = "C:/Users/Public/Documents/";
|
|
|
+ //文件代理路径
|
|
|
+ let url_path = "http://127.0.0.1/";
|
|
|
+ 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 url_name = format!("{}rust_export/{}{}_{}.xlsx", url_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错误!");
|
|
|
+ url_name
|
|
|
+}
|