J'essaie d'utiliser xlsxwriter pour créer un fichier Excel et nommer un fichier comme date et heure actuelles. Pour le contexte, je veux ajouter ceci dans un grattoir Web, qui est configuré pour s'exécuter tous les jours à midi et l'exporter vers Excel. Je veux que les noms de fichiers correspondent au temps d'éraflure.Utilisez xlswriter pour nommer un fichier comme date et heure actuelles
J'ai essayé d'utiliser la fonction datetime sans succès:
import xlsxwriter
import datetime
# Create a workbook and add a worksheet.
todays_date = "'" + datetime.datetime.now().strftime("%Y-%m-%d %H:%M") + '.xlsx' + "'"
workbook = xlsxwriter.Workbook(todays_date)
worksheet = workbook.add_worksheet()
# Some data we want to write to the worksheet.
expenses = (
['Rent', 1000],
['Gas', 100],
['Food', 300],
['Gym', 50],
)
# Start from the first cell. Rows and columns are zero indexed.
row = 0
col = 0
# Iterate over the data and write it out row by row.
for item, cost in (expenses):
worksheet.write(row, col, item)
worksheet.write(row, col + 1, cost)
row += 1
# Write a total using a formula.
worksheet.write(row, 0, 'Total')
worksheet.write(row, 1, '=SUM(B1:B4)')
workbook.close()
Est-ce que quelqu'un sait pourquoi cela ne fonctionne pas ou une autre alternative?
@Sandeep Hukku - Code modifié ci-dessous:
import xlsxwriter
import datetime
# Create a workbook and add a worksheet.
# todays_date = "'" + datetime.datetime.now().strftime("%Y-%m-%d %H:%M") + '.xlsx' + "'"
todays_date = str(datetime.datetime.now().strftime("%Y-%m-%d %H:%M"))+ '.xlsx'
workbook = xlsxwriter.Workbook(todays_date)
worksheet = workbook.add_worksheet()
# Some data we want to write to the worksheet.
expenses = (
['Rent', 1000],
['Gas', 100],
['Food', 300],
['Gym', 50],
)
# Start from the first cell. Rows and columns are zero indexed.
row = 0
col = 0
# Iterate over the data and write it out row by row.
for item, cost in (expenses):
worksheet.write(row, col, item)
worksheet.write(row, col + 1, cost)
row += 1
# Write a total using a formula.
worksheet.write(row, 0, 'Total')
worksheet.write(row, 1, '=SUM(B1:B4)')
workbook.close()
@Snehal Parmar - deuxième mise à jour:
importation urllib importation urllib.request de datetime import import BeautifulSoup import BS4 xlsxwriter
# Web scraping
def make_soup(url):
the_page = urllib.request.urlopen(url)
soup_data = BeautifulSoup(the_page, "html.parser")
return soup_data
soup = make_soup('http://www.url.co.uk')
def getNames():
for record in soup.findAll('tr'):
for data in record.findAll('td'):
for td_in_data in data.findAll('td', {"class": "propname"}):
print(td_in_data.text)
def getRooms():
for record in soup.findAll('tr'):
for data in record.findAll('td'):
for td_in_data in data.findAll('span', {"class": "beds"}):
print(td_in_data.text)
def getRents():
for record in soup.findAll('tr'):
for data in record.findAll('td'):
for td_in_data in data.findAll('td', {"class": "rentprice"}):
print(td_in_data.text)
''' To do: get the scraped data to an Excel doc.'''
# Create a workbook and add a worksheet.
todays_date = str(datetime.datetime.now().strftime("%Y-%m-%d %H:%M"))+ '.xlsx'
todays_date = todays_date.replace(" ", "_").replace(":", "_")
workbook = xlsxwriter.Workbook(todays_date)
worksheet = workbook.add_worksheet()
# Data to Excel.
Excel_dump = (
['Name', getNames()],
['Rent', getRents()],
['Rooms', getRooms()]
)
# Start from the first cell. Rows and columns are zero indexed.
row = 0
col = 0
# Iterate over the data and write it out row by row.
for item, cost in Excel_dump:
worksheet.write()
worksheet.write(col, row, item)
worksheet.write(col, row + 1)
row += 1
Merci @Snehal Parmar - je ne sais pas si c'est possible avec xlsxwriter? – Maverick
l'essayer s'il vous plaît, il est arrivé avec moi une fois quand je vidais des données. Comme vous faites un appel réseau entre le fichier de création et l'écriture du fichier, c'est très possible. –
Merci pour la suggestion, pour le moment je ne suis pas sûr de savoir comment ajouter ceci dans mon code ci-dessus ?! – Maverick