2017-01-21 7 views
1

Я видел этот пост, добавляемый лист с помощью xlutils.copy:Добавление листа в существующем Excel файл с помощью openpyxl

https://stackoverflow.com/a/38086916/2910740

Есть ли какое-либо решение, которое использует только openpyxl?

+0

Не могли бы вы уточнить, что вы хотите сделать? –

+0

У меня есть файл excel, который содержит несколько листов, я хочу добавить новый лист в конец этого файла и вставить в него некоторые данные. –

+0

Похоже, вам просто нужно прочитать документацию openpyxl. –

ответ

-1

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

В этом случае, это так же просто, как открытие файла для добавления к нему, а не писать или читать:

with open("output.csv", "a") as csvfile: 
    wr = csv.writer(csvfile, dialect='excel') 
    wr.writerow(YOUR_LIST) 

Что касается Openpyxl:

end_of_sheet = your_sheet.max_row 

будет возвращать количество строк ваш лист будет таким, чтобы вы могли начать писать на позицию после этого.

+0

Спасибо, но мне нужно хранить данные в excel. Мне также нужно добавить новые данные на новый лист. –

0

Я нашел решение. Это было очень легко:

def store_excel(self, file_name, sheet_name): 
    if os.path.isfile(file_name): 
     self.workbook = load_workbook(filename = file_name) 
     self.worksheet = self.workbook.create_sheet(sheet_name) 
    else: 
     self.workbook = Workbook() 
     self.worksheet = self.workbook.active 
     self.worksheet.title = time.strftime(sheet_name) 
    . 
    . 
    . 
    self.worksheet.cell(row=row_num, column=col_num).value = data