python for excel中的循环迭代

时间:2018-07-05 13:13:13

标签: excel python-2.7 for-loop tuples

我有一个Excel工作表,其中有两个不同的列,我想一次从一个地方获取数据,说来自A2和B2的数据值,然后执行某些操作,然后再次获取来自B3和C3的值,依此类推..直到B50和C50。我为此编写了以下代码,但我认为这是不正确的。我也是python的新手,所以没有太多的知识。任何帮助,将不胜感激。预先感谢!

    wb = openpyxl.load_workbook('Inputexcel.xlsm')
    sheet = wb['Sheet1'] 
    tup1 = (sheet['A2':'A50'])
    tup2 = (sheet['B2':'B50'])
    for i in range(0,48):      
    text = tup1[i].value
    i+=1

我能够将其实现为单个值,并且还可以使用以下代码执行操作。但是我的主要目的是迭代我所面临问题的所有excel价值观。 单个值的代码:

    wb = openpyxl.load_workbook('Inputexcel.xlsm')
    sheet = wb['Sheet1']
    text = sheet['A2'].value
    eid = sheet['B2'].value

如果有帮助,也可以共享要执行的操作:

    doc = docx.Document('mydoc.docx')
    doc.paragraphs[9].runs[6].clear()
    doc.paragraphs[9].runs[6].text
    doc.paragraphs[9].add_run(text).bold = True
    doc.save('mydoc ' + str(eid) + '.docx')

1 个答案:

答案 0 :(得分:1)

与其将单元格添加到tup1和tup2中,不如建议将值直接添加到tup1和tup2中……

wb = openpyxl.load_workbook('Book1.xlsx')
sheet = wb['Sheet1'] 
tup1 = []
tup2 = []
for i in range(2,50):
    rowA ='A{0}'.format(i)
    rowB = 'B{0}'.format(i)
    tup1.append(sheet[rowA].value)
    tup2.append(sheet[rowB].value)
print (tup1)
print (tup2)