et-xmlfile==1.1.0
openpyxl==3.1.2
import pickle
import struct
import csv
from openpyxl import Workbook
import time
def parse_data(data):
packets = []
start = 0
while start < len(data):
index = data.find(b'\xAA\xFF\xF1\x04', start)
if index == -1:
break
content = struct.unpack('<I', data[index+4:index+8])[0]
check_sum = data[index+8]
add_check = data[index+9]
packets.append((content, check_sum, add_check))
print(f"Current progress: {start / len(data) * 100}%")
start = index + 10
return packets
with open('100.bin', 'rb') as file:
data = file.read()
packets = parse_data(data)
wb = Workbook()
ws = wb.active
file_num = 0
packets_per_file = 5000000
ws.append(['Content', 'CheckSum', 'AddCheck'])
start_time = time.time()
group_size = 1000000
for i, packet in enumerate(packets):
group_idx = (i // group_size)
row_idx = (i % group_size) + 1
col_idx = group_idx * 3 + 1
for j, item in enumerate(packet):
ws.cell(row=row_idx, column=col_idx+j, value=item)
if (i+1) % 1000 == 0:
elapsed_time = time.time() - start_time
speed = (i+1) / elapsed_time
progress = (i+1) / len(packets) * 100
print(f"Current speed: {speed} rows/second, progress: {progress}%")
if (i+1) % packets_per_file == 0:
wb.save(f'output_{file_num}.xlsx')
wb.close()
file_num += 1
wb = Workbook()
ws = wb.active
ws.append(['Content', 'CheckSum', 'AddCheck'])
wb.save(f'output_{file_num}.xlsx')
print(f"正在储存到Excel文件中...")
wb.save('100.xlsx')
print(f"正在储存...")
import pickle
import struct
import csv
from openpyxl import Workbook
import time
def parse_data(data):
packets = []
start = 0
while start < len(data):
index = data.find(b'\xAA\xFF\xF1\x04', start)
if index == -1:
break
content = struct.unpack('<I', data[index+4:index+8])[0]
check_sum = data[index+8]
add_check = data[index+9]
packets.append((content, check_sum, add_check))
print(f"Current progress: {start / len(data) * 100}%")
start = index + 10
return packets
with open('100.bin', 'rb') as file:
data = file.read()
packets = parse_data(data)
wb = Workbook()
ws = wb.active
ws.append(['Content', 'CheckSum', 'AddCheck'])
start_time = time.time()
group_size = 1000000
for i, packet in enumerate(packets):
group_idx = (i // group_size)
row_idx = (i % group_size) + 1
col_idx = group_idx * 3 + 1
for j, item in enumerate(packet):
ws.cell(row=row_idx, column=col_idx+j, value=item)
if (i+1) % 1000 == 0:
elapsed_time = time.time() - start_time
speed = (i+1) / elapsed_time
progress = (i+1) / len(packets) * 100
print(f"Current speed: {speed} rows/second, progress: {progress}%")
print(f"正在储存到Excel文件中...")
wb.save('100.xlsx')