如何配置Polars read_excel读取Excel中被过滤的行?
解决Polars read_excel无法读取Excel过滤行的问题
问题背景
使用Polars 0.15.13和xlsx2csv 0.8.0时,通过pl.read_excel()无法读取Excel中被过滤的行,即使设置xlsx2csv_options={"skip_hidden_rows": False}也无效,当前临时方案是通过pandas读取后转Polars,但希望直接用Polars实现。
可行解决方案
1. 传递正确的过滤行控制参数
xlsx2csv中,手动隐藏的行和筛选后隐藏的行是两个独立控制项:
skip_hidden_rows:控制是否跳过右键手动隐藏的行skip_filtered_rows:控制是否跳过筛选功能隐藏的行
你需要在xlsx2csv_options中传入针对过滤行的参数:
import polars as pl df = pl.read_excel( "your_file.xlsx", xlsx2csv_options={"skip_filtered_rows": False} )
2. 升级Polars版本
Polars 0.15.13属于较旧版本,后续版本对xlsx2csv的参数传递逻辑有优化。建议升级到最新稳定版后再尝试:
pip install --upgrade polars
3. 手动调用xlsx2csv读取后转Polars
如果上述方法仍无效,可以绕开Polars的read_excel,直接调用xlsx2csv的Python API读取数据,再转换为Polars DataFrame:
import polars as pl from xlsx2csv import Xlsx2csv # 将Excel内容转为CSV格式字符串 csv_content = [] Xlsx2csv( "your_file.xlsx", skip_filtered_rows=False, skip_hidden_rows=False ).convert(csv_content) # 从CSV字符串生成Polars DataFrame df = pl.read_csv("\n".join(csv_content))
内容的提问来源于stack exchange,提问作者miroslaavi
相关产品推荐
相关产品推荐

