最近在学校成为了一名“金牌客服”(自封)。每天上班都需要做一个端口保修登记表(excel)。因为表里涉及日期,所以不方便ctrl + V,所以就想着用python写一个exe自动生成(毕竟每次去弄还挺烦的)。废话不多说,进入主题。
import xlwt
import time
import os
dirpath1 = r"C:/Users/Bisharp无愁/Desktop/{}年端口报修登记表".format(time.strftime('%Y'))
dirpath2 = r"C:/Users/Bisharp无愁/Desktop/{}年端口报修登记表/{}月".format(time.strftime('%Y'), time.strftime('%m'))
date = time.strftime("%Y.%m.%d")
filename = str(date) + "网络端口保修登记表.xls"
path = dirpath2 + '/' + filename
valcation = ["10.1", '01.1', '05.1', '10.2', '10.3']
weekends = ['Sun', 'Sat']
def timejuice():
# 判断时间,节假日和周末不执行
if time.strftime("%m.%d") in valcation:
return False
elif time.strftime('%a') in weekends:
return False
else:
return True
后来发现没必要,虽然设置了开机自动执行,但是周末和节假日不会有人开机的()。
设置表格格式:
def set_style(name, height, bold=False):
# 设置格式
style = xlwt.XFStyle()
font = xlwt.Font()
font.name = name
font.bold = bold
font.color_index = 4
font.height = height
style.font = font
# 设置框线
# borders = xlwt.Borders
style.borders.left = xlwt.Borders.THIN
style.borders.right = xlwt.Borders.THIN
style.borders.top = xlwt.Borders.THIN
style.borders.bottom = xlwt.Borders.THIN
# style.borders = borders
return style
创建excel文件:
def createxcel(date):
# 创建excel文件和表
workbook = xlwt.Workbook()
worksheet = workbook.add_sheet("sheet1", cell_overwrite_ok=True)
# 设置列宽
worksheet.col(0).width = 256 * 13
worksheet.col(1).width = 256 * 12
worksheet.col(2).width = 256 * 20
worksheet.col(3).width = 256 * 26
worksheet.col(4).width = 256 * 11
worksheet.col(5).width = 256 * 22
worksheet.col(6).width = 256 * 9
worksheet.col(7).width = 256 * 8
# 写入表头
head = ["管理编号", '保修日期', '用户名称', '地址', '联系方式', '维修结果', '维修日期', '维修人']
colum0 = []
colum1 = []
for i in range(1, 4):
colum0.append(date.replace('.', '') + '{:0>2d}'.format(i))
for i in range(3):
colum1.append(date)
for i in range(len(head)):
worksheet.write(0, i, head[i], set_style('宋体', 220, True))
for i in range(1, 4):
worksheet.write(i, 0, colum0[i - 1], set_style('Times New Roman', 220, True))
worksheet.write(i, 1, colum1[i - 1], set_style('Times New Roman', 220, False))
# 画框线
for x in range(2, 8):
for y in range(1, 4):
worksheet.write(y, x, "", set_style('Times New Roman', 220, False))
workbook.save(path)
逻辑简单,就不多加申明了,注意列宽设置,第一次设置的时候,列宽不够,导致excel输入号码后显示不全,对强迫症来说,会比较烦。
if not os.path.exists(dirpath1):
os.mkdir(dirpath1)
if not os.path.exists(dirpath2):
os.mkdir(dirpath2)
if timejuice():
if not (os.path.exists(path)):
try:
createxcel(date)
except:
pass
判断文件路径是否完整,然后判断一下是不是工作日。最后用pyinstaller打包成exe文件,放入启动文件里就大功告成了(亲测可用,就是注意启动文件的权限问题和杀毒软件的启动文件保护)。