介绍一款Rust读取excel文件的库

Python高性能Excel解析:Calamine对比Openpyxl,Rust加速数据读取 在数据处理领域,Excel文件解析是数据提取与转换(ETL)流程中的基础环节。其核心原理在于解析文件内部结构(如.xlsx的ZIP压缩XML包),将单元格数据高效转换为程序可处理的对象。传统纯Python库(如openpyxl)因构建完整对象模型,在处理大型文件时面临内存占用高、读取速度慢的瓶颈,影响数据流水线效率。借助Rust语言零成本抽象与内存安全的特性,高性能解析库calamine通过Python绑定(python-calamine)实现了底层解析加速,特别适用于需要快速将海量Excel数据导入pan 阅读详情
AI摘要

文章介绍了在Rust语言中使用ooxml库(版本0.2.7)来读取和处理Excel文件的示例,展示了如何打开文件、获取工作簿和工作表数据。

Rust是一款新型的、主打安全的语言。但是,百度上搜索读取excel的库还很难找。不过,我找到了一款,推荐给大家:ooxml, 当前版本0.2.7.

这是依赖:

[dependencies]
ooxml = "0.2.7"
itertools = "0.11.0"

具体代码如下:

use ooxml::document::SpreadsheetDocument;

fn main() {

    let filename = "F:/programWorks/Java/demo4cupdata/demoB.xlsx";
    let xlsx =
        SpreadsheetDocument::open(filename).unwrap();

    let workbook = xlsx.get_workbook();
    // println!("我能自己输出点什么吗?{:?}", xlsx);

    let sheet_names = workbook.worksheet_names();
    println!("包含:");
    for name in sheet_names {
        println!("{}", name);
    }

    for (sheet_idx, sheet) in workbook.worksheets().iter().enumerate() {
        println!("worksheet {}", sheet_idx);
        println!("worksheet dimension: {:?}", sheet.dimenstion());
        println!("---------DATA---------");
        for rows in sheet.rows() {
            // get cell values
            let cols: Vec<_> = rows
                .into_iter()
                .map(|cell| cell.value().unwrap_or_default())
                .collect();
            println!("{}", itertools::join(&cols, ","));

            for cell in cols {
                println!("{}", cell);
            }
        }
    }
}

亲测可用。

<Zhuuu_ZZ>HIVE(十一)函数 Hive内置函数一 Hive函数分类二 字符函数二 类型转换函数和数学函数三 日期函数四 集合函数五 条件函数六 聚合函数和表生成函数6.1 聚合函数6.2 表生成函数:输出可以作为表使用 一 Hive函数分类 从输入输出角度分类 标准函数:一行数据中的一列或多列为输入,结果为单一值 聚合函数:多行的零列到多列为输入,结果为单一值 表生成函数:零个或多个输入,结果为多列或多行 从实现方式分类 内置函数 自定义函数 UDF:自定义标准函数 UDAF:自定义聚合函数 UDTF:自定义表生成函数 阅读详情

相关推荐

Python读取10万行Excel耗时对比:openpyxl、pandas与calamine实测

Excel是数据分析与业务系统中极常见的文件格式,但当数据量增长到数十万行时,读取耗时会成为开发与数据处理人员必须考虑的问题。以.xlsx为例,其内部是zip压缩包包裹的多个XML文件,解析过程涉及解压、XML读取与字符串映射,性能瓶颈常源于纯Python实现与底层库的差异。pandas作为数据分析主流入口,读取时需依赖底层引擎,openpyxl功能全面但内存占用高,while Rust开发的python-calamine则在解析效率上表现突出。理解不同方案的原理与适用边界,有助于在批量导入、爬虫后处理、后

weixin_33827590的博客 770

rust 文件读写操作

文章目录一、读取文件二、写入文件 一、读取文件 use std::fs::File; fn main() { let f = File::open("hello.txt").unwrap(); } 1、按字节读取 use std::fs::File; use std::io::prelude::*; fn main() { let mut f = File::open("/src/1.txt").unwrap(); let mut buf = vec![0; 8];

红叶谷 wsp_1138886114的博客 6811

Python读取xlsx文件:主流库对比与选型指南

在办公自动化和数据分析中,读取Excel文件是高频需求,而xlsx作为一种基于Office Open XML规范的压缩包格式,其解析方式直接影响性能与兼容性。理解xlsx内部由XML和zip构成,有助于区分不同Python库的底层实现差异,从而根据实际场景做出合理选型。例如openpyxl作为功能最全面的库,支持样式、图表等对象操作,适合保留格式的读写任务;pandas则借助openpyxl或calamine引擎,提供DataFrame级别的数据分析能力,适合统计汇总场景;而xlrd专注于旧版xls格式,x

weixin_33787529的博客 292

json转excel,读取json文件写入到excel中【rust语言】

【代码】json转excel,读取json文件写入到excel中【rust语言】

IT赵云的博客 831

Rust使用calamine读取excel文件,Rust使用rust_xlsxwriter写入excel文件

Rust使用calamine读取已存在的test.xlsx文件全部数据,还读取指定单元格数据;Rust使用rust_xlsxwriter创建新的output.xlsx文件,并写入数据到指定单元格,然后再保存工作簿。

星如雨落 4405

rust 导出 excel

导出excel功能是很常见的功能,读者可根据我的代码,自行修改成需要的内容。 引入依赖 [dependencies] # 用来生成新的文件名 uuid = {version= "0.7",features=["serde","v4"]} # 用于生成存储时的路径名 chrono = "*" # 导出excel关键依赖 simple_excel_writer = "0.1.7" 代码实现 返回url,前端通过请求获取到的url,来下载excel use uuid::Uuid; use chrono::pr

qq_43610686的博客 2679

rust calcmine读取excel

let mut workbook: Xlsx<_> = open_workbook(dest).expect("无法读取文件");("文件上传拷贝失败");("文件上传拷贝成功");match workbook.worksheet_range("员工") {// 将每一列的数据存入员工实体。//跳过第一行表头数据。//从req中获得上传的文件。//导入到具体的实体类。

Europeqqq的博客 1154

【Python办公】python中最快读取Excel库python-calamine(最快-没有之一)

Python Calamine是一个基于Rust开发的高性能Excel读取库,相比传统pandas具有3-10倍的读取速度和更低的内存占用。本文详细介绍了其单sheet和多sheet的读取方法,包括二进制模式文件读取、工作表获取方式、数据结构说明等。通过示例代码展示了如何高效处理大型Excel文件,包括数据去重、批量读取等常见办公场景操作。该库支持.xlsx、.xlsm、.xlsb等多种格式,是提升办公自动化效率的理想选择。

weixin_42636075的博客 524

探索高效数据处理:umya-spreadsheet - 纯Rust实现的Excel读写库

探索高效数据处理:umya-spreadsheet - 纯Rust实现的Excel读写库 项目地址:https://gitcode.com/gh_mirrors/um/umya-spreadsheet 在数据处理的世界里,高效和便捷总是关键要素,而umya-spreadsheet正是这样一款工具,它是一个纯Rust编写的库,能无缝地读取和写入xlsx文件。无论你是开发人员还是数据分析者,umya...

gitblog_00072的博客 1698

xlsxwriter-rs:用于Rust的Excel文件编写器

xlsxwriter-rs Rust绑定 支持的功能 100%兼容的Excel XLSX文件。 完整的Excel格式。 合并的单元格。 自动过滤器。 数据验证和下拉列表。 工作表PNG / JPEG图像。 即将推出 图表。 例子 let workbook = Workbook :: new ( "target/simple1.xlsx" ); let format1 = workbook. add_format (). set_font_color (FormatColor :: Red); let format2 = workbook . add_format () . set_font_color (FormatColor :: Blue) . set_underline (FormatUnderline :: Single); let form

xlrs:用Rust编写的Excel公式解析器

Excel公式计算引擎 语法参考 。 而且这种语法具有左递归。 我们用来消除它。 在制品

4秒读取50w行Excel数据

文章比较了几种常用的读取Excel的方法,最终发现rust库Calamine的速度最快,可以在4秒内读取50w行excel数据。

一只大鸽子的博客 6644

迪文串口屏开发环境搭建全流程:从DGUS Tool到串口联调

串口屏作为嵌入式人机交互的核心组件,通过串口通信实现主控MCU与显示终端的指令交互。其工作原理基于变量地址映射,主控读写VP地址即可驱动屏上控件,兼具低功耗与高稳定性。在工业控制、医疗设备及智能家居面板等场景中,串口屏能显著降低开发门槛与硬件成本。迪文屏凭借DGUS Tool上位机与自定义串口协议,成为主流选择。掌握DGUS Tool版本匹配、串口驱动安装及VP地址规划,是快速搭建开发环境的关键。

weixin_33937499的博客 609

Rust 生成 Excel:用 rust_xlsxwriter 从零写出 xlsx 文件

做报表导出的 Rust 服务或 CLI 工具,常常要交付一份 .xlsx 文件:跨语言调 Python 脚本太重,自己拼 XML 又极易出错。rust_xlsxwriter 是运行在 Rust 生态里的 Excel 生成库,直接在你的进程中创建 Excel 2007+ 格式的 xlsx 文件,写完即存盘,不引入额外运行时。 [![Rust 生成 Excel 示例:train.jpg 被插入到 x

gitblog_00016的博客 66

有限元缺陷:剪切锁死

有限元缺陷:剪切锁死

wsxww11的博客 5190

RK3588网卡出现丢包或者带宽不足的问题验证排查

注意除了有最大的TCP数据接收缓冲,还有/proc/sys/net/core/wmem_max — 最大的TCP数据发送缓冲可以调整,这里暂时没用到,针对具体需要可适当调整。比如把ethx接口中断从默认的cpu0迁移到其它cpu,例如将eth0中断234移到cpu7 (10是16进制, cpu0 =3588的cpu有8个核,4个A55(小核)+4个A76(大核),可以找到对应中断 将中断从默认cpu0核切到cpu7。tcp_rmem:单位是字节,接收缓存区大小,缓存从对端接收的数据,后续会被应用程序读取。

Android/Linux驱动开发传帮带学习,让驱动入门门槛更低! 2030

python读取excel表数据

python读取excel要看你的excel表文件的存储格式,一般需要先pip install xlrd安装xlrd库,如果你的表格拓展名为xlsx格式,解析表格应该会报Excel xlsx file; not supported的错误,这是因为默认安装的xlrd库是最新版的并不支持解析xlsx格式文件。可以执行 1.pip uninstall xlrd 2.pip install xlrd=1.2.0 (或者更早版本) 重新导入旧版本的xlrd库。 准备工作做好了,以下直接上示例代码: #引

康的博客 1351

【异常】Claude Code 400错误(Extra inputs are not permitted)解决方案

摘要:Claude Code 2.0.37+版本因API请求包含未支持的custom.input_examples参数导致400错误,使核心功能失效。解决方案是降级至稳定版v2.0.32:先卸载当前版本(npm uninstall -g @anthropic-ai/claude-code),再安装指定版本(npm install -g @anthropic-ai/claude-code@2.0.32),最后验证请求是否恢复正常。该问题确认在v2.0.32版本不存在。(148字)

奶爸的编程之路,也就一周冷个三天 2039

Rust 中快速生成 Excel xlsx 文件的完整指南:rust_xlsxwriter

如果你在用 Rust 写数据服务,想给结果导出一份 Excel,多半得绕道 Python 脚本,或者自己拼 zip 里的 XML。开源库 `rust_xlsxwriter` 省掉这些弯路:在 Rust 里直接写文本、数字、日期和公式,生成 Excel 2007+ 的 xlsx 文件。 [![rust_xlsxwriter 生成的 Excel xlsx 文件头部水印图片效果](https://ra

gitblog_00496的博客 203

lammps案例:堆垛层错能的计算

大家好,我是小马老师。 本文介绍如何使用lammps计算晶体的堆垛层错能。 正常晶体中的原子按照一定的规律排列,原子面按ABCABC……的顺序排列,如下图所示: 当某个原子面被抽出后会形成堆垛层错,如图中的蓝色原子层被抽出,原子面排列变为ABCBCA……: 可通过计算堆垛层错能形成前后的能量差计算堆垛层错能,计算公式为: E0为初始能量 Ef为删除一个原子面后的能量 A为界面面积 下面分享一个lammps计算堆垛层错能的in代码,本代码由Richard Glaze完成,本文稍作修改并进行了注释,以供初

lammps_jiayou的博客 5436

模型预测控制 (MPC, Model Predictive Control) 算法详解及案例分析

模型预测控制是一种基于模型的控制策略,通过在线求解一个有限时域的优化问题,预测系统的未来行为,并根据预测结果调整控制输入,以实现系统的稳定性和性能优化。

闲人编程的博客 2938

Python高性能Excel解析库calamine:基于Rust的流式读取方案

在数据处理领域,Excel文件解析是常见的基础任务,其性能直接影响数据管道的效率。传统Python库如openpyxl在处理大型文件时面临内存占用高、读取速度慢的瓶颈,这源于其XML解析机制和内存模型设计。为解决这一问题,基于Rust语言的高性能解析方案应运而生,通过流式解析和惰性加载技术,实现了数量级的性能提升。calamine库正是这一技术的代表,它专注于数据读取场景,采用Rust底层引擎实现高效内存管理和快速解析,特别适用于大数据量、资源受限的环境。在数据科学和工程实践中,这种高性能解析技术能显著加速

weixin_29214335的博客 250

Sigrity System Explorer ViaWizard模式进行过孔建模和仿真分析操作指导

点击TVac_lower tdvac_lower,自动跳转到2D时域曲线,查看最小低电平穿过VIL(ac)max电压的延时,结果如下。点击TVac_high tdvac_high,自动跳转到2D时域曲线,查看最小高电平穿过VIH(ac)min电压的延时,结果如下。点击max Vix_Rise,自动跳转到2D时域曲线,查看上升边PN交叉点与参考电压VREF(dc)的偏差,结果如下。Threshold:阈值,软件自带3个模板,default,Tr01,Tr02,本例选择Default。

weixin_54787054的博客 571

fastexcel:快速处理Excel文件的Python利器

fastexcel:快速处理Excel文件的Python利器 项目介绍 fastexcel是一个用Rust编写的Python库,专为高效读取Excel文件而设计。它基于calamine和Apache Arrow两个强大的项目,提供了出色的性能和稳定性。fastexcel适用于需要快速、高效处理大型Excel文件的场景,能够显著提高数据读取的速度和效率。 项目技术分析 fastexcel的核心是用R...

gitblog_00127的博客 839

OpenClaw 2026.3.13 踩坑实录:飞书HTTP协议降级Bug与多版本回归问题汇总

摘要:OpenClaw v2026.3.13存在多个严重回归问题,包括飞书API调用协议意外降级为HTTP导致连接失败(#46100)、本地Gateway诊断矛盾(#45504)及设备配对CLI命令失效等。该版本发布流程本身也存在异常,被迫以v2026.3.13-1标签重新发布。建议飞书用户回退至v2026.3.8稳定版,其他用户谨慎升级。本文详细记录了各Bug现象、影响范围及临时解决方案,并梳理了飞书通道的"多版本回归史",指出其根源在于架构变迁和测试覆盖不足。最后提供了包含配置备份、

Maynor的博客 870

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

GenOffice Sheets深度体验:自带Rust引擎的Excel替代,这6大能力你必须知道

GenOffice Sheets 是一款免费的开源电子表格应用,作为 Microsoft Excel 的强力替代品,它用自研的 **Rust 引擎** 直接读写 `.xlsx` 文件,支持公式、透视表、图表和内置 AI 智能体编辑,可在 macOS、Windows 与 Linux 上运行。本文带你完整体验它的 6 大核心能力,帮你判断它是否值得加入你的工作流。 > 📌 核心关键词:GenOff

gitblog_00057的博客 669

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

上一篇: Rust vs Java性能测试的怪事!debug模式与release模式的差异太大了!
下一篇: Windows下,基于Gradle用Docker发布自己的程序
xplidelphi
博客等级 码龄18年 31粉丝 56原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值