簡體   English   中英

使用Python打開Excel電子表格(.xlsx)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM