[英]Open Excel Spreadsheet (.xlsx) with Python
我從客戶那里獲得了數百個自動生成的excel文件。 我很確定它們是使用SQL網站數據庫中的數據生成的。 然后,我將這些文件合並為一個文件,然后上傳到訪問數據庫,該數據庫連接了其他軟件,該軟件可以提取信息並從中創建圖稿。 由於某些原因,由於用戶從未打開過Excel文件,因此傳入的數據帶有一些空格等異常情況。
為了解決這個問題,我編寫了一個簡單的python程序,該程序在一個文件夾中打開一個文件,保存並關閉,然后打開下一個文件-該文件夾中的每個文件都會重復執行此操作。
我嘗試使用各種可用的Excel解析器,例如openpyxl-運氣不好-因為它實際上並沒有像真正的用戶那樣保存它。 我還嘗試了具有相同結果的簡單open(excelFile w / r)。
我認為問題是在線門戶網站生成的Excel文件是其他版本(不確定100%)
import os
import time
Path = "C:/Users/username/Desktop/PythonFiles/New folder/"
filelist = os.listdir(Path)
from pynput.keyboard import Key, Controller
keyboard = Controller()
for i in filelist:
myPath= "C:/Users/username/Desktop/PythonFiles/New folder/" + i
os.startfile(myPath)
time.sleep(3)
keyboard.press(Key.ctrl)
keyboard.press('s')
keyboard.release('s')
keyboard.press('w')
keyboard.release('w')
keyboard.release(Key.ctrl)
現在我的問題。 有人知道像我在這里一樣可以打開這些文件的方式嗎—但不使用計時器,而是檢查程序何時完全打開,然后執行“ ctrl + s,ctrl + w”。 我問,因為我似乎找不到最佳的工作時間。 有時excel需要3秒鍾以上才能打開,導致無法正確關閉。
我知道,它不是Python,但也許可以幫到您。 (Autoit-autoitscript.com)
#include <File.au3>
#include <Excel.au3>
Local $files_A = _FileListToArray('C:/Users/username/Desktop/PythonFiles/New folder/', '*.xlsx', $FLTA_FILES, True)
;~ _ArrayDisplay($files_A) ; show all the files found
Local $oExcel = _Excel_Open(False, True, True, True, True)
For $i = 1 To 5 ; UBound($files_A) -1
$oWorkbook = _Excel_BookOpen($oExcel, $files_A[$i])
$oWorkbook.Saved = False
_Excel_BookSave($oWorkbook)
_Excel_BookClose($oWorkbook, True)
If @error Then MsgBox(16, 'ERROR', 'Saving ...')
Next
_Excel_Close($oExcel)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.