openpyxl求助之提取Excel表中的某两列
excel文件提取列,要求提取A列和C列,保存为新的excel.import os
from openpyxl import load_workbook
wb = load_workbook("安溪.xlsx ")
sheet = wb.worksheets
for row in sheet.iter_rows(min_row= 1)
cell0 = row
cell1 = row
cell18 = row
print(cell0.value,cell1.value,cell18.value)
求问为什么出错 本帖最后由 isdkz 于 2023-4-12 18:44 编辑
您的代码中有几个问题。根据您的需求,我将解释如何修复它们。
[*]首先,您只提到了提取A列和C列,但您的代码也在提取第19列。我会在修复的代码中删除这一部分。
[*]您的代码中缺少冒号。在for row in sheet.iter_rows(min_row=1)后面加上冒号。
[*]若要将A列和C列的数据保存到新的Excel文件中,您需要创建一个新的工作簿并将数据写入其中。我将在修复的代码中添加这个过程。
修复后的代码如下:
import os
from openpyxl import load_workbook
from openpyxl import Workbook
# 加载现有的工作簿
wb = load_workbook("安溪.xlsx")
sheet = wb.worksheets
# 创建一个新的工作簿以保存提取的列
new_wb = Workbook()
new_sheet = new_wb.active
# 遍历原始表格中的行
for row in sheet.iter_rows(min_row=1):
cell0 = row
cell2 = row# 将索引更改为2以获取C列
# 打印值(用于调试目的)
print(cell0.value, cell2.value)
# 将值写入新工作表
new_row =
new_sheet.append(new_row)
# 保存新的工作簿
new_wb.save("提取的列.xlsx")
这段代码应该可以正确地提取A列和C列并将它们保存到一个名为"提取的列.xlsx"的新文件中。 在代码中,需要使用冒号来表示行区间,列也需要使用字母表示。另外,循环语句需要加上冒号表示循环代码块。以下为修改后的正确代码:
import os
from openpyxl import load_workbook
wb = load_workbook("安溪.xlsx")
sheet = wb.worksheets
# 创建新的Workbook对象
new_wb = Workbook()
new_sheet = new_wb.active
for row in sheet.iter_rows(min_row=1):
cell_A = row
cell_C = row
new_sheet.append()
new_wb.save("提取结果.xlsx")
页:
[1]