All Projects → MathNya → umya-spreadsheet

MathNya / umya-spreadsheet

Licence: MIT license
A pure rust library for reading and writing spreadsheet files

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to umya-spreadsheet

easy-excel
🚀 快速读写Excel文件,简单高效
Stars: ✭ 118 (+49.37%)
Mutual labels:  excel, xlsx, spreadsheet
xltpl
A python module to generate xls/x files from a xls/x template.
Stars: ✭ 46 (-41.77%)
Mutual labels:  excel, xlsx, spreadsheet
Excelize
Golang library for reading and writing Microsoft Excel™ (XLSX) files.
Stars: ✭ 10,286 (+12920.25%)
Mutual labels:  excel, xlsx, spreadsheet
Desktopeditors
An office suite that combines text, spreadsheet and presentation editors allowing to create, view and edit local documents
Stars: ✭ 1,008 (+1175.95%)
Mutual labels:  excel, xlsx, spreadsheet
fxl
fxl is a Clojure spreadsheet library
Stars: ✭ 117 (+48.1%)
Mutual labels:  excel, xlsx, spreadsheet
Documentbuilder
ONLYOFFICE Document Builder is powerful text, spreadsheet, presentation and PDF generating tool
Stars: ✭ 61 (-22.78%)
Mutual labels:  excel, xlsx, spreadsheet
Xlsx
Fast and reliable way to work with Microsoft Excel™ [xlsx] files in Golang
Stars: ✭ 132 (+67.09%)
Mutual labels:  excel, xlsx, spreadsheet
Readxl
Read excel files (.xls and .xlsx) into R 🖇
Stars: ✭ 585 (+640.51%)
Mutual labels:  excel, xlsx, spreadsheet
Dexiom.EPPlusExporter
A very simple, yet incredibly powerfull library to generate Excel documents out of objects, arrays, lists, collections, etc.
Stars: ✭ 19 (-75.95%)
Mutual labels:  excel, xlsx, spreadsheet
Documentserver
ONLYOFFICE Document Server is an online office suite comprising viewers and editors for texts, spreadsheets and presentations, fully compatible with Office Open XML formats: .docx, .xlsx, .pptx and enabling collaborative editing in real time.
Stars: ✭ 2,335 (+2855.7%)
Mutual labels:  excel, xlsx, spreadsheet
Luckysheet
Luckysheet is an online spreadsheet like excel that is powerful, simple to configure, and completely open source.
Stars: ✭ 9,772 (+12269.62%)
Mutual labels:  excel, xlsx, spreadsheet
spreadsheet
Yii2 extension for export to Excel
Stars: ✭ 79 (+0%)
Mutual labels:  excel, xlsx, spreadsheet
Xlnt
📊 Cross-platform user-friendly xlsx library for C++11+
Stars: ✭ 876 (+1008.86%)
Mutual labels:  excel, xlsx, spreadsheet
xlsx-reader
xlsx-reader is a PHP library for fast and efficient reading of XLSX spreadsheet files. Its focus is on reading the data contained within XLSX files, disregarding all document styling beyond that which is strictly necessary for data type recognition. It is built to be usable for very big XLSX files in the magnitude of multiple GBs.
Stars: ✭ 40 (-49.37%)
Mutual labels:  excel, xlsx, spreadsheet
Sheetjs
📗 SheetJS Community Edition -- Spreadsheet Data Toolkit
Stars: ✭ 28,479 (+35949.37%)
Mutual labels:  excel, xlsx, spreadsheet
Phpspreadsheet
A pure PHP library for reading and writing spreadsheet files
Stars: ✭ 10,627 (+13351.9%)
Mutual labels:  excel, xlsx, spreadsheet
Docjure
Read and write Office documents from Clojure
Stars: ✭ 510 (+545.57%)
Mutual labels:  excel, xlsx, spreadsheet
Reogrid
Fast and powerful .NET spreadsheet component, support data format, freeze, outline, formula calculation, chart, script execution and etc. Compatible with Excel 2007 (.xlsx) format and working on .NET 3.5 (or client profile), WPF and Android platform.
Stars: ✭ 532 (+573.42%)
Mutual labels:  excel, xlsx, spreadsheet
Test files
📚 SheetJS Test Files (XLS/XLSX/XLSB and other spreadsheet formats)
Stars: ✭ 150 (+89.87%)
Mutual labels:  excel, xlsx, spreadsheet
spreadcheetah
SpreadCheetah is a high-performance .NET library for generating spreadsheet (Microsoft Excel XLSX) files.
Stars: ✭ 107 (+35.44%)
Mutual labels:  excel, xlsx, spreadsheet

umya-spreadsheet

Crates.io Crates.io Join the chat at https://gitter.im/MathNya/umya-spreadsheet

Description

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

Chatting

Please use Gitter for brief chats.

New feature

ver 0.8.0

A password can now be set when saving a file.

let path = std::path::Path::new("./tests/result_files/bbb.xlsx");
let _ = umya_spreadsheet::writer::xlsx::write_with_password(&book, path, "password");
let from_path = std::path::Path::new("./tests/test_files/aaa.xlsx");
let to_path = std::path::Path::new("./tests/result_files/bbb.xlsx");
let _ = umya_spreadsheet::writer::xlsx::set_password(&from_path, &to_path, "password");

Usage

Installation

Add the following code to Cargo.toml

[dependencies]
umya-spreadsheet = "0.8"

Add the following code to main.rs

extern crate umya_spreadsheet;

Read file

let path = std::path::Path::new("./tests/test_files/aaa.xlsx");
let mut book = umya_spreadsheet::reader::xlsx::read(path).unwrap();

Read file (Lazy)

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("./tests/test_files/aaa.xlsx");
let mut book = umya_spreadsheet::reader::xlsx::lazy_read(path).unwrap();

New file

let mut book = umya_spreadsheet::new_file();

Wite file

let path = std::path::Path::new("./tests/result_files/bbb.xlsx");
let _ = umya_spreadsheet::writer::xlsx::write(&book, path);

Wite file with password

let path = std::path::Path::new("./tests/result_files/bbb.xlsx");
let _ = umya_spreadsheet::writer::xlsx::write_with_password(&book, path, "password");
let from_path = std::path::Path::new("./tests/test_files/aaa.xlsx");
let to_path = std::path::Path::new("./tests/result_files/bbb.xlsx");
let _ = umya_spreadsheet::writer::xlsx::set_password(&from_path, &to_path, "password");

Change Value

let mut book = umya_spreadsheet::new_file();
let _ = book.new_sheet("Sheet2");
book.get_sheet_by_name_mut("Sheet2").unwrap().get_cell_mut("A1").set_value("TEST1");

Change Style

let mut book = umya_spreadsheet::new_file();
let mut style = book.get_sheet_by_name_mut("Sheet1").unwrap().get_style_mut("A1");
// fill color on red.
style.set_background_color(umya_spreadsheet::Color::COLOR_RED);

New Chart

let mut book = umya_spreadsheet::new_file();
// Add Chart
let mut from_marker = umya_spreadsheet::structs::drawing::spreadsheet::MarkerType::default();
from_marker.set_coordinate("C1");
let mut to_marker = umya_spreadsheet::structs::drawing::spreadsheet::MarkerType::default();
to_marker.set_coordinate("D11");
let area_chart_series_list = vec![
    "Sheet1!$A$1:$A$10",
    "Sheet1!$B$1:$B$10",
];
let mut chart = umya_spreadsheet::structs::Chart::default();
chart.new_chart(
    umya_spreadsheet::structs::ChartType::LineChart,
    from_marker,
    to_marker,
    area_chart_series_list,
);
book.get_sheet_by_name_mut("Sheet1").unwrap()
    .add_chart(chart);

See the next chapter for implementation status and more detailed usage.

Support Status

Function detail example
file reader xlsx, xlsm here.
file lazy_reader xlsx, xlsm here.
file writer xlsx, xlsm here.
csv here.
file writer with password xlsx, xlsm here.
worksheet read, new, copy here.
cell value read, edit, formated value. here.
cell style read, edit here.
columns read, edit, auto width
rows read, edit
charts read, edit here.
drawings read, edit(Still might be inconvenient.)
images read, edit here.
ole objects read, edit(Still might be inconvenient.)

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].