`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”)的所有非空单元格,推荐使用迭代列对象 + 判空的方式,避免加载整列(含大量空行)造成性能浪费。注意:openpyxl的ws['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.value为None表示单元格为空(未编辑/清空过);- 公式计算结果为空字符串
""也会被过滤,如需保留公式原始值,可用cell.data_type == 'f'判断是否为公式; - 若需严格忽略首尾空白的字符串,可用
str(cell.value).strip()后判断是否为空。
