Improve generated Excel file
This commit is contained in:
		@@ -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
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user