как поместить строку Excel в список - PullRequest
0 голосов
/ 24 марта 2019

У меня есть лист Excel с параметрами, которые я пытаюсь экспортировать в текстовую панель.

site name    site      site1     site2     site2
host       hostname  hostname1 hostname2 hostname2
ip          x.x.x.x    x.x.x.x  x.x.x.x   x.x.x.x
sh#             1          1        1         2
ILAN in       yes         yes      no        no
ilan out       no          no      no        no

Я хочу взять информацию для каждого сайта / хоста и поместить в текстовую панель как одну текстовую панель на имя хоста. в этом примере 4 хоста, поэтому 4 текстовых поля.

имя текстовой панели site-hostname-SH # и в текстовой панели:

host = hostname
ip = x.x.x.x 
SH# = 1 or 2
ILAN IN = yes or no
ILAN out = yes or no

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

import openpyxl
from openpyxl import load_workbook
from openpyxl import Workbook
from Tkinter import Tk
from tkFileDialog import askopenfilename
import sys
import warnings

if not sys.warnoptions:
    warnings.simplefilter("ignore")
#opens filechooser for excel workbook
Tk().withdraw()
filename = askopenfilename()
print ("Working, please be patient")
wb = openpyxl.load_workbook(filename)

#lists worksheets in workbook to pick which worksheet to import
print ("\r")
count = 0
for ws in wb.worksheets:
    tlist = ws.title
    print count,tlist
    count = count + 1

x = input ("\nchoose number:\n")
ws = wb.worksheets[x]
print (ws)

#will eventually put into a function
#finds keyword, in this case site name
for row in ws.iter_rows():
    for cell in row:
        try:
            if cell.value == "Site Name":
                print ("yes")
                print ("TRUE")
                print cell.row, cell.column
                row = cell.row
                column = cell.column
                print column

                site = ws.cell(row = row, column = column)
                print ("this is: %s" %(site.value) )

                print ("this is row %s" %row)
                print row
                print column
        except (AttributeError):
            continue

have tried:
#print ("this is row: %s" %(row) )
##print(row)
#print (SiteName[1])

##x = ws.max_row + 1
##x = int(row)
##for r in range(x, column + 1):
##    d=ws.cell(row=x,column=r)
##    print(d.value)
##print ("this is the row number: %s" %(row) )
##print str(row)
##print ("this is: %s" %(site.value) )
##for i in range(row, col + 1): 
##    cell_obj = ws.cell(row = row, column = i) 
##    print(cell_obj.value)

1 Ответ

0 голосов
/ 24 марта 2019

Это то, что вы хотите?

for row in ws.iter_rows():
    keyword = row[0].value
    values = [item.value for item in row[1:]]
    if keyword == 'site name':
        print(keyword)
        print(values)
        print('-----\n')
        # do whatever you want here
...