版权申明:本文为CSDN博主「延瓒@yankerp」的原创文章,遵循CC 4.0 BY-SA版权协定,转载请附上原文出处链接及本申明。原文链接:https://www.gaodaima.com/qq_3959…
1,场景阐明
目前有一个excel表,其中外面有一个工作薄的名称为:btc,在这个工作薄中有2013年–2018年的所有交易数据,本文次要实现,将不同的年份的数据保留至新的工作薄并起名成为:2013,2014等等。
如果不必python进行操作的话,咱们首先须要关上excel表,而后抉择btc工作薄。新建2013 2014工作薄,最初进行剖析导入,保留退出。在python操作中首先须要导入excel表,而后获取到btc工作薄中的数据,通过不同的工夫年份来获取不同年份的数据,最初创立新的工作薄,导入–>保留退出。
2,导入内置库及第三方库
`import os # 用于获取excel文件门路,以及对剖析后的excel文件进行保留 import openpyxl # 应用openpyxl能够对excel进行操作,须要装置 pip install openpyxl import datetime # 日期 import time # 工夫`
3,定义文件门路
`year_list = [2013, 2014, 2015, 2016, 2017, 2018] file_path = r"F:python-officelog" file_name = "btc.xlsx" file_result = os.path.join(file_path, file_name)`
4,定义函数
`#!/usr/bin/env python # -*- coding:utf-8 -*- import os import openpyxl import datetime import time year_list = [2013, 2014, 2015, 2016, 2017, 2018] file_path = r"F:python-officelog" file_name = "btc.xlsx" file_result = os.path.join(file_path, file_name) def excel(): """ """ wb = openpyxl.load_workbook(file_result) # 首先获取excel文件生成对象wb 应用openpyxl.load_workbook 办法 sh = wb.active # 应用wb中的active办法获取当前工作薄:btc 生成新的对象sh index = 0 # 设置一个数字变量之后会用到 for i in range(len(year_list)): # 循环6次,6次来源于year_list列表长度 count = 2 # 定义一个数字变量 前面会用到 sh1 = wb.create_sheet(str(year_list[index])) # 应用应用wb.create 办法创立工作薄名称。名称为列表中的值,index是下面定义的数字变量 for rows in sh.rows: # 循环btc工作表中的内容 if rows[0].coordinate != "A1" and datetime.datetime.strptime(rows[0].value, '%Y-%m-%d %H:%M:%S %Z').year == year_list[index]: # 把日期和金额去除从第二行开始循环, 应用datetime模块将获取的value1的工夫字符串解析为工夫元组。最初取年值进行匹配 # print(rows[0].value, rows[1].value) sh1["A1"] = "日期" # 写入日期 sh1["B1"] = "金额" # 写入金额 sh1["A" + str(count)] = rows[0].value # A + str(count) 第二行开始 写入 sh1["B" + str(count)] = rows[1].value # print("in sh:", sh1["A" + str(count)].value, sh1["B" + str(count)].value) print(f"正在剖析{year_list[index]}年数据.....") count += 1 # 没实现一次循环 count + 1 index += 1 # 同时index + 1 wb.save("yankerp.xlsx") # 当函数全副执行实现后,应用wb.save 保留即可。 if __name__ == "__main__": start_time = time.time() excel() print(f"剖析实现,用时工夫为{time.time() - start_time}秒")`
技术分享、材料获取、编程教训更多精彩请返回老王说编程>>>>