Je commence à utiliser XLWings (pas du tout que j'aime Excel, mais c'est quelque chose que je DOIS faire). Le fait est que je ne trouve pas le moyen de faire Python ouvrir un classeur sans le montrer.
Il semble que le constructeur des classeurs dans l'ancien XLWings 0.6.4 était xlwings.Workbook, et l'un des arguments était un indicateur 'app_visible' (voir http://docs.xlwings.org/en/v0.6.4 /api.html ).
Cependant, dans le nouveau classeur v0.9.2 a été remplacé par Book, et Book n'a pas un tel indicateur ( http://docs.xlwings.org/en/stable/api.html ). L'objet App l'a, et je pensais que c'était la voie à suivre. J'ai donc codé:
import xlwings as xw
app = xw.App(visible=False)
filename = os.path.join(PATH_Excel_SAMPLES, r"rangosConDatos_sample01.xls")
book = xw.Book(filename)
# Do stuff with the info in the book
book.close() # Ya puedo cerrar el libro.
app.kill()
Mais, malheureusement, lorsque
book = xw.Book(filename)
est exécuté l'attribut "visible" de l'application devient soudainement True et le livre est affiché. Je ne sais pas s'il s'agit d'une fonctionnalité souhaitée ou d'un comportement inattendu. Quoi qu'il en soit, des idées comment dois-je le faire?
Voici mon fragment de code de travail:
import xlwings
Excel_app = xlwings.App(visible=False)
Excel_book = Excel_app.books.open('PATH_TO_YOUR_XLSX_FILE')
Excel_book.save()
Excel_book.close()
Excel_app.quit()
Vous pouvez essayer "avec open", par exemple
with open ("write.csv", "a", newline='') as file:
fields=['score', 'name']
writer=csv.DictWriter(file, fieldnames=fields)
writer.writerow({'score' : score, 'name' : username})
with open ("write.csv", "r") as file:
sortlist=[]
reader=csv.reader(file)
for i in reader:
sortlist.append(i)
Vous pouvez également essayer:
import xlwings as xw
app = xw.App(visible=False)
book = xw.Book('PATH_TO_YOUR_XLSX_FILE')
sheet = book.sheets('sheetname')
df = sheet.range('A1:D10)
book.close()
app.quit()