Crates.io | polars_excel_writer |
lib.rs | polars_excel_writer |
version | |
source | src |
created_at | 2023-08-20 14:40:33.459217 |
updated_at | 2025-01-18 16:23:48.714639 |
description | A Polars extension to serialize dataframes to Excel xlsx files |
homepage | |
repository | https://github.com/jmcnamara/polars_excel_writer |
max_upload_size | |
id | 949405 |
Cargo.toml error: | TOML parse error at line 18, column 1 | 18 | autolib = false | ^^^^^^^ unknown field `autolib`, expected one of `name`, `version`, `edition`, `authors`, `description`, `readme`, `license`, `repository`, `homepage`, `documentation`, `build`, `resolver`, `links`, `default-run`, `default_dash_run`, `rust-version`, `rust_dash_version`, `rust_version`, `license-file`, `license_dash_file`, `license_file`, `licenseFile`, `license_capital_file`, `forced-target`, `forced_dash_target`, `autobins`, `autotests`, `autoexamples`, `autobenches`, `publish`, `metadata`, `keywords`, `categories`, `exclude`, `include` |
size | 0 |
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.
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<()> {
// Create a sample dataframe for the example.
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(),
],
)?;
// Create a new Excel writer.
let mut xlsx_writer = PolarsXlsxWriter::new();
// Write the dataframe to Excel.
xlsx_writer.write_dataframe(&df)?;
// Save the file to disk.
xlsx_writer.save("dataframe.xlsx")?;
Ok(())
}
Output file: