使用PySpark的com.crealytics.spark.excel读取含公式Excel文件输出错误怎么办?
解决Spark读取含公式Excel文件的问题
问题原因
使用com.crealytics.spark.excel库读取Excel时,默认会读取单元格的公式本身,而非公式计算后的最终数值,这是导致输出结果不正确的核心原因。
可行解决方案
方案1:显式配置读取计算结果
通过添加readFormulaCells参数,强制读取公式计算后的数值:
input_MonthGroup_df = spark.read.format("com.crealytics.spark.excel") \ .option("header", "true") \ .option("inferSchema", "true") \ .option("readFormulaCells", "false") \ .load(MonthGroup_file_path)
注:部分版本的库默认readFormulaCells为true(读取公式),显式设为false即可读取计算值。
方案2:指定数据范围并启用数值格式
结合dataAddress指定工作表范围,同时开启usePlainNumberFormat确保数值格式正确解析:
input_MonthGroup_df = spark.read.format("com.crealytics.spark.excel") \ .option("header", "true") \ .option("inferSchema", "true") \ .option("dataAddress", "'你的工作表名'!A1:XFD1048576[#All]") # 替换为实际工作表名 .option("usePlainNumberFormat", "true") \ .load(MonthGroup_file_path)
方案3:预处理Excel文件(备选)
如果上述配置无效,可先手动处理Excel:
- 打开文件后按
Ctrl+Shift+~显示所有计算值 - 全选数据,使用「复制-粘贴为数值」功能批量转换公式单元格为纯数值,再保存文件后用Spark读取
内容的提问来源于stack exchange,提问作者AzSurya Teja
相关产品推荐
相关产品推荐

