umya-spreadsheet

Crates.io Crates.io

Description

umya-spreadsheet is a library written in pure Rust and read and write xlsx file.

Support Status

| Function | Remarks | | --- | --- | | file | 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.) |

Example

Result Image

Reader or New File

```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 // new file let mut book = umyaspreadsheet::new_file(); ```

New worksheet

```rust extern crate umya_spreadsheet;

let mut book = umyaspreadsheet::newfile();

// new worksheet let _ = book.new_sheet("Sheet2"); ```

Copy worksheet

```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); ```

Change value

```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); ```

Read value

```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 ```

Change style

```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); ```

Insert or Remove Rows(or Columns)

Result Image ```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); ```

Writer

```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); ```

Supported chart types

Other types will be supported sequentially.

Add Chart

Result Image ```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); ```

License

MIT