Как мне импортировать из файла xlsx через Openpyxl в класс Python?

#python #class #openpyxl

#python #класс #openpyxl

Вопрос:

У меня есть файл xlsx, который открывается с помощью Openpyxl. Каждая строка содержит student_id, first_name, second_name, parent_name и parent_email.

Я создал метод под названием Students

Я хочу, чтобы программа брала каждую строку и присваивала ее методу, например.

 Students(student_id = ['A -row number'], first_name = ['B -row number'], second_name = ['C - row number] ...etc
  

чтобы он перебирал всех моих учеников и автоматически добавлял их

уверен, что ответ заключается в цикле, таком как:

 for row in ws.rows:
  

Ответ №1:

Этот способ был намного лучше. Отключите Openpyxl, откройте его из файла csv. В файле csv у меня есть строки, каждый отдельный бит информации в столбцах A, B, C, D, E

например. A1 = Поттер, Гарри B1 = Поттер C1 = Гарри … и т. Д

 import csv


#sorts all the student data into a class
class Students():
    def __init__(self,student_id, first_name,second_name,student_parent,parent_email):

        self.student_id = student_id
        self.first_name = first_name
        self.second_name = second_name
        self.student_parent = student_parent
        self.parent_email = parent_email


    def __repr__(self):
        return self.student_id   " "   self.first_name   " "  self.second_name   " "   self.student_parent   " "   self.parent_email


student_list = []

#opens the csv file, takes out the information and saves them in the Student Class
student_file = open('student_list.csv')
student_file_reader = csv.reader(student_file)
for row in student_file:
    row_string = str(row)
    row_parts1,row_parts2,row_parts3,row_parts4,row_parts5 = row_string.split(',')
    student_list.append(Students(row_parts1,row_parts2,row_parts3,row_parts4,row_parts5))

  

… и вот оно, все в форме объектов в идеальном списке.

Комментарии:

1. Недавно я задал 4 вопроса Stack Overflow и все чаще обнаруживаю, что сообщество становится более придирчивым. на 3 из 4 моих вопросов я ответил сам и, надеюсь, помогу другим. Люди из SO, пожалуйста, помогите новичкам, если вам нужно понизить голос, скажите, почему у вас есть в противном случае, это так же полезно, как tutting. Кроме того, если вы собираетесь просто критически отнестись к вопросу, а не предлагать помощь, вы отвлекаетесь от темы … это похоже на то, что кто-то спрашивает вас о времени, а вы отвечаете, что часы доступны в магазинах.