umya-spreadsheet is a library written in pure Rust and read and write xlsx file.
| Function | Remarks | | --- | --- | | file | read, lazy_read, write | | cell value | read, edit, formated value. | | cell style | read, edit | | columns | read, edit, auto width | | charts | detail to # Supported chart types | | drawings | read, edit(Still might be inconvenient.) | | images | read, edit(Still might be inconvenient.) | | ole objects | read, edit(Still might be inconvenient.) |
```rust extern crate umya_spreadsheet;
// reader let path = std::path::Path::new("C:/spreadtestdata/aaa.xlsx"); let mut book = umyaspreadsheet::reader::xlsx::read(path).unwrap(); // or // lazy reader // Delays the loading of the worksheet until it is needed. // When loading a file with a large amount of data, response improvement can be expected. let path = std::path::Path::new("C:/spreadtestdata/aaa.xlsx"); let mut book = umyaspreadsheet::reader::xlsx::lazyread(path).unwrap(); // or // new file let mut book = umyaspreadsheet::new_file(); ```
```rust extern crate umya_spreadsheet;
let mut book = umyaspreadsheet::newfile();
// new worksheet let _ = book.new_sheet("Sheet2"); ```
```rust extern crate umyaspreadsheet; let mut book = umyaspreadsheet::new_file();
let mut clonesheet = book.getsheet(0).unwrap().clone(); clonesheet.settitle("New Sheet"); let _ = book.addsheet(clonesheet); ```
```rust extern crate umya_spreadsheet;
let mut book = umyaspreadsheet::newfile(); let _ = book.new_sheet("Sheet2");
// change value book.getsheetbynamemut("Sheet2").unwrap().getcellmut("A1").setvalue("TEST1"); book.getsheetbynamemut("Sheet2").unwrap().getcellmut("B2").setvaluefromi32(1); book.getsheetbynamemut("Sheet2").unwrap().getcellmut("C3").setvaluefrombool(true); // or book.getsheetmut(1).getcellbycolumnandrowmut(1, 1).setvalue("TEST1"); book.getsheetmut(1).getcellbycolumnandrowmut(2, 2).setvaluefromi32(1); book.getsheetmut(1).getcellbycolumnandrowmut(3, 3).setvaluefrombool(true); ```
```rust extern crate umya_spreadsheet;
let mut book = umyaspreadsheet::newfile(); let _ = book.new_sheet("Sheet2");
// read value let a1value = book.getsheetbyname("Sheet2").unwrap().getvalue("A1"); // or let a1value = book.getsheet(1).unwrap().getvaluebycolumnandrow(1, 1); // or formatted value let a1value = book.getsheet(0).unwrap().getformattedvalue("A1"); asserteq!("TEST1", a1value); // TEST1 ```
```rust extern crate umya_spreadsheet;
let mut book = umyaspreadsheet::newfile(); let _ = book.new_sheet("Sheet2");
// add bottom border book.getsheetbynamemut("Sheet2").unwrap() .getstylemut("A1") .getbordersmut() .getbottommut() .setborderstyle(umyaspreadsheet::Border::BORDERMEDIUM); // or book.getsheetmut(1) .getstylebycolumnandrowmut(1, 1) .getbordersmut() .getbottommut() .setborderstyle(umyaspreadsheet::Border::BORDERMEDIUM); ```
```rust
extern crate umya_spreadsheet;
let mut book = umyaspreadsheet::newfile();
// insert rows book.insertnewrow("Sheet1", 2, 3);
// insert columns book.insertnewcolmun("Sheet1", "B", 3); // or book.insertnewcolmunbyindex("Sheet1", 2, 3);
// remove rows book.remove_row("Sheet1", 6, 2);
// remove columns book.removecolmun("Sheet1", "F", 2); // or book.removecolmunbyindex("Sheet1", 6, 2); ```
```rust extern crate umya_spreadsheet;
let mut book = umyaspreadsheet::newfile(); let _ = book.new_sheet("Sheet2");
// writer let path = std::path::Path::new("C:/spreadtestdata/bbb.xlsx"); let _ = umya_spreadsheet::writer::xlsx::write(&book, path); ```
Other types will be supported sequentially.
```rust
extern crate umya_spreadsheet;
let mut book = umyaspreadsheet::newfile();
// add chart let mut frommarker = umyaspreadsheet::structs::drawing::spreadsheet::MarkerType::default(); let mut tomarker = umyaspreadsheet::structs::drawing::spreadsheet::MarkerType::default(); frommarker.setcoordinate("C1"); tomarker.setcoordinate("D11"); let areachartserieslist = vec![ "Sheet1!$A$1:$A$10", "Sheet1!$B$1:$B$10", ]; let mut chart = umyaspreadsheet::structs::Chart::default(); chart.newchart( umyaspreadsheet::structs::ChartType::LineChart, frommarker, tomarker, areachartserieslist, ); book.getsheetbynamemut("Sheet1").unwrap().getworksheetdrawingmut().addchartcollection(chart); ```
MIT