adding merge cell logic processing
formatting commit addressing testcase failures adding one more scenario to case adding one more scenario to case Adding update and unmerge functions for merge cell handling adding one more case to testcase adding testcases to base code adding testcase for import/export adding documentation to some of the PUB function fixing warnings and test warnings adding merge cell part cell update restriction to public sytle set fns addressing reviwers comment : Changed Mergedcell structure and its side effercts reverting it back to non pub. renaming update_merge_cells to just merge_cells in model renaming *unmerge_merged_cell* to *unmerge_cells* addressing other reviewer's comment + cosmetica naming adjustments cosmetic changes
This commit is contained in:
committed by
Nicolás Hatcher
parent
3270d587ac
commit
e7858f7aa9
BIN
xlsx/tests/Merged_cells.xlsx
Normal file
BIN
xlsx/tests/Merged_cells.xlsx
Normal file
Binary file not shown.
Binary file not shown.
@@ -406,7 +406,7 @@ fn test_exporting_merged_cells() {
|
||||
.worksheets
|
||||
.first()
|
||||
.unwrap()
|
||||
.merge_cells
|
||||
.merged_cells_list
|
||||
.clone();
|
||||
// exporting and saving it in another xlsx
|
||||
model.evaluate();
|
||||
@@ -423,7 +423,7 @@ fn test_exporting_merged_cells() {
|
||||
.worksheets
|
||||
.first()
|
||||
.unwrap()
|
||||
.merge_cells
|
||||
.merged_cells_list
|
||||
.clone();
|
||||
assert_eq!(expected_merge_cell_ref, *got_merge_cell_ref);
|
||||
fs::remove_file(temp_file_name).unwrap();
|
||||
@@ -437,7 +437,7 @@ fn test_exporting_merged_cells() {
|
||||
.worksheets
|
||||
.get_mut(0)
|
||||
.unwrap()
|
||||
.merge_cells
|
||||
.merged_cells_list
|
||||
.clear();
|
||||
|
||||
save_to_xlsx(&temp_model, temp_file_name).unwrap();
|
||||
@@ -447,7 +447,7 @@ fn test_exporting_merged_cells() {
|
||||
.worksheets
|
||||
.first()
|
||||
.unwrap()
|
||||
.merge_cells
|
||||
.merged_cells_list
|
||||
.len();
|
||||
assert!(*got_merge_cell_ref_cnt == 0);
|
||||
}
|
||||
@@ -494,3 +494,73 @@ fn test_documentation_xlsx() {
|
||||
}
|
||||
fs::remove_dir_all(&dir).unwrap();
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_merge_cell_import_export_behaviors() {
|
||||
// loading the xlsx file containing merged cells
|
||||
let example_file_name = "tests/Merged_cells.xlsx";
|
||||
let mut model = load_from_xlsx(example_file_name, "en", "UTC").unwrap();
|
||||
|
||||
// Case1 : To check whether Merge cells structures got imported properly or not
|
||||
let imported_merge_cell_vec = model.workbook.worksheet(0).unwrap().get_merged_cells_list();
|
||||
|
||||
assert_eq!(imported_merge_cell_vec.len(), 5);
|
||||
let range_refs_of_merge_cell: Vec<String> = imported_merge_cell_vec
|
||||
.iter()
|
||||
.map(|cell| cell.get_merged_cells_str_ref().unwrap())
|
||||
.collect();
|
||||
assert_eq!(
|
||||
range_refs_of_merge_cell,
|
||||
[
|
||||
"C1:D3".to_string(),
|
||||
"A1:B4".to_string(),
|
||||
"G1:H7".to_string(),
|
||||
"D8:E9".to_string(),
|
||||
"D4:F6".to_string()
|
||||
]
|
||||
);
|
||||
|
||||
// Create one More Merge cell which Overlaps with 3 More
|
||||
model.merge_cells(0, "A1:D5").unwrap();
|
||||
model
|
||||
.set_user_input(0, 1, 1, "New overlapped Merge cell".to_string())
|
||||
.unwrap();
|
||||
|
||||
let mut style = model.get_style_for_cell(0, 1, 1).unwrap();
|
||||
style.font.b = true;
|
||||
assert_eq!(
|
||||
model.workbook.styles.create_named_style("bold", &style),
|
||||
Ok(())
|
||||
);
|
||||
|
||||
model.set_cell_style_by_name(0, 1, 1, "bold").unwrap();
|
||||
|
||||
// Lets export to different Excell
|
||||
let exported_merge_cell_xlsx = "temporary_exported_mergecells.xlsx";
|
||||
save_to_xlsx(&model, exported_merge_cell_xlsx).unwrap();
|
||||
|
||||
{
|
||||
let temp_model = load_from_xlsx(exported_merge_cell_xlsx, "en", "UTC").unwrap();
|
||||
// Loading the exported sheet back and verifying whether it got exported properly or not
|
||||
let imported_merge_cell_vec = temp_model
|
||||
.workbook
|
||||
.worksheet(0)
|
||||
.unwrap()
|
||||
.get_merged_cells_list();
|
||||
|
||||
assert_eq!(imported_merge_cell_vec.len(), 3);
|
||||
let range_refs_of_merge_cell: Vec<String> = imported_merge_cell_vec
|
||||
.iter()
|
||||
.map(|cell| cell.get_merged_cells_str_ref().unwrap())
|
||||
.collect();
|
||||
assert_eq!(
|
||||
range_refs_of_merge_cell,
|
||||
[
|
||||
"G1:H7".to_string(),
|
||||
"D8:E9".to_string(),
|
||||
"A1:D5".to_string()
|
||||
]
|
||||
);
|
||||
}
|
||||
fs::remove_file(exported_merge_cell_xlsx).unwrap();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user