1.目的:

测试导入功能,需要在excel表里造3000条数据

2.导入模板如下:

python 批量写hbase python批量造数据_嵌套

 

 

3.方法步骤(使用模块是xlxswriter)

复杂事情简单化

1)先实现简单数据写入excel

ol_data=(
    ['中国邮政集团公司', '10002207','双井'],
    ['中国邮政集团公司1', '100022071','团结湖']
)#元祖嵌套列表

row=1#初始行

col=0#初始列
for i,j,k, in (col_data):
   worksheet1.write(row,col,i)#第二行,第一列取第一个列表第一个数
   worksheet1.write(row,col+1,i)#第二行,第二列取第一个列表第二个数
   worksheet1.write(row,col+2,i)#第二行,第三列取第一个列表第三个数
   row+=1

2)再将简单数据复杂化

list=[]#建一个空列表
for i in range(1,10):
    col_data2= ['中国邮政集团公司', '10002207', '双井投递部']
    num=random.randint(100,999)
    zm=''.join(random.sample('QWERTYUIOPASDFGHJKLZXCVBNM',3))#random返回的是列表,需要用join连接成字符串
    jc=random.choice('京津冀晋蒙辽吉黑沪苏浙皖闽赣鲁豫鄂湘粤桂琼蜀云渝藏陕甘青宁新港澳台')
    cph=str(jc)+zm+str(num)
    col_data2.append(cph)#追加元素
    list.append(col_data2)#把追加元素后的列表加到空list中
col_data=tuple(list)#转换成元祖,形成了元祖嵌套列表


4.源代码(还需优化格式以及数据生成部分)

import xlsxwriter
import  random
import time


#生成表头
workbook =xlsxwriter.Workbook('车辆导入.xlsx' )
worksheet1=workbook.add_worksheet('sheet1')
row_data=['归属单位编号','归属单位','投递使用单位(必填)','车牌号','内部识别号','车架号','设备序列号','流量卡号','车辆保险号']
worksheet1.write_row('A1',row_data)#按行写入从A1开始写入,也可以写成worksheet1.write_row(row=0,col=0,row_data)


#批量造数据 格式为元祖中嵌套多个列表 例如:data=([],[],[])
list=[]#源数据
for i in range(1,3001):
    col_data2= ['中国邮政集团公司', '10002207', '双井投递部']
    num=random.randint(100,999)
    zm=''.join(random.sample('QWERTYUIOPASDFGHJKLZXCVBNM',3))#random返回的是列表,需要用join连接成字符串
    jc=random.choice('京津冀晋蒙辽吉黑沪苏浙皖闽赣鲁豫鄂湘粤桂琼蜀云渝藏陕甘青宁新港澳台')
    cph=str(jc)+zm+str(num)
    nbsbh = 'TZ' + str(int(time.time()))
    cjh = 'CJH' + str(int(time.time()))
    sbh = int(time.time())
    sim = int(time.time())
    bxh = 'PZ' + str(int(time.time()))
    col_data2.append(cph)
    col_data2.append(nbsbh)
    col_data2.append(cjh)
    col_data2.append(sbh)
    col_data2.append(sim)
    col_data2.append(bxh)
    list.append(col_data2)
col_data=tuple(list)#转换成元祖


#写入xlxs
row=1#初始行
col=0#初始列
for i,j,k,l,z,x,c,v,b in (col_data):
    worksheet1.write(row,col,i)#第二行,第一列取第一个列表第一个数
    worksheet1.write(row,col+1,j)#第二行,第二列取第一个列表第二个数
    worksheet1.write(row,col+2,k)#第二行,第三列取第一个列表第三个数
    worksheet1.write(row,col+3,l)#第二行,第四列取第一个列表第四个数
    worksheet1.write(row,col+4,z)
    worksheet1.write(row,col+5,x)
    worksheet1.write(row,col+6,c)
    worksheet1.write(row,col+7,v)
    worksheet1.write(row,col+8,b)
    row+=1#循环行数
workbook.close()