#workbook #file #dataframe #excel2df #45

bin+lib excel2df

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

6 releases

new 0.1.5 Apr 21, 2025
0.1.4 Apr 18, 2025

#138 in Database implementations

Download history 219/week @ 2025-04-09 340/week @ 2025-04-16

559 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.

v0.1.5: suports rust 2021+,and polars 0.45

Examples

Single thread to read excel file

use excel2df::Workbook;

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

Multi threads 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