【问题标题】:Move to adjacent cells using openpyxl使用 openpyxl 移动到相邻单元格
【发布时间】:2012-06-25 02:46:58
【问题描述】:

我有一个算法可以在单元格中找到一个值,对于这种情况,假设单元格是 C10。我需要在 D 列旁边查看一个值,如果该值与我需要的不匹配,则从该值向上一个单元格并检查匹配等。到目前为止,我有这个:

bits = [] 

for row in ws.iter_rows(row_offset=4,column_offset=3):
    #skip over empty rows
    if row:
        #current cell is in column C
        cell = row[2]
        try:
            #find the lowest address in the excel sheet
            if cell.internal_value == min(address):
                #somehow match up in column d
                for '''loop and search col D''':
                    if str(row[3].internal_value).upper == ('CONTROL 1' or 'CON 1'):
                        #add bits
                        for cell in row[4:]:
                            bits.append(cell.internal_value)    
        #pass over cells that aren't a number, ie values that will never match an address
        except ValueError:
            pass
        except TypeError:
            pass

有没有办法做到这一点?我知道使用row[3] 的比较在 D 列中进行比较,但如果第一次不正确,我不知道如何上列。或者换句话说,更改row[value] 中的值会在行中移动,我需要知道什么值/如何在列中移动。

谢谢!

【问题讨论】:

    标签: python excel openpyxl


    【解决方案1】:
    bits = []
    min_address = False
    for row in ws.iter_rows(row_offset=4,column_offset=3):
        c = row[2]
        d = row[3]
        if not d.internal_value: #d will always have a value if the row isn't blank
            if min_address: 
                break #bits is what you want it to be now
            bits = [] #reset bits every time we hit a new row
            continue #this will just skip to next row
    
        for bits_cell in row[4:]:
            if bits_cell.internal_value:
                bits.append(bits_cell.internal_value)
        if c.internal_value:
            if c.internal_value == min(address):
                min_address = True #we set it to true, then kept going until blank row
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-06
      • 2016-01-16
      • 2014-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多