#workbook #file #dataframe #excel2df

bin+lib excel2df

A library for converting Excel files to Polars DataFrame.It supports multiple threads to improve performance

5 releases

Uses new Rust 2024

new 0.1.4 Apr 18, 2025
0.1.3 Apr 16, 2025
0.1.2 Apr 15, 2025
0.1.1 Apr 14, 2025
0.1.0 Apr 14, 2025

#98 in Database implementations

Download history 357/week @ 2025-04-11

357 downloads per month

MIT license

53KB
1K SLoC

excel2df

A library for converting Excel files to Polars DataFrame

excel2df is a pure Rust library to read excel files(.xlsx) in to Polars DataFrame.

Now it(V0.1.2) supports multi_threads to read excel files. It can save more time (Almost 40%). It supports multi threads to read shared_strings in v0.1.3. It can save extral 10% time. v0.1.4 : has fixed bugs for some different excel files.

Examples

Single thread to read excel file

use excel2df::Workbook;

let wb = Workbook::open("./test.xlsx").unwrap();
let range = wb.get_sheet_range("Sheet1");
let df = range.to_dataframe(0);
println!("{:?}", df);

Multi thread to read excel file

fn main(){
    let mut wb = Workbook::new("./sale.xlsx").unwrap();
    wb.set_threads_num(6);//set threads num

    let start = Instant::now(); 
    let range = wb.get_sheet_range2("Sheet1");
    let df = range.to_dataframe(10);

    let duration = start.elapsed();
    println!("Runing time: {:?}", duration);
    println!("Runing: {} miliSeconds", duration.as_millis());
    println!("{:?}",df)
}

Dependencies

~21–30MB
~474K SLoC