python 高效处理EXCEL对比
#coding=utf-8 import xlwings as xw import pandas as pd import time #记录打开表单开始时间 start_open_time = time.time() #指定不显示地打开Excel,读取Excel文件 app = xw.App(visible=False, add_book=False) wb = app.books.open('D:/PYTHON/TEST_CODE/Book300s.xlsx') # 打开Excel文件 sheet = wb.sheets[0] # 选择第0个表单 #记录打开Excel表单结束时间 end_open_time = time.time() #记录开始循环计算时间 start_run = time.time() row_content = [] #读取Excel表单前10000行的数据,并计算B列和C列的差值之和 list_value = sheet.range('A2:D10001').value for i in range(len(list_value)): #使用Python的类库直接访问Excel的表单是很缓慢的,不要在Python的循环中引用sheet等Excel表单的单元格, #而是要用List一次性读取Excel里的数据,在List内存中计算好了,然后返回结果 start_value = list_value[i][1] end_value = list_value[i][2] if start_value <= end_value: values = end_value- start_value #同时测试List数组添加记录 row_content.append(values) #计算和 total_values = sum(row_content) #记录结束循环计算时间 end_run = time.time() sheet.range('E2').value = str(total_values) sheet.range('E3').value = '使用List 计算时间(秒):' + str(end_run - start_run) #保存并关闭Excel文件 wb.save() wb.close() print ('结果总和:', total_values) print ('打开并读取Excel表单时间(秒):', end_open_time - start_open_time) print ('计算时间(秒):', end_run - start_run) print ('处理数据条数:' , len(row_content))