Как добавить некоторые данные в существующий лист xlsx?

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

import xlsxwriter

def create_xlsx_file():
    workbook = xlsxwriter.Workbook('/home/script/report.xlsx')
    worksheet = workbook.add_worksheet()

    data = ['DataBase Name', 'Total Images', 'Gallary Name', 'Subject Name']

    r = 0
    c = 0
    for i in data:
        worksheet.set_column(c,c, 20)
        bold = workbook.add_format({'bold': True})
        worksheet.write(r, c, i)
        c = c + 1

    workbook.close()

def add_info_into_file(DataBase_Name, Total_Images, Gallary_Name, Subject_Name):
    workbook = xlsxwriter.Workbook('/home/script/report.xlsx')
    worksheet = workbook.add_worksheet()

    data = [DataBase_Name, Total_Images, Gallary_Name, Subject_Name]

    r = 2
    c = 0
    for i in data:
        worksheet.set_column(c,c, 20)
        bold = workbook.add_format({'bold': True})
        worksheet.write(r, c, i)
        c = c + 1

    workbook.close()

create_xlsx_file()
add_info_into_file("msc", 100, "Mat", "rsp")

В вышеуказанной программе, если я позвоню add_info_into_file() функция, затем существующие данные усекаются. Итак, как добавить некоторые данные в существующий лист?

Пожалуйста, кто-нибудь, помогите мне. Заранее спасибо.

1 ответ

XlsxWriter предназначен только для записи файлов. Он не может прочитать или изменить существующий файл Excel.

Ты можешь использовать openpyxl для добавления файла.

#!/usr/bin/python3

from openpyxl import Workbook

book = Workbook()
sheet = book.active

rows = (
    (88, 46, 57),
    (89, 38, 12),
    (23, 59, 78),
    (56, 21, 98),
    (24, 18, 43),
    (34, 15, 67)
)

for row in rows:
    sheet.append(row)

book.save('appending.xlsx')
Другие вопросы по тегам