创建目录,新建 excel 表及添加 sheet 页

场景简介:客户要求 在指定文件目录下,新建以当前日期命名的 excel 文件存放汇总数据,如果文件已经存在,在文件中新建一个 sheet 页来存放数据

#引用模块  
import datetime
import xlrd, xlwt
import re
from xlutils.copy import copy as xl_copy
import xlwt
import os
# 创建文件
def createxcel():
    # 表头信息,可自定制
    header = [u'下单日期', u'出发时间', u'出发时段', u'上车地点', u'下车地点']
    # 创建的文件夹路径
    creat_path = create_dir()
    # //查看当前路径
    os.getcwd()
    # //更改至相应路径下
    os.chdir(creat_path)
    # 新建文件名
    file_name = datetime.datetime.now().date().strftime('%Y%m%d') + '.xls'
    # 创建文件路径
    f_path = creat_path + '\\' + file_name
    # 执行时 通过 exists 函数判断文件是否存在 --如果不存在,新建文件
    if os.path.exists(file_name) == False:
	    file = xlwt.Workbook()
	    Sheet_name = file.add_sheet('sheet1')
	    row0 = header
	    for i in range(0, len(row0)):
		    Sheet_name.write(0, i, row0[i])
	    file.save(file_name)
    # 如果存在,在该文件中新建一个sheet页
    else:
	    Sheet_name = creat_sheetname(f_path, header)
    # 通过 realpath 获取文件全路径
    file_path = os.path.realpath(file_name)
    # print('路径creat_path:',creat_path)
    # print('文件路径file_path:',file_path)
    # 返回文件全路径,文件夹路径,sheet页名称
    return file_path, creat_path, Sheet_name
  # 创建目录

    def createdir():
	  # 定义文件夹名称
	  folder_name = datetime.datetime.now().date().strftime('%Y%m%d')
	  # 自定义路径
	  newdir = r"C:\Users\Jiang Yudong\Desktop\danfosi" + '\\' + folder_name
	  # 判断路径是否存在 如果不存在,新建文件夹
	  if not os.path.exists(newdir):
		  os.makedirs(newdir)
	  # print(newdir)
	  # print('文件夹路径newdir:',newdir)
	  return newdir
  # 创建sheet

    def creat_sheetname(f_path, header):
	  # 定义一个默认数字
	  num = 0
	  # open existing workbook
	  rb = xlrd.open_workbook(f_path)
	  # 获取所有sheet
	  sheet_list = rb.sheet_names()
	  # 获取页码
	  num = re.sub("\D", "", sheet_list[-1])
	  # make a copy of it
	  wb = xl_copy(rb)
	  # 新定义sheet名
	  num_sh = int(num) + 1
	  sheet_name = 'sheet' + str(num_sh)
	  # add sheet to workbook with existing sheets
	  Sheet_name = wb.add_sheet(sheet_name)
	  # 填写表头信息
	  row0 = header
	  for i in range(0, len(row0)):
		  Sheet_name.write(0, i, row0[i])
	  # 保存文件
	  wb.save(f_path)
	  # 将sheet 页名称返回
	  return sheet_name