Как вернуть строку из файла xlsx на основе элементов в списке - PullRequest
0 голосов
/ 15 октября 2019

У меня есть список фраз, которые я хочу использовать для извлечения определенных строк / ячеек из файла xlsx. Значения списка всегда пишутся точно так, как английский столбец в базе данных.

Excel

Мне нужно, чтобы каждое предложение - на другом языке, было помещено в их собственный список, который может быть выведен в другой файл Excel, похожий на этот: Output

# importing openpyxl module
from openpyxl import load_workbook
import openpyxl
# Give the location of the file
path = "C:/Users/username/Desktop/ExcelTest.xlsx"

# To open the workbook
# workbook object is created
wb_obj = openpyxl.load_workbook(path)

# Get workbook active sheet object
# from the active attribute
sheet_obj = wb_obj.active
max_col = sheet_obj.max_column
m_row = sheet_obj.max_row
eng = []
fre = []
ger = []
spa = []
ita = []
list = ['Hello', 'I Love', 'Python']

for row in sheet_obj:
    for a in list:
        for cell in row:
                if cell.value == a:
                    #print('Row:', cell.row , 'Column:', cell.column, 'Value:', cell.value)
                    for i in range(1, 5):
                        cell_obj = sheet_obj.cell(row = cell.row, column = i)
                        print(cell_obj.value, end= ' ')
                        eng.append(cell_obj.value)
                break
print (eng)

Теперь результат, который я получаю из кода, частично верен - за исключением всего (каждое предложение от разных языков помещено в один список вместо этого)

1 Ответ

0 голосов
/ 15 октября 2019

Вы можете использовать pandas для этого

import pandas as pd

path = "C:/Users/username/Desktop/ExcelTest.xlsx"
df = pd.read_excel(path)

languages = ['English', 'French', 'German', 'Spanish', 'Italian']
for language in languages:
    print(df[language].values)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...