You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

批量转换LabVIEW生成的.xlsx为.csv报openpyxl相关TypeError如何解决

问题原因分析
  • 报错TypeError: expected <class 'openpyxl.styles.fills.Fill'>本质是openpyxl读取文件时检测到不符合规范的样式定义,LabVIEW导出的xlsx文件通常会携带非标准的填充样式配置,触发该校验错误。
  • 单文件转换正常是因为你手动指定了有效正常的xlsx文件,批量遍历时glob会匹配到目录下所有后缀为.xlsx的文件,包括Office/LabVIEW运行时生成的~$开头的临时隐藏文件,这类文件本身结构异常,读取时会触发报错。
修复后的批量转换代码
import pandas as pd
import os
from glob import glob

# 替换为你的目标文件夹路径
target_dir = r"C:\path..."

for xlsx_file in glob(os.path.join(target_dir, "*.xlsx")):
    # 跳过临时隐藏文件
    if os.path.basename(xlsx_file).startswith("~$"):
        continue
    try:
        # 仅读取单元格数值,跳过样式、公式等非必要内容,规避样式校验报错
        df = pd.read_excel(xlsx_file, engine="openpyxl", data_only=True)
        csv_file = os.path.splitext(xlsx_file)[0] + ".csv"
        # utf-8-sig编码适配中文内容不出现乱码,不需要可删除该参数
        df.to_csv(csv_file, index=None, header=True, encoding="utf-8-sig")
        print(f"转换成功:{os.path.basename(xlsx_file)}")
    except Exception as e:
        print(f"转换失败:{os.path.basename(xlsx_file)},错误信息:{str(e)}")
补充说明
  • 若仍有个别文件转换失败,可手动打开对应文件确认是否损坏,若出现中文乱码可将to_csv的encoding参数调整为gbk适配Windows系统默认编码。
  • 不要在LabVIEW仍处于写入xlsx文件的状态下执行脚本,避免读取到未完成写入的半损坏文件。

内容的提问来源于stack exchange,提问作者R_Dax

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 11:45:02