Excelsheet в xlsxwriter - PullRequest
       6

Excelsheet в xlsxwriter

0 голосов
/ 14 февраля 2020

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

Однако мой код выдает ошибку.

class writetoexcel:


    workbook = xlsxwriter.Workbook('Example2.xlsx')
    worksheet = workbook.add_worksheet()

    def my_func(self, value, count):
        print(value)

        row = 0
        column = 1
        # worksheet.write_string(row, column, value)

        for item in value:
            worksheet.write_string(row, column, item)
            worksheet.write_string(row, column, item)

            row += 1

        workbook.close()

1 Ответ

2 голосов
/ 15 февраля 2020

Вы получаете ошибку, потому что вы пытаетесь запустить xlsxwriter вне функции или метода init. Это ваш исправленный код:

import xlsxwriter

class writetoexcel:

    def my_func(self, value):
        workbook = xlsxwriter.Workbook('Example2.xlsx')
        worksheet = workbook.add_worksheet()

        print(value)
        row = 0
        column = 1

        for item in value:
            worksheet.write_string(row, column, item)
            row += 1

        workbook.close()

Затем вам нужно создать объект:

myworkbook = writetoexcel()

И, наконец, вызвать созданный нами метод:

myworkbook.my_func('abcd')

Вывод :

enter image description here

Наконец, я думаю, что этот код является лучшим подходом, если вы хотите обрабатывать рабочие книги как объекты:

class writetoexcel:

    def __init__(self):
        self.workbook = xlsxwriter.Workbook('Example2.xlsx')
        self.worksheet = self.workbook.add_worksheet()

    def my_func(self, value):
        row = 0
        column = 1

        for item in value:
            self.worksheet.write_string(row, column, item)
            row += 1

        self.workbook.close()
...