王大可2000 发表于 2023-4-12 18:41:16

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:43:09

本帖最后由 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"的新文件中。

歌者文明清理员 发表于 2023-4-12 18:56:53

在代码中,需要使用冒号来表示行区间,列也需要使用字母表示。另外,循环语句需要加上冒号表示循环代码块。以下为修改后的正确代码:

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]
查看完整版本: openpyxl求助之提取Excel表中的某两列