I want to create a spreadsheet in below format. But unable to do it, Please help.
Every worksheet should have date which start from 25th and end at 24 without Saturday and Sunday.
JavaScript
x
13
13
1
def daterange(date1, date2):
2
for n in range(int ((date2 - date1).days)+1):
3
yield date1 + timedelta(n)
4
5
start_dt = date(2020,9,25)
6
end_dt = date(2020,10,24)
7
8
weekdays = [5,6]
9
for dt in daterange(start_dt, end_dt):
10
if dt.weekday() not in weekdays: # to print only the weekdates
11
print(dt.strftime("%Y-%m-%d"))
12
13
Also want to add same date in each sheet cell with a table (unable to create a table yet).
JavaScript
1
13
13
1
import xlwt
2
import datetime
3
4
workbook = xlwt.Workbook()
5
worksheet = workbook.add_sheet('Sheet1')
6
7
date_format = xlwt.XFStyle()
8
date_format.num_format_str = 'dd/mm/yyyy'
9
10
worksheet.write(0, 0, datetime.datetime.now(), date_format)
11
12
workbook.save('date_format.xls')
13
Advertisement
Answer
I think this is what you are looking for:
JavaScript
1
18
18
1
import xlwt
2
import datetime
3
4
start = datetime.date(2020, 9, 25)
5
end = datetime.date(2020, 10, 24)
6
weekend=[5, 6]
7
8
def daterange(date1, date2):
9
for n in range(int((date2 - date1).days) + 1):
10
yield date1 + datetime.timedelta(n)
11
12
dates = [dt for dt in daterange(start, end) if dt.weekday() not in weekend]
13
workbook = xlwt.Workbook()
14
for date in dates:
15
worksheet = workbook.add_sheet(f"{date.strftime('%d-%m-%Y')}") # the tab
16
worksheet.write(0, 0, date.strftime('%d-%b-%Y')) # the cell
17
workbook.save('date_format.xls')
18
You had most of it done, all that was needed was to glue the 2 parts together.