UPDATE: Adds python bindings (#90)
* UPDATE: Adds python bindings Exclude pyroncalc and wasm from test coverage
This commit is contained in:
committed by
GitHub
parent
00b5b65588
commit
11df4a55c7
@@ -22,5 +22,5 @@ fn main() {
|
||||
let base_name = file_path.file_stem().unwrap().to_str().unwrap();
|
||||
let output_file_name = &format!("{base_name}.ic");
|
||||
let model = load_from_xlsx(file_name, "en", "UTC").unwrap();
|
||||
save_to_icalc(model.workbook, output_file_name);
|
||||
save_to_icalc(&model, output_file_name).unwrap();
|
||||
}
|
||||
|
||||
@@ -107,7 +107,7 @@ pub fn save_xlsx_to_writer<W: Write + Seek>(model: &Model, writer: W) -> Result<
|
||||
zip.add_directory("xl/worksheets", options)?;
|
||||
for (sheet_index, worksheet) in workbook.worksheets.iter().enumerate() {
|
||||
let id = sheet_index + 1;
|
||||
zip.start_file(&format!("xl/worksheets/sheet{id}.xml"), options)?;
|
||||
zip.start_file(format!("xl/worksheets/sheet{id}.xml"), options)?;
|
||||
let dimension = model
|
||||
.workbook
|
||||
.worksheet(sheet_index as u32)
|
||||
@@ -134,10 +134,15 @@ pub fn save_xlsx_to_writer<W: Write + Seek>(model: &Model, writer: W) -> Result<
|
||||
Ok(writer)
|
||||
}
|
||||
|
||||
/// Exports an internal representation of a workbook into an equivalent IronCalc json format
|
||||
pub fn save_to_icalc(workbook: Workbook, output: &str) {
|
||||
let s = bitcode::encode(&workbook);
|
||||
let file_path = std::path::Path::new(output);
|
||||
let mut file = fs::File::create(file_path).unwrap();
|
||||
file.write_all(&s).unwrap();
|
||||
/// Exports a model to an icalc file
|
||||
pub fn save_to_icalc(model: &Model, file_name: &str) -> Result<(), XlsxError> {
|
||||
let file_path = std::path::Path::new(&file_name);
|
||||
if file_path.exists() {
|
||||
return Err(XlsxError::IO(format!("file {} already exists", file_name)));
|
||||
}
|
||||
let s = bitcode::encode(&model.workbook);
|
||||
let mut file = fs::File::create(file_path)?;
|
||||
file.write_all(&s)?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
@@ -64,7 +64,7 @@ fn test_values() {
|
||||
}
|
||||
{
|
||||
let temp_file_name = "temp_file_test_values.ic";
|
||||
save_to_icalc(model.workbook, temp_file_name);
|
||||
save_to_icalc(&model, temp_file_name).unwrap();
|
||||
|
||||
let model = load_from_icalc(temp_file_name).unwrap();
|
||||
assert_eq!(model.get_formatted_cell_value(0, 1, 1).unwrap(), "123.456");
|
||||
|
||||
Reference in New Issue
Block a user