如何使用openpyxl从列对象中提取单元格值?
解决openpyxl提取整列具体值的问题
嘿,我来帮你搞定这个困扰!你现在遇到的情况是因为直接打印列对象时,openpyxl返回的是单元格对象,而不是单元格里的实际内容。其实有几个简单的方法可以轻松提取整列的具体值,我给你逐一说明:
方法一:遍历列单元格,提取value属性
当你用ws['A']获取A列时,得到的是该列所有单元格对象的集合。我们可以通过列表推导式遍历每个单元格,取出它的value属性,就是我们要的具体值了:from openpyxl import load_workbook # 加载工作簿和工作表 wb = load_workbook('你的文件名.xlsx') ws = wb.active # 或者指定具体工作表,比如wb['Sheet1'] # 提取A列的所有值 column_a_values = [cell.value for cell in ws['A']] print(column_a_values)注意:空单元格会被提取为
None,如果需要过滤空值或者跳过表头,可以加条件判断,比如只取第二行及以后的非空值:column_a_values = [cell.value for cell in ws['A'] if cell.row > 1 and cell.value is not None]方法二:使用iter_cols方法,直接获取值
openpyxl的iter_cols方法支持直接返回单元格的值,只需要设置values_only=True参数。这个方法可以指定列的范围,比如只提取A列(对应min_col=1,max_col=1):from openpyxl import load_workbook wb = load_workbook('你的文件名.xlsx') ws = wb.active # 提取A列的值 for col in ws.iter_cols(min_col=1, max_col=1, values_only=True): column_a_values = list(col) print(column_a_values)这个方法更高效,因为它直接返回值而不是单元格对象,省去了手动取
value的步骤。
其实openpyxl文档里没有单独的“提取整列值”方法,但通过上面两种方式,完全可以实现你的需求。你之前看到的<Cell 'File Name' .A000>是单元格对象的字符串表示,只要访问它的value属性就能拿到实际内容啦!
内容的提问来源于stack exchange,提问作者newtothis
相关产品推荐
相关产品推荐

