在自定义目录下,按日期创建excel文件

 

在指定文件目录下,新建以当前日期命名的excel 文件,如果文件已经存在,在文件中新建一个sheet页来存放数据

import datetime
import xlrd, xlwt
import re
from xlutils.copy import copy as xl_copy
import xlwt
import os


# 创建文件
def creat_excel():
    # 表头信息,可自定制
    header = [u'下单日期', u'出发时间', u'出发时段', u'上车地点', u'下车地点', u'乘客名', u'司机信息', u'口岸', u'车队', u'是否8座', u'支付渠道', u'支付金额', u'车队报价', u'备注', u'备注2', 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 create_dir():
    # 定义文件夹名称
    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

 

posted @ 2018-10-08 11:08  TheLand  阅读(824)  评论(0编辑  收藏  举报