feat(export): support multi-result xlsx export
This commit is contained in:
1 parent
1a5e2d6247
commit
954dba1e13
17 files changed
+477
-51
No files matched your search
@@ -1,4 +1,4 @@
|
||||
use dbx_core::xlsx_export::{build_xlsx_workbook, XlsxWorksheetData};
|
||||
use dbx_core::xlsx_export::{build_xlsx_workbook, build_xlsx_workbook_multi, XlsxWorksheetData};
|
||||
use serde::Deserialize;
|
||||
use serde_json::Value;
|
||||
|
||||
@@ -11,6 +11,13 @@ pub struct QueryResultXlsxExportRequest {
|
||||
pub rows: Vec<Vec<Value>>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Deserialize)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct QueryResultsXlsxExportRequest {
|
||||
pub file_path: String,
|
||||
pub worksheets: Vec<XlsxWorksheetData>,
|
||||
}
|
||||
|
||||
#[tauri::command]
|
||||
pub async fn export_query_result_xlsx(request: QueryResultXlsxExportRequest) -> Result<(), String> {
|
||||
tauri::async_runtime::spawn_blocking(move || {
|
||||
@@ -24,3 +31,13 @@ pub async fn export_query_result_xlsx(request: QueryResultXlsxExportRequest) ->
|
||||
.await
|
||||
.map_err(|err| err.to_string())?
|
||||
}
|
||||
|
||||
#[tauri::command]
|
||||
pub async fn export_query_results_xlsx(request: QueryResultsXlsxExportRequest) -> Result<(), String> {
|
||||
tauri::async_runtime::spawn_blocking(move || {
|
||||
let workbook = build_xlsx_workbook_multi(&request.worksheets)?;
|
||||
std::fs::write(&request.file_path, workbook).map_err(|err| err.to_string())
|
||||
})
|
||||
.await
|
||||
.map_err(|err| err.to_string())?
|
||||
}
|
||||
Reference in new issue
Block a user