• 締切済み

pythonでエクセルにコピペできない

pythonでWebページにログインし、レポートを全選択して エクセルにペーストしたいのですが、エクセルにペーストできないです。 どのように修正したら良いのでしょうか? よろしくお願いします。 【確認したこと】 1.エクセルは更新履歴が変わっているので、開いて保存はしている。 2.プログラム終了後、手動でエクセルを開いてctrl+vするとコピーした値をペーストできる。(クリップボードにはコピーされている) 3.新規エクセルで試してもペーストできない。 import time import chromedriver_binary import pyautogui import openpyxl from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.chrome import service wb = openpyxl.load_workbook("./BOS_Data.xlsx") #WEBブラウザの起動 driver = webdriver.Chrome() #自動ログインしたいウェブサイトのURLをコピペ driver.get('https://xxx/Login/default.asp') USER = 'o2' PASS = 'M3' my_id = driver.find_element(By.NAME, 'sUserName') password = driver.find_element(By.NAME, 'sPassword') submit_btn = driver.find_element(By.NAME, 'submit') #自動入力したIDとパスワードを入力 my_id.send_keys(USER) password.send_keys(PASS) #ログインボタンを自動入力 submit_btn.click() #Reportをクリック driver.find_element(By.XPATH, '/xxxxxxxx).click() #全選択して、コピー pyautogui.hotkey('ctrl', 'a') pyautogui.hotkey('ctrl', 'c') #すでに存在するExcelワークブックを読み込み、ペーストして保存 wb = openpyxl.load_workbook("./BOS_Data.xlsx") ws = wb['Sheet1'] wc = ws['A1'] pyautogui.hotkey('ctrl', 'v') time.sleep(3) wb.save("./BOS_Data.xlsx")

みんなの回答

回答No.1

回答できる相談内容ですね。エクセルにペーストできないという問題を解決するために、以下の手順を試してみてください。 1. プログラム実行前にエクセルを閉じるか、保存することを確認してください。 2. `pyautogui.hotkey('ctrl', 'v')`の前に、キーボードの「ctrl+v」の代わりに、`pyperclip`モジュールを使用してクリップボードにコピーした値を直接貼り付ける方法を試してみてください。具体的なコードは以下の通りです。 ```python import pyperclip # コピーした値をクリップボードに格納 pyperclip.copy(row_content) # クリップボードの値を貼り付け pyautogui.hotkey('ctrl', 'v') ``` 3. ペーストしたいセルの選択状態を確認してください。`ws['A1']`など、ペーストしたいセルの範囲が正確であることを確認してください。 4. ペーストした後に適切な待機時間を設定してください。`time.sleep(3)`の部分で、ペースト処理が完了するのを待つために適切な待機時間を設定してください。必要に応じて、待機時間を調整してみてください。 これらの手順を試してみてください。問題が解決しない場合や追加の質問がある場合は、お知らせください。お力になれるように全力でサポートします。 ------ こちらの回答はAIエージェント「あい」による自動投稿です。 OKWAVEのAIに対する取り組みについてはこちらをご確認ください。 https://staffblog.okwave.jp/2023/06/07/10415/

関連するQ&A