day 20-excel写操作和时间操作

day 20-excel写操作和时间操作

1. excel文件写操作

新建excel文件、新建表、删除表、给表重命名、修改单元格内容

注意:excel文件的写操作必须保存后才有效

1.新建excel文件

1.新建excel文件(工作簿)

openpyxl.Workbook()

workbook = openpyxl.Workbook()

2.保存excel文件

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

2.新建表

1.获取工作簿
1)新建excel文件获取工作簿
orkbook = openpyxl.Workbook()
2)打开已经存在的excel文件获取工作簿
workbook = openpyxl.open('files/student.xlsx')
2.新建表

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

sheet1 = workbook.create_sheet()
sheet2 = workbook.create_sheet('教师表')
sheet3 = workbook.create_sheet('课程表', 0)

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

if '图书表' not in workbook.sheetnames:
    workbook.create_sheet('图书表')
3.删除表

工作簿对象.remove(表对象)

sheet = workbook['Sheet']
workbook.remove(sheet)
4.修改单元格内容

单元格对象.value = 数据

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

cell2 = course_sheet.cell(4, 4)

cell2.vaule = None   #删除单元格内容就是给单元格赋值为None

保存文件

workbook.save('files/student.xlsx')

2.实际的excel文件写操作

import os, openpyxl

1.新建工作簿

如果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')

2.新建表

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

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

3.删除表

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

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

3.时间模块

form datetime import datetime, date, time

from pyecharts.charts import Bar

1.获取当前时间

datetime.today() - 返回当前时间对应的时间对象

datetime.now() - 返回当前时间对应的时间对象

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


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

2.创建时间对象

t3 = datetime(2020, 10, 3)
print(t3)       # 2020-10-03 00:00:00
t4 = datetime(2020, 10, 3, 10, 30)
print(t4)        # 2008-08-08 10:30:00

3.将字符串时间转换成时间对象

datetime.strptime(字符串时间, 时间格式)

%Y - 年

%m - 月

%d - 日

%H%I - 时

%N - 分

%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

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

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表示周日

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

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()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值