当前位置: 首页 > news >正文

`import openpyxl` 是 Python 中用于读写 Excel(`.xlsx`)文件的第三方库的导入语句

import openpyxl是 Python 中用于读写 Excel(.xlsx)文件的第三方库的导入语句。openpyxl支持创建、修改、读取.xlsx文件(不支持旧版.xls格式),可操作单元格、工作表、样式、公式、图表等,广泛应用于数据处理与自动化报表生成。

✅ 常见用法示例:

fromopenpyxlimportWorkbook,load_workbook# 创建新工作簿wb=Workbook()ws=wb.active ws["A1"]="Hello, openpyxl!"wb.save("example.xlsx")# 加载已有文件wb2=load_workbook("example.xlsx")ws2=wb2.activeprint(ws2["A1"].value)# 输出: Hello, openpyxl!

⚠️ 注意:首次使用需先安装:

pipinstallopenpyxl

openpyxl中读取某一列(如列 “B”)的所有非空单元格,推荐使用迭代列对象 + 判空的方式,避免加载整列(含大量空行)造成性能浪费。注意:openpyxlws['B']ws['B:B']返回的是生成器或元组,但更高效、安全的方式是遍历该列中已实际存在的行(即max_row范围内),并跳过None或空白字符串。

✅ 推荐方法(兼顾准确性与效率):

fromopenpyxlimportload_workbook wb=load_workbook("data.xlsx")ws=wb.active# 方法1:按列字母(如 'B')获取所有非空值(含公式结果)column_letter='B'non_empty_values=[]forcellinws[column_letter]:ifcell.valuenotin(None,""," ","\n","\t"):# 基础去空(可依需增强)non_empty_values.append(cell.value)print(non_empty_values)

✅ 更精准的方法(仅遍历有数据的行范围,跳过全空行):

# 方法2:利用 max_column 和 max_row 优化,只检查实际有内容的区域column_idx=ws.column_index_from_string('B')# → 2non_empty_values=[]forrowinrange(1,ws.max_row+1):cell=ws.cell(row=row,column=column_idx)ifcell.valuenotin(None,""," ","\n","\t"):non_empty_values.append(cell.value)

💡 补充说明:

  • cell.valueNone表示单元格为空(未编辑/清空过);
  • 公式计算结果为空字符串""也会被过滤,如需保留公式原始值,可用cell.data_type == 'f'判断是否为公式;
  • 若需严格忽略首尾空白的字符串,可用str(cell.value).strip()后判断是否为空。
http://www.jsqmd.com/news/1002475/

相关文章:

  • 2026年PE燃气管厂家实力之选:龙昌管业在市政埋地、天然气专用与高压大口径领域的专业解读 - 品牌发掘
  • 进阶玩家的Zotero工具箱:用Better BibTex的PostScript脚本,批量清洗和定制你的参考文献数据库
  • 从GDP到股价:手把手教你用Matlab的adftest函数检验5类真实数据的平稳性
  • 告别HDF格式!用ArcPy批量处理GLASS LAI数据,从下载到月度合成的完整避坑指南
  • 从0到1:基于Python的简单自动化任务系统设计与实现
  • Win11Debloat技术深度解析:从系统清理到企业级部署
  • 2026年浙江杭州合同纠纷律师实力对比 5家深度测评各有特色 - 本地品牌推荐
  • UEFI开发实战:手把手教你用GUID HOB在PEI和DXE间传递自定义数据
  • 【万字文档+源码】基于springboot+vue电池销售系统 -学习项目资料分享
  • 科学高效学英语:全方位提升语言综合应用能力
  • ST官方开发板uboot启动配置详解:手把手教你读懂extlinux.conf文件
  • 2026年 达因值添加剂/碳氢达因值加强剂/达因笔增大剂及专用清洗剂供应厂家:精准提升表面张力与碳氢清洗的专业选择 - 品牌发掘
  • 从Proteus仿真到FPGA管脚分配:DAC0832数模转换实战全记录(含VHDL代码参考)
  • 给Android开发者的车载入门指南:从手机App到车机SystemUI,到底有啥不一样?
  • 深耕欧洲市场,光驭科技携手Grolman首秀法国FIP 2026
  • 软考嵌入式系统设计师备考:别死记硬背,用代码和项目理解数据结构与算法
  • 使用react-force-graph构建3D力导向图:从社交网络到知识图谱的交互式可视化
  • LLM路由优化:三维评估框架与Dirichlet聚合实践
  • 别再死记硬背了!用ASM图搞定VHDL状态机设计,交通灯项目实战带你飞
  • 不止于抓包:用Ubiqua的Network Explorer和Graphic View透视你的Zigbee网络拓扑
  • 从验证计划到覆盖率报告:手把手搭建你的第一个SV功能覆盖率模型
  • LM324+LM331频率电压转换电路避坑指南:从仿真到面包板的完整搭建流程
  • 天津离婚股权分割律师怎么选? 姜春梅律师深耕家事股权纠纷 - 外贸老黄
  • 颠覆性开源字体:WenQuanYi Micro Hei 如何彻底改变嵌入式中文显示生态
  • 【2027最新】基于SpringBoot+Vue的web电影院购票系统管理系统源码+MyBatis+MySQL
  • 2026东莞大型激光焊接加工实力厂家:精密五金/钣金螺丝/金属工艺品/来料焊接与自动焊接专业解析 - 品牌发掘
  • 【AI Agent 第十二期:Gemini CLI 使用指南】
  • 别再依赖HAL_Delay了!用STM32F4的DWT计数器实现微秒级精准延时(附代码)
  • 从微程序入口逻辑看CPU设计:一个让单总线CPU‘看懂’指令的关键小模块
  • 元某生活模式如何在30天消化83%库存?