使用python造批量假数据存在excel中

# -*- coding: utf-8 -*- 
# @Time : 2021/12/15 11:02 
# @Author : gaomingjian 
# @Site :  
# @File : create_data_dalian.py 
# @Software: PyCharm

from random import choice, randint
import string
import codecs
import random
from openpyxl import Workbook

##常用汉字编码表
StringBase = '\u7684\u4e00\u4e86\u662f\u6211\u4e0d\u5728\u4eba\u4eec\u6709\u6765\u4ed6\u8fd9\u4e0a\u7740\u4e2a\u5730\u5230\u5927\u91cc\u8bf4\u5c31\u53bb\u5b50\u5f97\u4e5f\u548c\u90a3\u8981\u4e0b\u770b\u5929\u65f6\u8fc7\u51fa\u5c0f\u4e48\u8d77\u4f60\u90fd\u628a\u597d\u8fd8\u591a\u6ca1\u4e3a\u53c8\u53ef\u5bb6\u5b66\u53ea\u4ee5\u4e3b\u4f1a\u6837\u5e74\u60f3\u751f\u540c\u8001\u4e2d\u5341\u4ece\u81ea\u9762\u524d\u5934\u9053\u5b83\u540e\u7136\u8d70\u5f88\u50cf\u89c1\u4e24\u7528\u5979\u56fd\u52a8\u8fdb\u6210\u56de\u4ec0\u8fb9\u4f5c\u5bf9\u5f00\u800c\u5df1\u4e9b\u73b0\u5c71\u6c11\u5019\u7ecf\u53d1\u5de5\u5411\u4e8b\u547d\u7ed9\u957f\u6c34\u51e0\u4e49\u4e09\u58f0\u4e8e\u9ad8\u624b\u77e5\u7406\u773c\u5fd7\u70b9\u5fc3\u6218\u4e8c\u95ee\u4f46\u8eab\u65b9\u5b9e\u5403\u505a\u53eb\u5f53\u4f4f\u542c\u9769\u6253\u5462\u771f\u5168\u624d\u56db\u5df2\u6240\u654c\u4e4b\u6700\u5149\u4ea7\u60c5\u8def\u5206\u603b\u6761\u767d\u8bdd\u4e1c\u5e2d\u6b21\u4eb2\u5982\u88ab\u82b1\u53e3\u653e\u513f\u5e38\u6c14\u4e94\u7b2c\u4f7f\u5199\u519b\u5427\u6587\u8fd0\u518d\u679c\u600e\u5b9a\u8bb8\u5feb\u660e\u884c\u56e0\u522b\u98de\u5916\u6811\u7269\u6d3b\u90e8\u95e8\u65e0\u5f80\u8239\u671b\u65b0\u5e26\u961f\u5148\u529b\u5b8c\u5374\u7ad9\u4ee3\u5458\u673a\u66f4\u4e5d\u60a8\u6bcf\u98ce\u7ea7\u8ddf\u7b11\u554a\u5b69\u4e07\u5c11\u76f4\u610f\u591c\u6bd4\u9636\u8fde\u8f66\u91cd\u4fbf\u6597\u9a6c\u54ea\u5316\u592a\u6307\u53d8\u793e\u4f3c\u58eb\u8005\u5e72\u77f3\u6ee1\u65e5\u51b3\u767e\u539f\u62ff\u7fa4\u7a76\u5404\u516d\u672c\u601d\u89e3\u7acb\u6cb3\u6751\u516b\u96be\u65e9\u8bba\u5417\u6839\u5171\u8ba9\u76f8\u7814\u4eca\u5176\u4e66\u5750\u63a5\u5e94\u5173\u4fe1\u89c9\u6b65\u53cd\u5904\u8bb0\u5c06\u5343\u627e\u4e89\u9886\u6216\u5e08\u7ed3\u5757\u8dd1\u8c01\u8349\u8d8a\u5b57\u52a0\u811a\u7d27\u7231\u7b49\u4e60\u9635\u6015\u6708\u9752\u534a\u706b\u6cd5\u9898\u5efa\u8d76\u4f4d\u5531\u6d77\u4e03\u5973\u4efb\u4ef6\u611f\u51c6\u5f20\u56e2\u5c4b\u79bb\u8272\u8138\u7247\u79d1\u5012\u775b\u5229\u4e16\u521a\u4e14\u7531\u9001\u5207\u661f\u5bfc\u665a\u8868\u591f\u6574\u8ba4\u54cd\u96ea\u6d41\u672a\u573a\u8be5\u5e76\u5e95\u6df1\u523b\u5e73\u4f1f\u5fd9\u63d0\u786e\u8fd1\u4eae\u8f7b\u8bb2\u519c\u53e4\u9ed1\u544a\u754c\u62c9\u540d\u5440\u571f\u6e05\u9633\u7167\u529e\u53f2\u6539\u5386\u8f6c\u753b\u9020\u5634\u6b64\u6cbb\u5317\u5fc5\u670d\u96e8\u7a7f\u5185\u8bc6\u9a8c\u4f20\u4e1a\u83dc\u722c\u7761\u5174\u5f62\u91cf\u54b1\u89c2\u82e6\u4f53\u4f17\u901a\u51b2\u5408\u7834\u53cb\u5ea6\u672f\u996d\u516c\u65c1\u623f\u6781\u5357\u67aa\u8bfb\u6c99\u5c81\u7ebf\u91ce\u575a\u7a7a\u6536\u7b97\u81f3\u653f\u57ce\u52b3\u843d\u94b1\u7279\u56f4\u5f1f\u80dc\u6559\u70ed\u5c55\u5305\u6b4c\u7c7b\u6e10\u5f3a\u6570\u4e61\u547c\u6027\u97f3\u7b54\u54e5\u9645\u65e7\u795e\u5ea7\u7ae0\u5e2e\u5566\u53d7\u7cfb\u4ee4\u8df3\u975e\u4f55\u725b\u53d6\u5165\u5cb8\u6562\u6389\u5ffd\u79cd\u88c5\u9876\u6025\u6797\u505c\u606f\u53e5\u533a\u8863\u822c\u62a5\u53f6\u538b\u6162\u53d4\u80cc\u7ec6'


# StringBase = ''.join(StringBase.split('\\u')) #转换为汉字


# 每条信息包括:交易日期、流水号、凭证号、借记金额、账户余额、对方户名、对方账号、对方开户行、摘要、附言
# 借记金额 ,random.randint(参数1,参数2),参数必须是整数,返回两个参数中随机的任意数字。
def getJie():
    return str(random.randint(200, 2000))


def getKaiHuHang():
    return random.choice(('北京市分行', '天津市分行', '上海市分行', '重庆市分行', '河北省分行', '山西省分行', '辽宁省分行', '吉林省分行', '黑龙江省分行', '江苏省分行',
                          '浙江省分行', '安徽省分行', '福建省分行',
                          '江西省分行', '山东省分行', '河南省分行', '湖北省分行', '湖南省分行', '广东省分行', '海南省分行', '四川省分行', '贵州省分行', '云南省分行',
                          '陕西省分行', '甘肃省分行', '青海省分行',
                          '台湾省分行', '内蒙古自治区分行', '广西壮族自治区分行', '西藏自治区分行', '宁夏回族自治区分行', '新疆维吾尔自治区分行', '香港特别行政区分行',
                          '澳门特别行政区分行'))


# 交易日期
def getJiaoYiRiQi():
    return random.choice(('2021-12-01', '2021-12-02', '2021-12-03', '2021-12-04', '2021-12-05', '2021-12-06',
                          '2021-12-07', '2021-12-08', '2021-12-09'))


# 流水号
def getSerialNumber():
    return ''.join((str(random.randint(0, 9)) for i in range(18)))


# 凭证号
def getCertificateNumber():
    return ''.join((str(random.randint(0, 9)) for i in range(10)))


# 借记金额
def getDebitAmount():
    return str(random.randint(200, 2000))


# 贷记金额
def getCreditAmount():
    return str(random.randint(200, 1000))


# 账户余额
def getAccountBalance():
    return str(random.randint(10000, 20000))


# 对方户名
def OtherAccount():
    return '张三'


# 对方账号
def getOtherBank():
    return ''.join((str(random.randint(0, 9)) for i in range(18)))


def main(filename, exc):
    ##每条信息包括:交易日期、流水号、凭证号、借记金额、账户余额、对方户名、对方账号、对方开户行、摘要、附言


    with open(filename, 'w', encoding='utf-8') as fp:
        fp.write('TransactionDate, SerialNumber, CertificateNumber, DebitAmount, CreditAmount, AccountBalance,'
                 'OtherAccount, Other, OtherBank, Abstract, PS\n')
        ##fn = r'dalian.xlsx'                       #文件名
        wb = Workbook()  # 创建工作簿
        ws = wb.create_sheet(title='dalian')  # 创建工作表
        ws['A1'] = '交易日期'  # 单元格赋值
        ws['B1'] = '流水号'
        ws['C1'] = '凭证号'
        ws['D1'] = '借记金额'
        ws['E1'] = '贷记金额'
        ws['F1'] = '账户余额'
        ws['G1'] = '对方户名'
        ws['H1'] = '对方账号'
        ws['I1'] = '对方开户行'
        ws['J1'] = '摘要'
        ws['K1'] = '附言'

        for i in range(5000):
            # 交易日期
            TransactionDate = getJiaoYiRiQi()
            # 流水号
            SerialNumber = getSerialNumber()
            # 凭证号
            CertificateNumber = getCertificateNumber()
            # 借记金额
            DebitAmount = getDebitAmount()
            # 贷记金额
            CreditAmount = getCreditAmount()

            # 账户余额
            AccountBalance = getAccountBalance()
            # 对方户名
            # OtherAccount = '张三'
            # 对方账号
            Other = getOtherBank()
            # 对方开户行
            OtherBank = getKaiHuHang()
            # 摘要
            Abstract = '无'
            # 附言
            PS = '暂无附言'

            ws.append([TransactionDate, SerialNumber, CertificateNumber, DebitAmount, CreditAmount, AccountBalance,
                       OtherAccount, Other, OtherBank, Abstract, PS])
            ##添加一行数据
            line = ','.join(
                [TransactionDate, SerialNumber, CertificateNumber, DebitAmount, CreditAmount, AccountBalance,
                 OtherAccount, Other, OtherBank, Abstract, PS]) + '\n'
            fp.write(line)
        wb.save(exc)


##out
def output(filename):
    with open(filename, 'r', encoding='utf-8') as fp:
        for line in fp:
            print(line)


if __name__ == '__main__':
    filename = 'newdalian.txt'  ##write txt
    exc = r'newdalian.xlsx'  ##write exc
    main(filename, exc)
    output(filename)  # out

'''
import openpyxl
from openpyxl import Workbook
fn = r'test.xlsx'                       #文件名
wb = Workbook()                            #创建工作簿
ws = wb.create_sheet(title='你好,世界')    #创建工作表
ws['A1'] = '这是第一个单元格'                #单元格赋值
ws['B1'] = 3.1415926
wb.save(fn)                                 #保存Excel文件
wb = openpyxl.load_workbook(fn)             #打开已有的Excel文件
ws = wb.worksheets[1]                       #打开指定索引的工作表
print(ws['A1'].value)                       #读取并输出指定单元格的值
ws.append([1,2,3,4,5])                      #添加一行数据
ws.merge_cells('F2:F3')                     #合并单元格
ws['F2'] = "=sum(A2:E2)"                    #写入公式
for r in range(10,15):
    for c in range(3,8):
        ws.cell(row=r, column=c, value=r*c) #写入单元格数据
wb.save(fn)
'''

效果展示:生成5000条数据,条数在循环里面改变参数即可。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值