Каков наилучший способ записи на лист без перезаписи файла Excel? - PullRequest
0 голосов
/ 08 сентября 2018

У меня есть файл Excel с именем MasterFile. В MasterFile у меня есть несколько листов с формулами. Я хотел бы использовать приведенный ниже код для обновления одного листа в MasterFile без перезаписи каких-либо моих данных или формул.

Вот мой код:

from bs4 import BeautifulSoup
import requests
import pandas as pd
from openpyxl import load_workbook

url = 'http://www.baseballpress.com/lineups'

soup = BeautifulSoup(requests.get(url).text, 'html.parser')

players = [i.text for i in soup.find_all('a', {'class': 'player-link'})]


my_dict = (players)

df = pd.DataFrame(pd.Series(my_dict))

writer = pd.ExcelWriter('my2nd_webscrape.xlsx')
df.to_excel(writer,'Sheet1')
writer.save()

Я нашел некоторую информацию по этому вопросу в Как записать в существующий файл Excel, не нарушая формулы с openpyxl? , но я не уверен, как настроить мой код.

1 Ответ

0 голосов
/ 08 сентября 2018

Попробуйте это:

from bs4 import BeautifulSoup
import requests
import pandas as pd
from openpyxl import load_workbook

book = load_workbook('my2nd_webscrape.xlsx')
writer = pd.ExcelWriter('my2nd_webscrape.xlsx')
writer.book = book

url = 'http://www.baseballpress.com/lineups'
soup = BeautifulSoup(requests.get(url).text, 'html.parser')
players = [i.text for i in soup.find_all('a', {'class': 'player-link'})]
my_dict = (players)

df = pd.DataFrame(pd.Series(my_dict))
df.to_excel(writer,'Sheet1')
writer.save()
writer.close()
...