Python使用openpyxl,load_workbook,抓取模式和单元格

时间:2017-11-05 14:34:57

标签: python excel for-loop iterator openpyxl

我在探索,学习时仍然是Python新手,今天我正在使用openpyxl。如何根据模式的最后位置打印单元格值(在本例中为日期)?我有一个工作表我试图逐行抓取数据,因为我的数据集少于15行总计。数据如下:

Apps, 11/3/2017, 11/4/2017, 11/5/2017, 11/6/2017, 11/7/2017, 11/8/2017...
app_1, a, a, a, b, c,d,e...
app_2, a,b,c,d,e....
app_3, a,a,a,a,b,b,b,b,b,b,c,c,c,c,d,d,d,d,e,e,e,e....

我能够抓住每一行,将其存储到变量中,获取单元格的值,并获取单元格坐标。例如,我想1)查看应用程序列,2)注意app_1,3)找到字母模式“aaa”,4)注意“aaa”的最后一个坐标,打印日期到11/5/2017的新单元格。以下是我的代码示例:

from openpyxl import load_workbook

wb = load_workbook('example.xlsx')
ws1 = wb['Sheet1']

row1 = ws1.iter_rows(min_row=1,max_row=1)
row2 = ws1.iter_rows(min_row=2,max_row=2)
row3 = ws1.iter_rows(min_row=3,max_row=3)

def row_one_apps_dates(): # I have this for each row
for row in row1:
    for cell in row:
        if cell.value =='a' :
            print(cell.column, cell.row)#print(cell.coordinate)

def row_two():
for row in row2:
    for cell in row:
        if cell.value =='a' or 'b' or 'c' or 'd' or 'e':
            print(cell.column, cell.row)#print(cell.coordinate)

我的输出:

A 2
B 2
C 2
D 2
E 2
F 2

感谢您提供任何帮助,因为我继续在python中成长。

UPDATE1:

此时我正在尝试检索最后一个值,但不断获得多个结果而不是最后一个结果。这是我的代码:

for row in row2:
    for cell in row:
        if cell.value == 'a':
            result = cell.column
            last_result = result[-1]
            print(last_result)

输出:

B
C
D
E
F
G
None

我想只检索G,然后加1使其成为G1。抓住G1的值,这将是一个日期。

0 个答案:

没有答案