Python: открыть сохранение и закрыть файл xlsxPython

Программы на Python
Ответить
Anonymous
 Python: открыть сохранение и закрыть файл xlsx

Сообщение Anonymous »

В проекте я генерирую/изменяю огромное количество файлов xlsx с помощью openpyxl.
Когда я помещаю один из этих файлов на Onedrive, я не могу его открыть… Но если я открою его на своем ноутбуке с помощью libreoffice, сохраню и закрою, повторно перенесу в Onedrive, то можно будет редактировать онлайн.
Я бы хотел автоматизировать процесс с помощью скрипта Python:
for every xlsx file generated
- open it with default app
- save
- close

Я пробовал использовать подпроцесс и клавиатуру, но безуспешно… Подпроцесс открывает файл, но сценарий Python останавливается, пока libreoffice все еще открыт.
Вот минималистская попытка
#!/usr/bin/env python

from openpyxl import Workbook
from pynput.keyboard import Key, Controller
import subprocess # pour lancer des processus
import time
from platform import system

nom_os = system().lower()
if "windows" in nom_os:
# programme = "start"
programme = r"C:\Program Files\Microsoft Office\root\Office16\EXCEL.EXE"
elif "osx" in nom_os or "darwin" in nom_os:
programme = "open"
else:
programme = "xdg-open"

fichier = r"./essai.xlsx"

durées=[3.5, .7, 1.]

classeur = Workbook()
classeur.save(fichier) # saves empty xlsx

keyboard = Controller()

# opens xlsx file
_sp_ = subprocess.Popen([programme, str(fichier)], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
# Pause to give workbook time to fully open.
time.sleep(durées[0])
# fills first cell in xlsx file
keyboard.type('azerty')
# saves
with keyboard.pressed(Key.ctrl):
keyboard.tap('s')

# Pause et validation pour confirmer l'enregistrement en xlsx
time.sleep(durées[1])

# closes
with keyboard.pressed(Key.ctrl):
keyboard.tap('q')

# Pause to give workbook time to fully close.
time.sleep(durées[2])
_sp_.terminate()


Подробнее здесь: https://stackoverflow.com/questions/798 ... -xlsx-file
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»