Improve generated Excel file
This commit is contained in:
parent
b16a716c6c
commit
68bc15cccc
@ -16,7 +16,7 @@ use crate::services::{accounts_service, files_service, movements_service};
|
|||||||
use crate::utils::time_utils::{format_date, time};
|
use crate::utils::time_utils::{format_date, time};
|
||||||
use actix_files::NamedFile;
|
use actix_files::NamedFile;
|
||||||
use actix_web::{HttpRequest, HttpResponse};
|
use actix_web::{HttpRequest, HttpResponse};
|
||||||
use rust_xlsxwriter::{Color, Format, Workbook};
|
use rust_xlsxwriter::{Color, Format, Formula, Table, Workbook};
|
||||||
use serde::Serialize;
|
use serde::Serialize;
|
||||||
use serde::de::DeserializeOwned;
|
use serde::de::DeserializeOwned;
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
@ -290,6 +290,23 @@ pub async fn xslx_export(auth: AuthExtractor) -> HttpResult {
|
|||||||
worksheet.write(idx as u32 + 1, 1, &movement.label)?;
|
worksheet.write(idx as u32 + 1, 1, &movement.label)?;
|
||||||
worksheet.write(idx as u32 + 1, 2, movement.amount)?;
|
worksheet.write(idx as u32 + 1, 2, movement.amount)?;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Create table
|
||||||
|
let table = Table::new();
|
||||||
|
worksheet.add_table(0, 0, movements.len() as u32, 2, &table)?;
|
||||||
|
|
||||||
|
// Add total
|
||||||
|
worksheet.write_with_format(5, 5, "Total", &header_format)?;
|
||||||
|
worksheet.write_formula(
|
||||||
|
6,
|
||||||
|
5,
|
||||||
|
Formula::new(format!("SUM(C1,C{})", movements.len())).set_result(
|
||||||
|
movements
|
||||||
|
.iter()
|
||||||
|
.fold(0f32, |acc, m| acc + m.amount)
|
||||||
|
.to_string(),
|
||||||
|
),
|
||||||
|
)?;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Save final Excel Document
|
// Save final Excel Document
|
||||||
|
Loading…
x
Reference in New Issue
Block a user