2017-08-09 3 views
1

J'ai essayé de créer une nouvelle feuille en utilisant xlsxwriter.add_worksheet() mais il change mes vieilles feuilles. Toute bibliothèque qui peut créer une nouvelle feuille sans affecter d'autres feuilles et comment puis-je supprimer la feuille dans le fichier .xls parce que je n'ai pas trouvé toute fonction dans xlrd ou xlsxwriter qui peut supprimer une feuille.Comment créer/supprimer une feuille sans changer les anciennes feuilles pour les fichiers .xls?

Édition: 1 Essayé en utilisant le module win32. Capable de supprimer la feuille mais incapable de créer une nouvelle feuille sans affecter les feuilles existantes.

Répondre

0

Mise à jour: Trouvé la réponse

Création d'une nouvelle feuille:

import xlrd 
xl_ref = xlrd.open_workbook('Path to file') 

Voici le type (xl_ref) est < classe « xlrd.book.Book> Alors, quand nous appelons la fonction

xl_ref.add_sheet('Test1') 

Il y a eu l'objet de livre d'erreur n'a aucun attribut. Donc, à chaque fois nous voulons manipuler le fichier .xls sans affecter les changements existants. d'abord, convertir en objet classeur.

from xlutils.copy import copy 
xlwb_ref=copy(xl_ref) 
xlwb_ref.add_sheet('Test1') 
xlwb_ref.save('Path to file') 

Référence: Python_doc

Fiche Suppression:

import pythoncom 
    from win32com.client.gencache import EnsureDispatch 
    pythoncom.CoInitialize() #if Calling same thing again and again so better reinitialize. 
    excel = EnsureDispatch("Excel.Application") 
    excel_file = excel.Workbooks.Open("Path to file") 
    sheet = excel.Sheets("Sheet name") 
    sheet.Delete() 
    excel_file.Close(True)