使用 openpyxl 每月创建一个新的 sheet
Creating a new sheet every month with openpyxl
嗨,我参与了纳米比亚的旅游旅馆。我们记录水读数等。每天输入一个 Excel 文件并计算每人的消费量,问题是不是每个工作人员都理解 Excel。所以我写了一个简单的 Python 程序来自动将读数输入 excel。它有效,唯一的问题是我想将每个月保存在一个新的 sheet 中,并将所有数据按月分组(例如,一月(所有读数)二月(所有读数))。我可以创建一个新的 sheet 但我无法将数据输入到新的 sheet,它只是覆盖了我前几个月的数据...代码如下所示
*import tkinter
from openpyxl import load_workbook
from openpyxl.styles import Font
import time
import datetime
book = load_workbook('sample.xlsx')
#sheet = book.active
Day = datetime.date.today().strftime("%B")
x = book.get_sheet_names()
list= x
if Day in list: # this checks if the sheet exists to stop the creation of multiple sheets with the same name
sheet = book.active
else:
book.create_sheet(Day)
sheet = book.active
#sheet = book.active*
并写入 sheet 我使用和输入小部件然后将值保存如下:
Bh1=int(Bh1In.get())
if Bh1 == '0':
import Error
else:
sheet.cell(row=Day , column =4).value = Bh1
number_format = 'Number'
也许我很笨,但请帮忙!!
尝试
if Day in list: # this checks if the sheet exists to stop the creation of multiple sheets with the same name
sheet = book.get_sheet_by_name(Day)
else:
book.create_sheet(Day)
book.save('sample.xlsx')
sheet = book.get_sheet_by_name(Day)
您依赖于获取活动工作表而不是按名称访问它。只需使用类似的东西:
try:
sheet = wb[Day]
except KeyError:
sheet = wb.create_sheet(Day)
可能就是您所需要的。
嗨,我参与了纳米比亚的旅游旅馆。我们记录水读数等。每天输入一个 Excel 文件并计算每人的消费量,问题是不是每个工作人员都理解 Excel。所以我写了一个简单的 Python 程序来自动将读数输入 excel。它有效,唯一的问题是我想将每个月保存在一个新的 sheet 中,并将所有数据按月分组(例如,一月(所有读数)二月(所有读数))。我可以创建一个新的 sheet 但我无法将数据输入到新的 sheet,它只是覆盖了我前几个月的数据...代码如下所示
*import tkinter
from openpyxl import load_workbook
from openpyxl.styles import Font
import time
import datetime
book = load_workbook('sample.xlsx')
#sheet = book.active
Day = datetime.date.today().strftime("%B")
x = book.get_sheet_names()
list= x
if Day in list: # this checks if the sheet exists to stop the creation of multiple sheets with the same name
sheet = book.active
else:
book.create_sheet(Day)
sheet = book.active
#sheet = book.active*
并写入 sheet 我使用和输入小部件然后将值保存如下:
Bh1=int(Bh1In.get())
if Bh1 == '0':
import Error
else:
sheet.cell(row=Day , column =4).value = Bh1
number_format = 'Number'
也许我很笨,但请帮忙!!
尝试
if Day in list: # this checks if the sheet exists to stop the creation of multiple sheets with the same name
sheet = book.get_sheet_by_name(Day)
else:
book.create_sheet(Day)
book.save('sample.xlsx')
sheet = book.get_sheet_by_name(Day)
您依赖于获取活动工作表而不是按名称访问它。只需使用类似的东西:
try:
sheet = wb[Day]
except KeyError:
sheet = wb.create_sheet(Day)
可能就是您所需要的。