<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # WPS 重要API(表格部分) ## 開始 ### 簡介 > 本文中所有的測試都是在Python 3.8.5的環境中進行實現的,IDE為Pycharm > > 引用的庫主要是Pywin32,通過該庫直接調用WPS提供的開發API,因此必須在計算機上安裝WPS,遷移時記得在目標主機上安裝需要的依賴庫(當然也可以直接打包成exe) > > 由于這種方式直接就是操縱WPS,因此完全可以用一樣的方式去調用Excel,但需要根據Office官方提供的二次開發庫做一小部分修改(遷移幅度應該不大,因為這其間具有一整套API標準) ### 快速測試 #### 導入庫 ~~~ ?# 必須引入client,直接引入win32com可能報錯 ?import win32com.client ~~~ #### 聲明application(加載wps的表格) ~~~ ?# 實際上測試excel時也可以直接這樣做 ?application = win32com.client.Dispatch('Excel.Application') ~~~ #### 打開WPS文件 ~~~ ?# Path指的是本地表格文件的路徑,比如: ?# Path = r"c:\Users\Aine\Desktop\a.xlsx" ?# 通過Win32的方式并不限制xls和xlsx(因為操作是wps在做) ?workbook = application.Workbooks.Open(Path) ~~~ #### 讀取表格文件中的表 ~~~ ?# Sheet指的就是表名(注意不是文件名) ?worksheet = workbook.Worksheets(Sheet) ~~~ #### 修改單元格的內容 ~~~ ?worksheet.Cells(1, 1).Value = 'Hello World' ~~~ #### 修改表名稱 ~~~ ?worksheet.Name = 'MySheet' ~~~ #### 保存并退出 ~~~ ?# Path是指要將文件保存到哪一個位置 ?worksheet.SaveAs(Path) ~~~ #### 操作完成后退出表格文件 ~~~ ?# 注意,此處退出的是文件,而不是WPS程序 ?# 相當于在WPS中關閉了文件 ?# 如果操作完表格不關閉文件,極有可能會造成文件無法打開 ?workbook.Close() ~~~ #### 最后一定要記得退出ET(表格) ~~~ ?application.Quit() ~~~ ### 流程概況 > 1. 加載Application > > 2. 通過Application獲取Workbook > > 3. 通過Workbook的Worksheets獲取Worksheet > > 4. 根據獲取到的表對數據進行操作 > > 5. 保存修改/另存為 > > 6. 關閉Workbook(文件) > > 7. 關閉Application(ET) > ## 重要API #### Application > 參考 [WPS開放文檔](https://open.wps.cn/docs/office) > > Application相當于WPS中表格的主程序(也稱為et),在Python + Pywin32中,首先要通過Dispatch加載程序 ##### 重要方法 ###### FindFile和GetOpenFilename(打開文件對話框) > [參考信息(FindFile)](https://qn.cache.wpscdn.cn/encs/doc/office_v11/index.htm?page=WPS%20%E5%8A%A0%E8%BD%BD%E9%A1%B9%E5%BC%80%E5%8F%91/%E8%A1%A8%E6%A0%BC%20API%20%E5%8F%82%E8%80%83/Application/%E6%96%B9%E6%B3%95/FindFile%20%E6%96%B9%E6%B3%95.htm) > > [參考信息(GetOpenFilename)](https://qn.cache.wpscdn.cn/encs/doc/office_v11/index.htm?page=WPS%20%E5%8A%A0%E8%BD%BD%E9%A1%B9%E5%BC%80%E5%8F%91/%E8%A1%A8%E6%A0%BC%20API%20%E5%8F%82%E8%80%83/Application/%E6%96%B9%E6%B3%95/GetOpenFilename%20%E6%96%B9%E6%B3%95.htm) ~~~ ?# FindFile方法 ?# 該方法屬于Application對象的方法,調用后會前臺顯示WPS界面,并彈出打開文件對話框。 ?# 注意,該對話框不會返回打開文件的路徑,但會返回是否打開成功 ?# 當選擇了一個文件,會在前臺打開該文件 ?Application.FindFile() ?# GetOpenFilename方法 ?# 和FindFile方法不同,這個方法并不會前臺打開文件,而是彈出一個打開文件對話框 ?# 該方法返回的值是文件的全路徑 ?# 通常有需要的情況下是使用GetOpenFilename方法 ?Application.GetOpenFilename() ~~~ ###### GetSaveAsFilename(彈出另存為對話框) > [參考信息](https://qn.cache.wpscdn.cn/encs/doc/office_v11/index.htm?page=WPS%20%E5%8A%A0%E8%BD%BD%E9%A1%B9%E5%BC%80%E5%8F%91/%E8%A1%A8%E6%A0%BC%20API%20%E5%8F%82%E8%80%83/Application/%E6%96%B9%E6%B3%95/GetSaveAsFilename%20%E6%96%B9%E6%B3%95.htm) ~~~ ?# GetSaveAsFilename方法 ?# 該方法和GetOpenFilename類似,都不會真正的進行另存為操作,而是返回用戶選擇的全路徑 ?Application.GetSaveAsFilename() ~~~ ###### InputBox(彈出一個接受用戶輸入的對話框) > [參考信息](https://qn.cache.wpscdn.cn/encs/doc/office_v11/index.htm?page=WPS%20%E5%8A%A0%E8%BD%BD%E9%A1%B9%E5%BC%80%E5%8F%91/%E8%A1%A8%E6%A0%BC%20API%20%E5%8F%82%E8%80%83/Application/%E6%96%B9%E6%B3%95/InputBox%20%E6%96%B9%E6%B3%95.htm) ~~~ ?# 該方法會彈出一個包含一個文本框的對話框,并返回用戶的輸入 ?# 該文本框可以接受多種數值,也可以指定其標題、初始值、位置以及返回值類型 ?# 具體參數參考官方文檔 ↑↑↑ ?Application.InputBox("請輸入密碼","警告","123456") ~~~ ###### Run和Wait > [參考消息(Run)](https://qn.cache.wpscdn.cn/encs/doc/office_v11/index.htm?page=WPS%20%E5%8A%A0%E8%BD%BD%E9%A1%B9%E5%BC%80%E5%8F%91/%E8%A1%A8%E6%A0%BC%20API%20%E5%8F%82%E8%80%83/Application/%E6%96%B9%E6%B3%95/Run%20%E6%96%B9%E6%B3%95.htm) > > [參考消息(Wait)](https://qn.cache.wpscdn.cn/encs/doc/office_v11/index.htm?page=WPS%20%E5%8A%A0%E8%BD%BD%E9%A1%B9%E5%BC%80%E5%8F%91/%E8%A1%A8%E6%A0%BC%20API%20%E5%8F%82%E8%80%83/Application/%E6%96%B9%E6%B3%95/Wait%20%E6%96%B9%E6%B3%95.htm) ~~~ ?# Run方法用于運行一個宏或調用一個VB程序 ?# 注意,個人版一般是不支持宏調用的 ?# Wait方法用于暫停運行宏 ?Application.Run(要運行的宏) ?# Wait會暫停ET的一切操作,當然不會暫停打印和重新計算 ?# 傳入的值是必須的,含義是下一次繼續運行的時間,比如Wait("12:20:00") ?Application.Wait(繼續運行的時間) ~~~ 當然也可以暫停運行指定的時間,比如十分鐘(官方例程) ~~~ ?let now = new Date() ?let seconds = now.getTime() ?now.setTime(seconds + 1000 * 10) ?Application.Wait(now.toLocaleString()) ~~~ ###### Quit > [參考信息](https://qn.cache.wpscdn.cn/encs/doc/office_v11/index.htm?page=WPS%20%E5%8A%A0%E8%BD%BD%E9%A1%B9%E5%BC%80%E5%8F%91/%E8%A1%A8%E6%A0%BC%20API%20%E5%8F%82%E8%80%83/Application/%E6%96%B9%E6%B3%95/Quit%20%E6%96%B9%E6%B3%95.htm) ~~~ ?# Quit幾乎是最需要但最容易忘記的方法,它負責退出ET程序,注意,該方法要在退出表格文件之后執行 ?# 另外,如果有未保存的Workbook,ET會彈出對話框詢問用戶是否關閉,可以通過將Application中的DisplayAlerts設置為False(不顯示信息,會直接不保存退出) ?Application.Quit() ~~~ ##### 重要屬性 ###### ActivePrinter(獲取/設置打印機) ~~~ ?# String類型 ?Application.ActivePrinter ~~~ ###### Build(獲取ET內部版本號) ~~~ ?Application.Build ~~~ ###### DisplayFullScreen(是否全屏) ~~~ ?# 指示ET當前是否為全屏狀態,可讀寫(True 全屏; FaLse 非全屏) ?Application.DisplayFullScreen ~~~ ###### EnableSound(是否允許發聲) ~~~ ?# 該屬性指示ET是否可以發出聲音,Boolean,可讀寫 ?Application.EnableSound ~~~ ###### HighQualityModeForGraphics(高質量打印圖形) ~~~ ?# Boolean ?Application.HighQualityModeForGraphics ~~~ ###### Hinstance(獲取ET的句柄) ~~~ ?# 只讀 ?Application.Hinstance ~~~ ###### OperatingSystem(獲取操作系統版本) ~~~ ?# 只讀 ?Application.OperatingSystem ~~~ ###### Path(獲取WPS所在目錄) ~~~ ?# 只讀 ?Application.Path ~~~ ###### PrintCommunication(測試打印機可達性) ~~~ ?Application.PrintCommunication ~~~ ###### Ready(ET是否就緒) ~~~ ?# 判斷ET是否準備就緒 ?Application.Ready ~~~ ###### ScreenUpdating(屏幕更新) ~~~ ?# 一般設置為True,如果需要加快宏(包括Py腳本)運行,可以暫時設置為False ?Application.ScreenUpdating ~~~ ###### StatusBar(設置狀態欄文字) ~~~ ?# 可以獲取和設置ET下方狀態欄的文本 ?Application.StatusBar ~~~ ###### UserControl (判斷窗口是否由用戶打開) ~~~ ?# 如果用戶創建或者ET可見,該值為True,如果以代碼方式打開切應用程序隱藏,該值為False ?Application.UserControl ~~~ ###### UserName (獲取系統用戶名) ~~~ ?Application.UserName ~~~ ###### Version(ET版本號) ~~~ ?Application.Version ~~~ ###### Visible(是否可見) ~~~ ?# 確定ET是否可見(一般不用設置,如果設置可能造成運行時閃一下屏) ?Application.Visible ~~~ ###### Workbooks(打開的工作表) ~~~ ?# 最重要的屬性之一,代表所有打開的ET文件 ?Application.Workbooks ?# 可以通過它調取Open方法來打開ET文件 ?workbook = application.Workbooks.Open(Path) ~~~ ###### Worksheets(Sheets集合) ~~~ ?# 代表Sheets集合 ?# 對于Application對象來說,該屬性代表活動工作簿(文件)中的所有工作表(sheet) ?Application.Worksheets ~~~ * * * #### Workbook > 參考 [WPS開放文檔](https://open.wps.cn/docs/office) > > Workbook相當于在ET中打開的一個文件,注意是一個文件而不是文件中的表格 > > Workbook對象一般是由打開文件產生的,當然這不唯一 ##### 重要方法 ###### **[PrintOut](https://qn.cache.wpscdn.cn/encs/doc/office_v11/topics/C++%20%E5%BA%94%E7%94%A8%E9%9B%86%E6%88%90%20WPS%20%E6%8C%87%E5%8D%97/%E8%A1%A8%E6%A0%BC%20API%20%E5%8F%82%E8%80%83/Workbook/%E6%96%B9%E6%B3%95/PrintOut%20%E6%96%B9%E6%B3%95.htm)**(打印文檔) > **[PrintOut](https://qn.cache.wpscdn.cn/encs/doc/office_v11/topics/C++%20%E5%BA%94%E7%94%A8%E9%9B%86%E6%88%90%20WPS%20%E6%8C%87%E5%8D%97/%E8%A1%A8%E6%A0%BC%20API%20%E5%8F%82%E8%80%83/Workbook/%E6%96%B9%E6%B3%95/PrintOut%20%E6%96%B9%E6%B3%95.htm)**可用的參數很多,并且都是可選參數,可用控制打印的起始頁、終止頁、份數、是否調用打印預覽(默認False)、活動的打印機名、是否打印到文件、是否逐份打印、是否忽略打印區域并打印整個文檔和區域語言 ~~~ ?Workbook.PrintOut(起始頁, 終止頁, 份數, 打印預覽, 活動的打印機, 是否打印到文件, 逐份打印, 打印到文件的位置, 是否打印整個對象, 區域語言) ~~~ ###### **[Save](https://qn.cache.wpscdn.cn/encs/doc/office_v11/topics/C++%20%E5%BA%94%E7%94%A8%E9%9B%86%E6%88%90%20WPS%20%E6%8C%87%E5%8D%97/%E8%A1%A8%E6%A0%BC%20API%20%E5%8F%82%E8%80%83/Workbook/%E6%96%B9%E6%B3%95/Save%20%E6%96%B9%E6%B3%95.htm)**(保存文件) > 保存對指定工作簿所做的更改 ~~~ ?Workbook.Save() ~~~ ###### **[SaveAs](https://qn.cache.wpscdn.cn/encs/doc/office_v11/topics/C++%20%E5%BA%94%E7%94%A8%E9%9B%86%E6%88%90%20WPS%20%E6%8C%87%E5%8D%97/%E8%A1%A8%E6%A0%BC%20API%20%E5%8F%82%E8%80%83/Workbook/%E6%96%B9%E6%B3%95/SaveAs%20%E6%96%B9%E6%B3%95.htm)**(另存為文件) > 另存文檔到指定位置 > > 參數很多,比較常用的一般是Filename(保存到)、FileFormat(保存格式) ~~~ ?Workbook.SaveAs(文件路徑,文件格式...) ~~~ ###### **[Close](https://qn.cache.wpscdn.cn/encs/doc/office_v11/topics/C++%20%E5%BA%94%E7%94%A8%E9%9B%86%E6%88%90%20WPS%20%E6%8C%87%E5%8D%97/%E8%A1%A8%E6%A0%BC%20API%20%E5%8F%82%E8%80%83/Workbook/%E6%96%B9%E6%B3%95/Close%20%E6%96%B9%E6%B3%95.htm)**(關閉工作簿) > 一定記得用完關掉,關掉工作簿之前要記得保存 > > 雖然具有參數,但一般不需要傳參 ###### **[SendMail](https://qn.cache.wpscdn.cn/encs/doc/office_v11/topics/C++%20%E5%BA%94%E7%94%A8%E9%9B%86%E6%88%90%20WPS%20%E6%8C%87%E5%8D%97/%E8%A1%A8%E6%A0%BC%20API%20%E5%8F%82%E8%80%83/Workbook/%E6%96%B9%E6%B3%95/SendMail%20%E6%96%B9%E6%B3%95.htm)**(發送郵件) > 這種方式當然可以使用,但如果想要直接后臺發送,完全可以使用Python的yagmail庫,一般的只需要兩行代碼就完成發送 ~~~ ?Workbook.SendMail(收件人,主題,是否請求返回收件人,區域語言) ~~~ ###### **[XmlImport](https://qn.cache.wpscdn.cn/encs/doc/office_v11/topics/C++%20%E5%BA%94%E7%94%A8%E9%9B%86%E6%88%90%20WPS%20%E6%8C%87%E5%8D%97/%E8%A1%A8%E6%A0%BC%20API%20%E5%8F%82%E8%80%83/Workbook/%E6%96%B9%E6%B3%95/XmlImport%20%E6%96%B9%E6%B3%95.htm)**(XML轉XLS/XLSX) > 實際上是導入Xml文件導入到工作表中,真實現轉換只需要保存即可 ~~~ ?Workbook.XmlImport(URL/UNC路徑,XmlMap架構映射) ~~~ ##### 重要屬性 ###### **[FullName](https://qn.cache.wpscdn.cn/encs/doc/office_v11/topics/C++%20%E5%BA%94%E7%94%A8%E9%9B%86%E6%88%90%20WPS%20%E6%8C%87%E5%8D%97/%E8%A1%A8%E6%A0%BC%20API%20%E5%8F%82%E8%80%83/Workbook/%E5%B1%9E%E6%80%A7/FullName%20%E5%B1%9E%E6%80%A7.htm)**(打開的工作簿的全路徑) > 一般用來獲取當前打開文件的全路徑 ###### **[Password](https://qn.cache.wpscdn.cn/encs/doc/office_v11/topics/C++%20%E5%BA%94%E7%94%A8%E9%9B%86%E6%88%90%20WPS%20%E6%8C%87%E5%8D%97/%E8%A1%A8%E6%A0%BC%20API%20%E5%8F%82%E8%80%83/Workbook/%E5%B1%9E%E6%80%A7/Password%20%E5%B1%9E%E6%80%A7.htm)**(如果打開工作簿需要密碼,在此處設置) ~~~ ?# 一般也用不上,但也不是不可能 ?Workbook.Password() ~~~ ###### **[ReadOnly](https://qn.cache.wpscdn.cn/encs/doc/office_v11/topics/C++%20%E5%BA%94%E7%94%A8%E9%9B%86%E6%88%90%20WPS%20%E6%8C%87%E5%8D%97/%E8%A1%A8%E6%A0%BC%20API%20%E5%8F%82%E8%80%83/Workbook/%E5%B1%9E%E6%80%A7/ReadOnly%20%E5%B1%9E%E6%80%A7.htm)**(判斷打開的文件是否是只讀的) > 只讀狀態一般是因為已經打開了 > > 也有可能是之前通過程序打開但是沒有進行關閉(.Close()方法) ###### **[Saved](https://qn.cache.wpscdn.cn/encs/doc/office_v11/topics/C++%20%E5%BA%94%E7%94%A8%E9%9B%86%E6%88%90%20WPS%20%E6%8C%87%E5%8D%97/%E8%A1%A8%E6%A0%BC%20API%20%E5%8F%82%E8%80%83/Workbook/%E5%B1%9E%E6%80%A7/Saved%20%E5%B1%9E%E6%80%A7.htm)** (文件是否保存) > 可以根據此屬性判斷文件是否已經保存,防止數據丟失 ###### **[Worksheets](https://qn.cache.wpscdn.cn/encs/doc/office_v11/topics/C++%20%E5%BA%94%E7%94%A8%E9%9B%86%E6%88%90%20WPS%20%E6%8C%87%E5%8D%97/%E8%A1%A8%E6%A0%BC%20API%20%E5%8F%82%E8%80%83/Workbook/%E5%B1%9E%E6%80%A7/Worksheets%20%E5%B1%9E%E6%80%A7.htm)**(工作簿中所有的工作表) > 一般都是通過這種方式來獲取Sheets對象,灰常重要 * * * #### Workbooks ##### 重要方法 **[Add](https://qn.cache.wpscdn.cn/encs/doc/office_v11/topics/C++%20%E5%BA%94%E7%94%A8%E9%9B%86%E6%88%90%20WPS%20%E6%8C%87%E5%8D%97/%E8%A1%A8%E6%A0%BC%20API%20%E5%8F%82%E8%80%83/Workbooks/%E6%96%B9%E6%B3%95/Add%20%E6%96%B9%E6%B3%95.htm)** (新建工作表) **[Open](https://qn.cache.wpscdn.cn/encs/doc/office_v11/topics/C++%20%E5%BA%94%E7%94%A8%E9%9B%86%E6%88%90%20WPS%20%E6%8C%87%E5%8D%97/%E8%A1%A8%E6%A0%BC%20API%20%E5%8F%82%E8%80%83/Workbooks/%E6%96%B9%E6%B3%95/Open%20%E6%96%B9%E6%B3%95.htm)**(打開工作表) **[Close](https://qn.cache.wpscdn.cn/encs/doc/office_v11/topics/C++%20%E5%BA%94%E7%94%A8%E9%9B%86%E6%88%90%20WPS%20%E6%8C%87%E5%8D%97/%E8%A1%A8%E6%A0%BC%20API%20%E5%8F%82%E8%80%83/Workbooks/%E6%96%B9%E6%B3%95/Close%20%E6%96%B9%E6%B3%95.htm)** (關閉對象) **[OpenDatabase](https://qn.cache.wpscdn.cn/encs/doc/office_v11/topics/C++%20%E5%BA%94%E7%94%A8%E9%9B%86%E6%88%90%20WPS%20%E6%8C%87%E5%8D%97/%E8%A1%A8%E6%A0%BC%20API%20%E5%8F%82%E8%80%83/Workbooks/%E6%96%B9%E6%B3%95/OpenDatabase%20%E6%96%B9%E6%B3%95.htm)**(打開數據庫) **[OpenText](https://qn.cache.wpscdn.cn/encs/doc/office_v11/topics/C++%20%E5%BA%94%E7%94%A8%E9%9B%86%E6%88%90%20WPS%20%E6%8C%87%E5%8D%97/%E8%A1%A8%E6%A0%BC%20API%20%E5%8F%82%E8%80%83/Workbooks/%E6%96%B9%E6%B3%95/OpenText%20%E6%96%B9%E6%B3%95.htm)**(打開文本文件) **[OpenXML](https://qn.cache.wpscdn.cn/encs/doc/office_v11/topics/C++%20%E5%BA%94%E7%94%A8%E9%9B%86%E6%88%90%20WPS%20%E6%8C%87%E5%8D%97/%E8%A1%A8%E6%A0%BC%20API%20%E5%8F%82%E8%80%83/Workbooks/%E6%96%B9%E6%B3%95/OpenXML%20%E6%96%B9%E6%B3%95.htm)**(打開XML) ##### 重要屬性 **[Count](https://qn.cache.wpscdn.cn/encs/doc/office_v11/topics/C++%20%E5%BA%94%E7%94%A8%E9%9B%86%E6%88%90%20WPS%20%E6%8C%87%E5%8D%97/%E8%A1%A8%E6%A0%BC%20API%20%E5%8F%82%E8%80%83/Workbooks/%E5%B1%9E%E6%80%A7/Count%20%E5%B1%9E%E6%80%A7.htm)**(獲取工作表的數量)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看