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

Apache POI 4.1.1:FillPatternType未定义错误原因排查

错误原因及解决办法

为什么会报错?

NameError: global name 'FillPatternType' is not defined 说白了就是你代码里用了FillPatternType这个类,但Python解释器找不到它的定义——要么没导入,要么导入路径错了。

怎么解决?

  1. 先导入对应的枚举类
    从你用的IndexedColors和setFillPattern方法来看,应该是用Apache POI相关的Python绑定(比如Jython环境或poi-python库),先把FillPatternType导入进来:

    # 导入示例(根据你用的库版本调整路径)
    from org.apache.poi.ss.usermodel import FillPatternType
    

    如果是用openpyxl这类库,枚举的位置和名称不一样,比如openpyxl里是这样的:

    from openpyxl.styles import PatternFill
    # 对应SOLID_FOREGROUND的是PatternFill.SOLID
    
  2. 别直接传数字参数
    你试了传1还是报错,是因为不同库对填充模式的常量定义逻辑不同,不能硬写数字,必须用库官方提供的枚举常量。导入正确后,原代码就能正常运行:

    oStyle.setFillForegroundColor(IndexedColors.GREY_50_PERCENT.index)
    oStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND)
    
  3. 核对库版本
    如果导入后还是有问题,检查下你用的Excel操作库版本,部分库的枚举类位置或常量名在版本更新时会有变动,确保代码和库版本匹配。


内容的提问来源于stack exchange,提问作者Fonsi Jimenez Rivas

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 03:43:16