通过python生成表格

通过python第三方库xlwt生成表格,也可以通过pandas实现

from datetime import datetime, date
import random

import xlwt

from account.data.xlrd_read import readexcel
from faker import Faker
#初始化,设置locale为中文;默认是英文
fake = Faker(locale = 'zh_CN')

pathp = r''    #读取导入模板文件
pathsave1= r''  #保存批量导入文件
path1=r''  #读取生成的导入文件
path2=r''       #读取修改模板文件
pathsave2=r''   #保存生成的批量修改文件

def plus():
    now = datetime.now()
    # 获取今天
    datetime.today()
    timea = now.strftime("%Y-%m-%d")
    timeb = now.strftime("%Y/%m/%d")
    # global brandchannel
    # global registertype

    brandperson=random.choices(['','平安福','安鑫宝'])
    country=fake.country()
    name=random.choices(['','',''])
    brandchannel = random.choice(['',''])  #

    if brandchannel=='':

        registertype=random.choices(['','-DE','58976367'])
        # global registertype
    else :  #brandchannel=='Aliexpress'
        # global registertype
        registertype = random.choices(['131231-', '456412321-', '16880115-'])
        # global registertype
    # elif brandchannel=='Amazon':
    #     registertype=random.choices(['1688010', '-cn', '-cn'])

    registercategory=fake.first_name_male() # fake.name()
    applicationno=random.choice([timea, timeb])
    registerno=random.choice([timea, timeb])
    applicationdata = random.randint(1,100)
    registerdata = random.choice(['', 'CNY'])
    validitydata = random.randint(1,1000)
    maney=random.choice(['', 'CNY'])
    status=random.choices(['','',''])
    certificate=str(random.randint(1,10000000))+''
    contractdata=fake.name()
    brandyuming=fake.name()
    fuwushang =fake.province()
    # dailicompany = '' + str(random.randint(1, 1000000))
    # fuwushangperson='admin'
    # services = '=Aa' + str(random.randint(1, 1000000))
    # serviceuse = '=Aa' + str(random.randint(1, 1000000))
    # dailicc = '=Aa' + str(random.randint(1, 1000000))
    # remarknote = '=Aa' + str(random.randint(1, 1000000))
    return   brandperson,country,name,brandchannel,registertype,registercategory,applicationno,registerno,applicationdata,registerdata,validitydata,maney,status,certificate,contractdata,brandyuming,fuwushang
            # dailicompany,fuwushangperson,services,serviceuse,dailicc,remarknote


def sortdel():
    carddef = list(plus())
    # print(carddef)
    return carddef
    print(carddef)



def mkinsurance(rowss=52,):
    wb = xlwt.Workbook(encoding="utf-8")
    ws = wb.add_sheet('sheet', cell_overwrite_ok=True)  # 增加sheet

    # 调用表格方法
    # path1 = r''
    reade = readexcel(pathp)
    row0=reade[2]  #第一行数据,
    row1=reade[3]  #第二行数据

    # 设置列数据 ,i代表行数,j代表列数,操作列数据
    for i in range(rowss):
        # sortde=plus()
        sortde = sortdel()
        # sortde=a
        # print(sortde)
        for j in range(reade[1]):   #调用read,字段有10列
            ws.write(i, j, sortde[j])

    # 操作第二行规则数据,1行,列遍历
    for i in range(len(row1)):
        ws.write(1, i, row1[i])

    # 操作第一行表头数据,0行,列遍历
    for i in range(len(row0)):
        ws.write(0, i, row0[i])

    # 保存文件位置
    # wb.save(r'.xls')
    wb.save(pathsave1)

def modifyinsurance():


    #读取批量导入文件的数据
    # path1=r'.xls'
    reade=readexcel(path1)
    print(reade[4])

    #读取批量修改模板文件的数据
    # path2=r''
    readtemplate=readexcel(path2)
    # print(readtemplate)
    print(readtemplate[0])

    #创建批量修改文件
    wb = xlwt.Workbook(encoding="utf-8")
    ws = wb.add_sheet('sheet', cell_overwrite_ok=True)  # 增加sheet
    # 表头字段
    row0 = readtemplate[2]
    row2 = readtemplate[3]    #规则第二行

    # 设置列数据 ,i代表行数,j代表列数,操作列数据
    for i in range((reade[0])):  #reade[0] 行数
        sortde=sortdel()
        for j in range(reade[1]):  #reade[1] 列数
            ws.write(i, j+1, sortde[j])

    # 操作前三列数据,0行,列遍历  规则    申请国家及地区
    for i in range(len(row0)):
        # ws.write(1, i, col_data[0])
        for j in  range(len(reade[8])): #reade[4]获取第一列的数据
            ws.write(j,0,reade[8][j])

    # # 操作前三列数据,0行,列遍历  规则    商标名称
    # for i in range(len(row0)):
    #     # ws.write(1, i, col_data[0])
    #     for j in  range(len(reade[6])): #reade[4]获取第一列的数据
    #         ws.write(j,0,reade[6][j])
    #
    # # 操作前三列数据,0行,列遍历  规则   注册类别
    # for i in range(len(row0)):
    #     # ws.write(1, i, col_data[0])
    #     for j in  range(len(reade[7])): #reade[4]获取第一列的数据
    #         ws.write(j,2,reade[7][j])


    # 操作第二行表头数据,0行,列遍历  规则
    for i in range(len(row2)):
        ws.write(1, i, row2[i])

    # 操作第一行表头数据,0行,列遍历
    for i in range(len(row0)):
        ws.write(0, i, row0[i])

    # 保存文件位置
    # wb.save(r'.xls')
    wb.save(pathsave2)



mkinsurance(rowss=52,)
modifyinsurance()



  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值