2015-12-10 58 views
0

我遍歷A列。在此列中,我使用了兩個函數來統一代碼值。Python Openpyxl - 從列A到B複製具有相同行的值範圍

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

您是否嘗試過以類似的方式閱讀它們?

編輯,情侶修復:

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

所以,非常類似於你如何訪問細胞,然後您需要將工作簿保存在最後!這對你有用嗎?以前,您以只讀模式打開工作簿。

+0

TypeError:'list'對象不能被解釋爲索引。 –

+0

現在來看看。需要做一些測試,但現在應該起作用。 – Ogaday

+0

閱讀之後和寫作之前,您可以操縱和轉換您喜歡的數據。另外,openpyxl的例子很好,一旦你開始討論excel的結構http://openpyxl.readthedocs.org/en/default/usage.html#write-a-workbook – Ogaday

相關問題