# 首先安装读写xlsx包 pip install openpyxl==3.0.0 rem 读写 xlsx 3.0.2可能是出现了bug
# -*- coding: utf-8 -*-
import os
import datetime
from openpyxl import Workbook
outpath = r'D:\\txt2xlsx\\'
txtname = 'xls.txt'
# 写入测试文件
def write_txt():
file = outpath + txtname
write_path = open(file, 'w')
for num in range(1, 2000000): # 迭代 1 到 2000000 之间的数字
# 拼接txt行 制表符分割,也可以改为逗号分割
line = '测试'+str(num)+'\t'+datetime.strftime(datetime.now(),'%Y-%m-%d %H:%M:%S')
# 写入txt行
write_path.write(line + '\n')
write_path.close()
# 分割成n个xlsx
def cut_xlsx():
# 每个文件行数
LIMIT = 1000000
# 分割文件数
file_count = 1
# 行数组
data_list = []
file = outpath + txtname
if os.path.exists(file):
with open(file) as f:
for line in f:
data_list.append(line[:-1])
if len(data_list) < LIMIT:
continue
# 数据达到LIMIT
wb = Workbook()
ws = wb.active
for line in data_list:
ws.append(line.split('\t')) #制表符分割,也可以改为逗号分割
wb.save(outpath + str(file_count) + '.xlsx')
data_list = []
file_count += 1
f.close()
if data_list:
wb = Workbook()
ws = wb.active
for line in data_list:
ws.append(line.split('\t')) #制表符分割,也可以改为逗号分割
wb.save(outpath + str(file_count) + '.xlsx')
print('分割为' + str(file_count)+ '个xlsx文件')
# 程序入口
if __name__ == '__main__':
cut_xlsx()