polars_excel_writer
The polars_excel_writer
crate is a library for serializing Polars dataframes
to Excel Xlsx files.
It provides a primary interface PolarsXlsxWriter
which is a configurable
Excel serializer that resembles the interface options provided by the Polars
write_excel()
dataframe method.
It also provides a secondary ExcelWriter
interface which is a simpler
Excel serializer that implements the Polars SerWriter
trait to write a
dataframe to an Excel Xlsx file. However, unless you have existing code that
uses the SerWriter
trait you should use the PolarsXlsxWriter
interface.
Unless you have existing code that uses the Polars SerWriter
trait you
should use the primary PolarsXlsxWriter
interface.
This crate uses rust_xlsxwriter
to do the Excel serialization.
Example
An example of writing a Polar Rust dataframe to an Excel file using the
PolarsXlsxWriter
interface.
use chrono::prelude::*;
use polars::prelude::*;
use polars_excel_writer::PolarsXlsxWriter;
fn main() -> PolarsResult<()> {
let df: DataFrame = df!(
"String" => &["North", "South", "East", "West"],
"Integer" => &[1, 2, 3, 4],
"Float" => &[4.0, 5.0, 6.0, 7.0],
"Time" => &[
NaiveTime::from_hms_milli_opt(2, 59, 3, 456).unwrap(),
NaiveTime::from_hms_milli_opt(2, 59, 3, 456).unwrap(),
NaiveTime::from_hms_milli_opt(2, 59, 3, 456).unwrap(),
NaiveTime::from_hms_milli_opt(2, 59, 3, 456).unwrap(),
],
"Date" => &[
NaiveDate::from_ymd_opt(2022, 1, 1).unwrap(),
NaiveDate::from_ymd_opt(2022, 1, 2).unwrap(),
NaiveDate::from_ymd_opt(2022, 1, 3).unwrap(),
NaiveDate::from_ymd_opt(2022, 1, 4).unwrap(),
],
"Datetime" => &[
NaiveDate::from_ymd_opt(2022, 1, 1).unwrap().and_hms_opt(1, 0, 0).unwrap(),
NaiveDate::from_ymd_opt(2022, 1, 2).unwrap().and_hms_opt(2, 0, 0).unwrap(),
NaiveDate::from_ymd_opt(2022, 1, 3).unwrap().and_hms_opt(3, 0, 0).unwrap(),
NaiveDate::from_ymd_opt(2022, 1, 4).unwrap().and_hms_opt(4, 0, 0).unwrap(),
],
)?;
let mut xlsx_writer = PolarsXlsxWriter::new();
xlsx_writer.write_dataframe(&df)?;
xlsx_writer.save("dataframe.xlsx")?;
Ok(())
}
Output file:
See also
- Changelog: Recent additions and fixes.
- Performance: Performance comparison with Python based methods.