Как искать конкретные имена столбцов (не A, B и т. Д.), Такие как Name, Marks в Excel, используя python и openpyxl? - PullRequest
0 голосов
/ 08 июля 2019

"Я должен ввести путь к файлу, имя файла в Excel и указать конкретное имя столбца, чтобы найти, существует ли столбец (не A, B и т. Д.) (Например, Имя и т. Д.) Или нет в Excel. Если он существует, необходимо ввести еще один ввод значения для поиска, существует ли это значение.

Я работаю с python и загрузил лист Excel с помощью модуля openpyxl. Я получил каталог и путь к файлу и сохранил активный Excel. Мне нужно повторить имя столбца, чтобы проверить его с именем столбца строки поиска.

python
from openpyxl import Workbook
import os
import sys
#give the directory
print("Give filepath :")
filepath = input()
if os.path.exists(filepath):
print("Give file name:")
else:
    print('filepath unbound')
    sys.exit()
filename = input()
df = filepath+"/"+filename
if os.path.isfile(df):
     wb = Workbook()
     wb.save(df)
     sheet = wb.active
else:
   print("file not found")
print("Give search column:")
#giving search string(column name) to check
sc=input()

Я ожидал, что итерация цикла или любой другой метод найдет имя столбца для заданного ввода

1 Ответ

0 голосов
/ 08 июля 2019

Предполагая, что вы хотите искать только активный лист, и предполагая, что вы знаете строку, в которой находится заголовок столбца (header row),

import openpyxl
import os
import sys

valid_heading_flag = False
#give the directory
print("Give filepath :")
filepath = input()
if os.path.exists(filepath):
    print("Give file name:")
    filename = input()
    df = filepath+"/"+filename
    if os.path.isfile(df):
        wb = openpyxl.load_workbook(df)
        sheet = wb.active
        header_row = 2  # assuming 1st row as the header row
        header_row_data = sheet[header_row]
        #giving search string(column name) to check
        print("Give search column:")
        sc=input()
        for col_index,cell in enumerate(header_row_data):
            if cell.value == sc:
                print('Valid heading at row:{},col:{}'.format(header_row, col_index))
                valid_heading_flag = True
                break
        if not valid_heading_flag:
            print('Not a valid heading')
    else:
        print("file not found")
        sys.exit()
else:
    print('filepath unbound')
    sys.exit()
...