# -*- 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条数据,条数在循环里面改变参数即可。
|