共计 1900 个字符,预计需要花费 5 分钟才能阅读完成。
版权申明:本文为 CSDN 博主「延瓒 @yankerp」的原创文章,遵循 CC 4.0 BY-SA 版权协定,转载请附上原文出处链接及本申明。原文链接:https://blog.csdn.net/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} 秒")`
技术分享、材料获取、编程教训更多精彩请返回老王说编程 >>>>
正文完