web-dev-qa-db-fra.com

Comment écrire/mettre à jour des données dans des cellules d'un classeur XLSX existant à l'aide de xlsxwriter en python

Je suis capable d’écrire dans un nouveau classeur xlsx en utilisant 

import xlsxwriter  
def write_column(csvlist):
    workbook = xlsxwriter.Workbook("filename.xlsx",{'strings_to_numbers': True})
    worksheet = workbook.add_worksheet()
    row = 0
    col = 0
    for i in csvlist:
        worksheet.write(col,row, i)
        col += 1

    workbook.close() 

mais n'a pas pu trouver le moyen d'écrire dans un classeur existant ..__ S'il vous plaît, aidez-moi à écrire/mettre à jour des cellules dans un classeur existant à l'aide de xlswriter ou de toute alternative.

13
user2787436

Citation de xlsxwriter module documentation :

Ce module ne peut pas être utilisé pour modifier ou écrire sur un fichier Excel existant Fichier XLSX.

Si vous souhaitez modifier le classeur xlsx existant, envisagez d'utiliser openpyxl module.

Voir également:

40
alecxe

vous pouvez utiliser ce code pour ouvrir le fichier (test.xlsx) et modifier la cellule A1, puis enregistrez-le sous un nouveau nom

import openpyxl
xfile = openpyxl.load_workbook('test.xlsx')

sheet = xfile.get_sheet_by_name('Sheet1')
sheet['A1'] = 'hello world'
xfile.save('text2.xlsx')
9
Ayser

Notez que openpyxl ne possède pas une grande boîte à outils pour manipuler et éditer des images. Xlsxwriter a des méthodes pour les images, mais d'autre part ne peut pas importer des feuilles de calcul existantes ...

J'ai trouvé que cela fonctionne pour les lignes ... Je suis sûr qu'il existe un moyen de le faire pour les colonnes ...

import openpyxl

oxl = openpyxl.load_workbook('File Loction Here')
xl = oxl.['SheetName']

x=0
col = "A"
row = x

while (row <= 100):
    y = str(row)
    cell = col + row
    xl[cell] = x
    row = row + 1
    x = x + 1
1
user8545038