7 个版本 (破坏性更新)
0.7.0 | 2024年2月25日 |
---|---|
0.6.0 | 2024年1月24日 |
0.5.0 | 2024年1月15日 |
0.4.0 | 2023年11月22日 |
0.1.0 | 2023年8月20日 |
#879 在 编码
每月436 次下载
85KB
364 行
polars_excel_writer
polars_excel_writer
crate 是一个库,用于将 Polars 数据帧序列化为 Excel Xlsx 文件。
它为将数据帧写入 Excel Xlsx 文件提供了两个接口
-
ExcelWriter
一个简单的 Excel 序列化器,实现了 Polars 的SerWriter
特性,用于将数据帧写入 Excel Xlsx 文件。 -
PolarsXlsxWriter
一个更可配置的 Excel 序列化器,其接口更接近 Polars 的write_excel()
数据帧方法。
ExcelWriter
使用 PolarsXlsxWriter
进行 Excel 序列化,而 PolarsXlsxWriter
则使用 rust_xlsxwriter
crate。
示例
使用 ExcelWriter
接口将 Polar Rust 数据帧写入 Excel 文件的示例。
use chrono::prelude::*;
use polars::prelude::*;
fn main() {
// Create a sample dataframe for the example.
let mut 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(),
],
)
.unwrap();
example1(&mut df).unwrap();
example2(&df).unwrap();
}
// The ExcelWriter interface.
use polars_excel_writer::ExcelWriter;
fn example1(df: &mut DataFrame) -> PolarsResult<()> {
let mut file = std::fs::File::create("dataframe.xlsx").unwrap();
ExcelWriter::new(&mut file).finish(df)
}
// The PolarsXlsxWriter interface. For this simple case it is
// similar to the ExcelWriter interface but it has additional
// options to support more complex use cases.
use polars_excel_writer::PolarsXlsxWriter;
fn example2(df: &DataFrame) -> PolarsResult<()> {
let mut xlsx_writer = PolarsXlsxWriter::new();
xlsx_writer.write_dataframe(df)?;
xlsx_writer.save("dataframe2.xlsx")?;
Ok(())
}
第二个输出文件(与第一个相同)
另请参阅
依赖项
~21–31MB
~481K SLoC