使用openpyxl逐行读取和输出特定单元格

时间:2017-10-14 16:54:38

标签: python openpyxl

发布的代码是通过研究具有类似项目的其他来源编制的。

以下代码给出了单元格值的行号 - 在本例中为“资产”,我在D列中查找。

我想知道是否可以使用rownum来读取该行号中的特定单元格? - 即列EQ

中的单元格值
print("loading database..")

from openpyxl import load_workbook
wb = load_workbook(filename = 'itimsdb.xlsx')
ws = wb['Sheet1']
sheet_ranges = wb['Sheet1']

userInput = input("Scan asset now:")
strValue=userInput

for row in range(ws.max_row):
    for column in "D":
        cell_name = "{}{}".format(column, row+1)
        value= str(ws[cell_name].value)
        if value==strValue:
            rownum = row

            # to verify row number
            print(rownum+1)

新版本:

我选择了.CSV db。现在我必须弄清楚如何循环它并继续扫描并写出不同资产的新行。

import csv


userInput = input("Scan asset now:")
strValue=userInput

with open('mydb.csv', 'r') as f:
    reader = csv.reader(f)
    for row in reader:
        for field in row:
            if field == strValue:


                with open('test.csv', "w") as csv_file:
                    writer = csv.writer(csv_file, delimiter=',')
                    for row in reader:
                        writer.writerow(row)
                        print(row)
                        break

1 个答案:

答案 0 :(得分:0)

始终使用ws.iter_rows()ws.iter_cols()而不是构建自己的范围。对于即席访问,您还可以使用ws[E]ws[E:Q]ws[4]ws[4:6],这样永远不会需要创建Excel样式的坐标。