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



我正在遍历列A。在这列中,我使用两个函数对值进行unicode。

# -*- 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)))

到目前为止一切正常,但现在我想将这些"转换"的值粘贴到具有相同范围B2-B74的列B中。有人愿意用这个代码帮助我解决我的问题吗?我一直在"谷歌搜索",但到目前为止我还没有找到解决方案。。。

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

编辑,几个修复:

第2版,小改进(我有一些重言逻辑):

即:

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")

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

最新更新