如何用crealytics库读取Excel所有单元格值及解决列缺失问题
解决crealytics Spark Excel读取的两个问题
合并单元格值填充
crealytics Spark Excel库默认仅在合并单元格的左上角单元格保留内容,其余合并位置为空。要让所有合并单元格都能读取到对应值,只需添加fillMergedCells选项并设为true:
df = spark.read.format("com.crealytics.spark.excel")\ .option("inferschema", False)\ .option("header", False)\ .option("dataAddress", "'sheet name'!")\ .option("fillMergedCells", True)\ # 启用合并单元格值填充 .load(excel_file_path)
该选项会自动将合并区域的内容填充到所有单元格,确保每行都能获取到合并单元格的值。
缺失F、G列的修复
常见原因:
- 库默认忽略全为空值的列
dataAddress仅指定了部分数据区域,未覆盖F、G列- F、G列在Excel中处于隐藏状态,默认不被读取
解决方法:
- 明确指定列范围:修改
dataAddress为包含F、G列的完整范围,比如:.option("dataAddress", "'sheet name'!A:G") - 禁用空列忽略:添加
ignoreEmptyColumns选项,强制读取所有列:.option("ignoreEmptyColumns", False) - 读取隐藏列:如果F、G列被隐藏,添加
includeHiddenColumns选项:.option("includeHiddenColumns", True)
整合后的完整代码:
df = spark.read.format("com.crealytics.spark.excel")\ .option("inferschema", False)\ .option("header", False)\ .option("dataAddress", "'sheet name'!A:G")\ .option("fillMergedCells", True)\ .option("ignoreEmptyColumns", False)\ .option("includeHiddenColumns", True)\ .load(excel_file_path)
内容的提问来源于stack exchange,提问作者Ramesh Bathini
相关产品推荐
相关产品推荐

