Python Openpyxl - 将值从 A 列复制到具有相同行范围的 B

Python Openpyxl - Copy values from column A to B with same rows range

我正在遍历 A 列。在此列中,我使用两个函数对值进行统一编码。

# -*- coding: utf-8 -*-

from django.template import defaultfilters
from unidecode import unidecode
import openpyxl

wb = openpyxl.load_workbook('sheet.xlsx', use_iterators=True)
sheet = wb.get_sheet_by_name('Sheet1')

translated = []

for row in sheet.iter_rows('A2:A74'):
   for cell in row:
       if cell.value is not None:
           defaultfilters.slugify(unidecode(cell.value))
           translated.append(defaultfilters.slugify(unidecode(cell.value)))

到目前为止一切正常,但现在我想将这些 "converted" 值粘贴到具有相同范围 B2-B74 的 B 列。有没有人会帮我用这段代码来解决我的问题?我是 "googling" 但到目前为止我还没有找到解决方案...

您是否尝试过以与您阅读它们的方式类似的方式进行操作?

编辑,几个修复:

Edit2,小改进(我有一些同义反复的逻辑):

即:

import openpyxl

wb = openpyxl.load_workbook('sheet.xlsx')
sheet = wb.get_sheet_by_name('Sheet1')

translated = []
for row in sheet.iter_rows('A2:A74'):
    for cell in row:
        translated.append(cell.value)

for row, val in zip(sheet.iter_rows('B2:B74'), translated):
    for cell in row:
        cell.value = val

wb.save("sheet.xlsx")

因此,与您访问单元格的方式非常相似,然后您需要在最后保存工作簿!这对你有用吗?之前您以只读模式打开工作簿。