Day20-excel写操作和时间操作

Day20-excel写操作和时间操作

1、excel文件写操作

import openpyxl

excel文件写操作包括:新建excel文件、新建表、删除表、修改单元格内容
注意:excel文件的写操作,必须保存后才有效。
01. 新建excel文件(新建工作簿)

openpyxl.Workbook()

workbook = openpyxl.Workbook()

02. 保存excel文件

workbook.save(‘files/student.xlsx’)

03.获取工作簿
1)新建excel文件获取工作簿

workbook = openpyxl.Workbook()

2)打开已经存在的excel文件获取工作簿

workbook = openpyxl.open(‘files/student.xlsx’)

04. 新建表
工作簿对象.create_sheet(表名, 表的下标)

sheet1 = workbook.create_sheet()

sheet2 = workbook.create_sheet(‘教师表’)

sheet3 = workbook.create_sheet(‘课程表’, 0)

如果表存在就不新建,表不存在才新建表

if ‘图书表’ not in workbook.sheetnames:

workbook.create_sheet(‘图书表’)

05. 删除表
工作簿对象.remove(表对象)

sheet = workbook[‘Sheet’]

workbook.remove(sheet)

06. 修改单元格内容
单元格对象.value = 数据

course_sheet = workbook[‘课程表’]
cell1 = course_sheet.cell(1, 1)
cell1.value = ‘课程名称’

cell2 = course_sheet.cell(4, 4)
cell2.value = None 删除单元格内容就是给单元格赋值为None

保存文件

workbook.save(‘files/student.xlsx’)

import os, openpyxl

2、实际的excel文件写操作

01. 新建工作簿 - 如果excel文件就打开文件创建工作簿,如果文件不存在就新建这个文件

if os.path.exists(‘files/goods.xlsx’):
print(‘文件已经存在,直接打开’)
workbook = openpyxl.open(‘files/goods.xlsx’)
else:
print(‘文件不存在,新建这个文件’)
workbook = openpyxl.Workbook()
workbook.save(‘files/goods.xlsx’)

02. 新建表 - 如果指定的表已经存在就直接获取这个表对象,不存就创建对应的表

if ‘商品’ in workbook.sheetnames:
print(‘获取商品表’)
sheet = workbook[‘商品’]
else:
print(‘新建商品表’)
sheet = workbook.create_sheet(‘商品’)
workbook.save(‘files/goods.xlsx’)

03.删除表 - 如果这个表存在就删除,不存在就不管

if ‘Sheet’ in workbook.sheetnames:
print(‘删除表’)
workbook.remove(workbook[‘Sheet’])
workbook.save(‘files/goods.xlsx’)

3、时间模块

from datetime import datetime, date, time
from pyecharts.charts import Bar
01. 获取当前时间
datetime.today() - 返回当前时间对应的时间对象
datetime.now() - 返回当前时间对应的时间对象

t1 = datetime.today()
print(t1, type(t1))

t2 = datetime.now()
print(t2, type(t2))

02. 创建时间对象

t3 = datetime(2020, 10, 3)
print(t3) # 2020-10-03 00:00:00

t4 = datetime(2008, 8, 8, 10, 30)
print(t4) # 2008-08-08 10:30:00

03. 将字符串时间转换成时间对象
datetime.strptime(字符串时间, 时间格式)
%Y - 年; %m - 月; %d - 日; %H、%I - 时; %M - 分; %S - 秒

str1 = ‘2003年3月20日’
str2 = ‘2019-4-5 18:30:57’
t5 = datetime.strptime(str1, ‘%Y年%m月%d日’)
print(t5) # 2003-03-20 00:00:00

t6 = datetime.strptime(str2, ‘%Y-%m-%d %H:%M:%S’)
print(t6) # 2019-04-05 18:30:57

03.基于时间对象获取具体的时间值

print(t6.year)
print(t6.month)
print(t6.day)
print(t6.hour)
print(t6.minute)
print(t6.second)

print(t6.weekday()) 星期对应的值是0~6,其中0表示周一,6表示周日

05. 计算时间差(计算两个时间之间的差值)

t3 = datetime(2020, 10, 5)
t4 = datetime(2020, 10, 3)

dif = t3 - t4 两个时间相减会返回一个时间间隔对象

print(dif.days, dif.seconds)

t1 = datetime(2022, 6, 17, 23, 36, 57)
t2 = datetime(2022, 6, 18, 1, 10, 30)
dif = t2 - t1
print(dif.days, dif.seconds)

import openpyxl

def get_all_order():
# workbook = openpyxl.open(‘files/电商网站订单数据.xlsx’)
workbook = openpyxl.open(‘files/订单数据.xlsx’)
# sheet = workbook[‘Sheet1’]
sheet = workbook.active
all_data = []
for row in range(1, sheet.max_row + 1):
line = []
for col in range(1, sheet.max_column + 1):
line.append(sheet.cell(row, col).value)
all_data.append(line)
print(all_data[2])

return all_data

def month_data():
global all_data
result = {}
for x in all_data[1:]:
month = x[-2].month
money = result.get(month, 0)
result[month] = money + x[5]

 绘制柱状图
result[1] /= 1000
bar = Bar()
bar.add_xaxis(list(result.keys()))
bar.add_yaxis('销售额', list(result.values()))
bar.render('result.html')
if __name__ == '__main__':
    all_data = get_all_order()
    month_data()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值