国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

騰訊、飛書等在線表格自動化編輯--python

這篇具有很好參考價值的文章主要介紹了騰訊、飛書等在線表格自動化編輯--python。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一 目的

我們在工作中時長會用到一些在線表格實現(xiàn)多人協(xié)作,但是有事會遇到一些例如數(shù)據(jù)的錄入等人工操作過于麻煩,或者需要周期性的操作,我們希望使用自動化的方式在指定的數(shù)據(jù)源獲取數(shù)據(jù)然后按照指定的要求填入在線表格

二 實現(xiàn)效果

【GIF】

三 實現(xiàn)過程簡介

有兩種實現(xiàn)方式:

1、本地操作表格之后進(jìn)入導(dǎo)入在線文檔

本地實現(xiàn)表格的操作就不多說,有多種方式來實現(xiàn),無非是導(dǎo)入在線表格,這里我們也是需要提前登錄才行,一般的上傳導(dǎo)入重名也不會出現(xiàn)覆蓋的情況所以我們相當(dāng)于生成一個新的表格,
在操作之前我們可以下載舊的表格數(shù)據(jù),再次基礎(chǔ)上進(jìn)行操作
然后再上傳導(dǎo)入,導(dǎo)入之前記得刪除原表格

2、直接操作在線文檔

實現(xiàn)在線文檔的編輯三步走:
1、設(shè)置瀏覽器和代理調(diào)用UI自動化操作的時候直接操作已打開的瀏覽器
2、登錄在線文檔:在打開的瀏覽器打開并登錄在線文檔--此文直接進(jìn)入需要操作的文檔
3、通過鍵盤操作來實現(xiàn)文檔內(nèi)容的增刪改查【登錄用戶要具備相應(yīng)的權(quán)限】

本文只要講解第二種方式。

四 實現(xiàn)步驟講解

1、實現(xiàn)方法的選擇

在接到需求的時候首先想到的就是接口的方式,沒辦法誰讓它最為習(xí)慣也最為穩(wěn)定呢,但是在調(diào)研過程中發(fā)現(xiàn)兩個比價難以突破的問題:
1、接口請求時需要使用cookie,存在多個cookie而且有時效性,無法實現(xiàn)保持可用cookie
2、在線表格內(nèi)容發(fā)生變更接口保存數(shù)據(jù)后分析難度比較高
最終放棄此方式,因為本身對自動化有所研究就考慮使用UI自動化的方式來實現(xiàn),有存在新的問題
1、登錄:UI自動化打開新網(wǎng)頁需要登錄【已解決】
2、表格內(nèi)容屬于畫布里面,只能定位到畫布,畫布內(nèi)部無法精確定位到每個表格【已解決】

2、導(dǎo)入類庫

from selenium import webdriver #調(diào)用webdriver
from selenium.webdriver.chrome.options import Options #設(shè)置瀏覽器初始化內(nèi)容
from selenium.webdriver.common.by import By #定位元素
from selenium.webdriver.common.keys import Keys #鍵盤操作

3、設(shè)置瀏覽器代理直接操作已打開瀏覽器

保持登錄–取巧:發(fā)現(xiàn)在線文檔只要登錄之后不主動退出/長時間不操作則都可以一直保持登錄,那我們就可以直接操作已經(jīng)登錄的在線文檔不就好啦,但是用過selenium的都知道,調(diào)用webdriver默認(rèn)會打開一個純凈的瀏覽器,后來想到一個就是我不打開新的瀏覽器,直接操作已經(jīng)打開的瀏覽器是不是就能實現(xiàn)。
下面是實現(xiàn)過程:
(1)打開瀏覽器設(shè)置端口調(diào)試代理和數(shù)據(jù)存儲:

# 進(jìn)入瀏覽器的安裝目錄中【可以在任務(wù)管理器跳轉(zhuǎn)過去】打開CMD窗口執(zhí)行下面命令既可【注意端口號和用戶數(shù)據(jù)存儲位置是可以改的】
chrome.exe --remote-debugging-port=9222 --user-data-dir="G:\test"
#9222 是端口號,最好不要和本機(jī)其他端口號沖突,G:\test打開的瀏覽器用戶數(shù)據(jù)存儲,這里設(shè)置一個存在的目錄既可
#回車之后會打開一個空白的瀏覽器,在這個瀏覽器上登錄就行,

(2)webdriver的初始化中寫入調(diào)試的數(shù)據(jù)就可以操作打開的瀏覽器,而不是重新打開新的

chrome_options = Options()
chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")

此時再執(zhí)行腳本就是操作我們上面打開的瀏覽器,不是沖洗打開空白瀏覽器啦

4、在線文檔登錄

沒啥可多說的,上一步打開的瀏覽器掃碼之類的登錄就行

5、在線文檔表格數(shù)據(jù)操作

本來想著修改哪一行數(shù)據(jù)直接定位哪一行雙擊修改既可,但是出現(xiàn)了一個小意外:表格是在一個畫布上,想定位畫布上的表格發(fā)現(xiàn)不能進(jìn)行下一步的定位啦,這讓我毫升的郁悶?zāi)?br>騰訊、飛書等在線表格自動化編輯--python,python,selenium,飛書,自動化,python,在線文檔
最終查閱了一些資料找尋到了兩種可行的辦法
(1)坐標(biāo)定位
我們可以定位到畫布,畫布是有坐標(biāo)的,我們可以通過不斷變更坐標(biāo)的位置來實現(xiàn)表格定位,
但是有一個弊端,如果表格大小發(fā)生變更了,那之前的坐標(biāo)都需要調(diào)整,而且還要手動去滑動表格

ele = 畫布定位
ActionChains(driver).move_to_element_with_offset(ele,X,Y).send_keys('輸入內(nèi)容')

最終此種方法不好用被舍棄
(2)通過鍵盤的操作
發(fā)現(xiàn)我們可以通過剪片的HOME鍵、TAB鍵、ENTER鍵,以及上下鍵實現(xiàn)表格定位
在表格的最上方輸入框是在畫布之外的可以進(jìn)行增刪改查等操作
騰訊、飛書等在線表格自動化編輯--python,python,selenium,飛書,自動化,python,在線文檔

driver.find_element(By.XPATH, '//*[@id="alloy-simple-text-editor"]').send_keys(Keys.HOME)
driver.find_element(By.XPATH, '//*[@id="alloy-simple-text-editor"]').send_keys(Keys.CONTROL, Keys.UP)
driver.find_element(By.XPATH, '//*[@id="alloy-simple-text-editor"]').send_keys(Keys.ENTER)
driver.find_element(By.XPATH, '//*[@id="alloy-simple-text-editor"]').send_keys(Keys.TAB)

然后我們根據(jù)獲取到的數(shù)據(jù)來進(jìn)行判斷、修改、刪除等操作,也可以進(jìn)行追加寫入,一般是按行寫入

# 這是每行需要寫入的數(shù)據(jù),當(dāng)前就設(shè)置了一行,如果更多的話使用列表就行
list = [1,2,3,54]
# 獲取第一列數(shù)據(jù)
driver.find_element(By.XPATH,'//*[@id="alloy-simple-text-editor"]').click()
txt = driver.find_element(By.XPATH,'//*[@id="alloy-simple-text-editor"]/p').text
# 判斷為空輸入數(shù)據(jù),否則進(jìn)入下一行,追加的方式添加數(shù)據(jù)
if txt =='':
	for i in range(len(list)):
		driver.find_element(By.XPATH, '//*[@id="alloy-simple-text-editor"]/p').send_keys(list[i])
		driver.find_element(By.XPATH,'//*[@id="alloy-simple-text-editor"]').send_keys(Keys.TAB)#進(jìn)入下一個單元格
driver.find_element(By.XPATH, '//*[@id="alloy-simple-text-editor"]').send_keys(Keys.ENTER)  # 進(jìn)入下一個行

6、行數(shù)不夠自動添加行數(shù)

我們都知道插入數(shù)據(jù)的時候在線表格一般只加載200行,需要更多就自己添加,這里我們就可以使用最下方的添加按鈕添加行,當(dāng)然我們要檢測出現(xiàn)添加按鈕–也就是到最后一行之后才點擊添加

    # 行數(shù)不夠添加行數(shù)
    try:
        driver.find_element(By.XPATH, '//*[text()="添加"]').click()
    except:
        print('不需要擴(kuò)展列表')

五 代碼實現(xiàn)

完整代碼文章來源地址http://www.zghlxwxcb.cn/news/detail-558382.html

# -*- coding: utf-8 -*-
'''
@Time    : 2023/7/12 15:39
@File    : 在線文檔寫入數(shù)據(jù).py
'''

'''
實現(xiàn)在線文檔的編輯三步走:
1、設(shè)置瀏覽器和代理調(diào)用UI自動化操作的時候直接操作已打開的瀏覽器
2、登錄在線文檔:在打開的瀏覽器打開并登錄在線文檔--此文直接進(jìn)入需要操作的文檔
3、通過鍵盤操作來實現(xiàn)文檔內(nèi)容的增刪改查【登錄用戶要具備相應(yīng)的權(quán)限】
'''
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys


# 文件存儲位置打開瀏覽器
# chrome.exe --remote-debugging-port=9222 --user-data-dir="G:\test"


chrome_options = Options()
chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")
driver = webdriver.Chrome(options=chrome_options)
driver.get('https://docs.qq.com/sheet/DTEtLSW5NWldEcWJE?tab=gqke19')
print(driver.title)

j = 0 #使用變量來定位列表

# 移動焦點到第一行第一列
driver.find_element(By.XPATH, '//*[@id="alloy-simple-text-editor"]').send_keys(Keys.HOME)
driver.find_element(By.XPATH, '//*[@id="alloy-simple-text-editor"]').send_keys(Keys.CONTROL, Keys.UP)
driver.find_element(By.XPATH, '//*[@id="alloy-simple-text-editor"]').send_keys(Keys.ENTER)
driver.find_element(By.XPATH, '//*[@id="alloy-simple-text-editor"]').send_keys(Keys.TAB)
# 這是每行需要寫入的數(shù)據(jù),當(dāng)前就設(shè)置了一行,如果更多的話使用列表就行
list = [1,2,3,54]

for i in range(300):#循環(huán)行,這里是操作最大行數(shù)
    driver.find_element(By.XPATH, '//*[@id="alloy-simple-text-editor"]').send_keys(Keys.HOME) #先跳到當(dāng)前行的第一列
    driver.find_element(By.XPATH, '//*[@id="alloy-simple-text-editor"]').click()
    s = driver.find_element(By.XPATH,'//*[@class="bar-label"]').text #獲取此行的行數(shù)
    a = int(s[1:])-1 #將A**去除A,留下數(shù)字,如果你的排序為行的相差則減去幾即可
    print(a)

    # 獲取第一列數(shù)據(jù)
    driver.find_element(By.XPATH,'//*[@id="alloy-simple-text-editor"]').click()
    txt = driver.find_element(By.XPATH,'//*[@id="alloy-simple-text-editor"]/p').text
    # 判斷為空輸入數(shù)據(jù),否則進(jìn)入下一行,追加的方式添加數(shù)據(jù)
    if txt =='':
        for i in range(len(list)):
            driver.find_element(By.XPATH, '//*[@id="alloy-simple-text-editor"]/p').send_keys(list[i])
            driver.find_element(By.XPATH,'//*[@id="alloy-simple-text-editor"]').send_keys(Keys.TAB)#進(jìn)入下一個單元格
    driver.find_element(By.XPATH, '//*[@id="alloy-simple-text-editor"]').send_keys(Keys.ENTER)  # 進(jìn)入下一個行

    # 行數(shù)不夠添加行數(shù)
    try:
        driver.find_element(By.XPATH, '//*[text()="添加"]').click()
    except:
        print('不需要擴(kuò)展列表')

小結(jié)

到了這里,關(guān)于騰訊、飛書等在線表格自動化編輯--python的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 自動化應(yīng)用雜志自動化應(yīng)用雜志社自動化應(yīng)用編輯部2023年第11期目錄

    自動化應(yīng)用雜志自動化應(yīng)用雜志社自動化應(yīng)用編輯部2023年第11期目錄

    ? 數(shù)據(jù)處理與人工智能 ??? 大數(shù)據(jù)視域下無軌設(shè)備全生命周期健康管理技術(shù)的研究 ??? 賴凡; 1-3 ??? 三維激光掃描結(jié)合無人機(jī)傾斜攝影在街區(qū)改造測繪中的技術(shù)應(yīng)用 ??? 張睿; 4-6 ??? 井上變電站巡檢機(jī)器人的設(shè)計與應(yīng)用 ??? 劉芳; 7-9 《自動化應(yīng)用》投稿郵箱:cnqikant

    2024年02月13日
    瀏覽(29)
  • Python自動化小技巧18——自動化資產(chǎn)月報(word設(shè)置字體表格樣式,查找替換文字)

    Python自動化小技巧18——自動化資產(chǎn)月報(word設(shè)置字體表格樣式,查找替換文字)

    案例背景 每月都要寫各種月報,經(jīng)營管理月報,資產(chǎn)月報.....這些報告文字目標(biāo)都是高度相似的,只是需要替換為每個月的實際數(shù)據(jù)就行,如下: ? (打碼是怕信息泄露.....) 可以看到,這個報告的都是高度模板化,我們只需要對里面的某些文字進(jìn)行替換,例如2023年7月?lián)Q成2

    2024年02月12日
    瀏覽(23)
  • python自動化辦公——讀取PPT寫入word表格

    python自動化辦公——讀取PPT寫入word表格

    ??由于我們知識圖譜課程需要將課堂小組匯報的PPT總結(jié)成word文檔,而我覺得一頁一頁復(fù)制PPT中的內(nèi)容比較麻煩,所以直接安排:讀PPT寫word ??需要操作PPT幻燈片和word文檔,所以需要導(dǎo)入docx 和pptx兩個包 這里我的docx使用的是0.2.4版本 pptx使用的是0.6.21版本供參考 引入os、ppt

    2024年02月11日
    瀏覽(25)
  • Python自動化測試——在線生成接口文檔

    Python自動化測試——在線生成接口文檔

    目錄 前言 API 文檔導(dǎo)入生成 在項目詳情頁點擊左側(cè) API 功能,進(jìn)入 API 管理頁面,直接點擊下拉框選擇導(dǎo)入 API? 自動生成文檔 通過使用接口文檔工具 Eolink 演示如何自動生成文檔 使用 API Factory 產(chǎn)品根據(jù)數(shù)據(jù)庫生成 API 文檔 結(jié)語 接口文檔是項目開發(fā)中必需的說明文檔,接口文

    2024年02月07日
    瀏覽(21)
  • 自動化實時在線靜電監(jiān)控系統(tǒng)的構(gòu)成

    自動化實時在線靜電監(jiān)控系統(tǒng)的構(gòu)成

    自動化實時在線靜電監(jiān)控系統(tǒng)是一種幫助企業(yè)監(jiān)測和管理靜電問題的技術(shù)解決方案。靜電在許多工業(yè)和商業(yè)環(huán)境中都是一個潛在的風(fēng)險和生產(chǎn)問題。通過使用這樣的監(jiān)控系統(tǒng),企業(yè)可以及時發(fā)現(xiàn)并采取對策來預(yù)防或減輕可能的靜電問題。 該系統(tǒng)通常由以下組成部分構(gòu)成: 1

    2024年02月10日
    瀏覽(20)
  • 自動化的采集鏈接和自動推送必應(yīng)的在線工具

    自動化的采集鏈接和自動推送必應(yīng)的在線工具

    搜索LMCJL在線工具 進(jìn)入后點擊站長工具類型,選擇必應(yīng)自動推送 進(jìn)去后,添加域名,點擊數(shù)據(jù)管理,輸入必應(yīng)的token 然后開啟推送,就可以實現(xiàn),自動化采集鏈接,自動推送給必應(yīng)。 必應(yīng)的站長后臺官網(wǎng)有時候需要梯子才可以訪問,建議有需要的可以了解一下。

    2024年02月07日
    瀏覽(20)
  • Python UI自動化 —— 關(guān)鍵字+excel表格數(shù)據(jù)驅(qū)動

    Python UI自動化 —— 關(guān)鍵字+excel表格數(shù)據(jù)驅(qū)動

    1. 對selenium進(jìn)行二次封裝,創(chuàng)建的庫 2. 準(zhǔn)備一個表格文件來寫入所有測試用例步驟 3. 對表格內(nèi)容進(jìn)行讀取,使用映射關(guān)系來對用例進(jìn)行調(diào)用執(zhí)行 ? ? 4. 執(zhí)行用例 1. 對selenium進(jìn)行二次封裝,創(chuàng)建的庫 2. 創(chuàng)建一個表格,寫入測試步驟 將表格放入項目任意路徑下,記

    2024年02月09日
    瀏覽(22)
  • Vue實現(xiàn)自動化平臺(五)--用例編輯頁面

    Vue實現(xiàn)自動化平臺(五)--用例編輯頁面

    上一章:Vue實現(xiàn)自動化平臺(四)--接口管理頁面的實現(xiàn)_做測試的喵醬的博客-CSDN博客 github地址:https://github.com/18713341733/vuemiaotest? 這個目前只是用來練手的,項目還沒成型。等以后我寫完了,再更新一下項目鏈接。? ? 編輯用例頁面,樣式展示來源于postman的樣式。 本章需

    2023年04月20日
    瀏覽(26)
  • 【自動化測試】Selenium IDE腳本編輯與操作

    【自動化測試】Selenium IDE腳本編輯與操作

    之前,我們錄制腳本時是錄制鼠標(biāo)和鍵盤的所有在瀏覽器的操作,那么腳本會出現(xiàn)多余的步驟,有時候我們需要手動填寫腳本或修改腳本,所以我們有必要對selenium IDE腳本編輯與操作有所了解;(采用錄制的方式很容易記錄出多余的操作) Selenium IDE腳本編輯與操作 【了解】

    2024年02月15日
    瀏覽(21)
  • 成集云 | 多維表格自動化管理jira Server項目 | 解決方案

    成集云 | 多維表格自動化管理jira Server項目 | 解決方案

    源系統(tǒng) 成集云 目標(biāo)系統(tǒng) 基于成集云集成平臺,在多維表格中的需求任務(wù)信息自動創(chuàng)建、更新同步至 Jira Server 的指定項目中,實現(xiàn)多維表格中一表管理 Jira Server 中的項目進(jìn)度。 維格表是一種新一代的團(tuán)隊數(shù)據(jù)協(xié)作和項目管理工具,它結(jié)合了可視化數(shù)據(jù)庫、電子表格、實時網(wǎng)

    2024年02月10日
    瀏覽(18)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包