健壮的墨镜
4 月前 |
图表的作用:
1、可直观展示统计信息属性(时间性、数量性等),对知识挖掘和信息直观生动感受起关键作用的图形结构,是一种很好的将对象属性数据直观、形象地"可视化"的手段
2、合理的数据图表,会更直观的反映数据间的关系,比用数据和文字描述更清晰、更易懂
3、将工作表中的数据转换成图表呈现,可以帮助我们更好地了解数据见的比例关系及变化趋势,对研究对象做出合理的推断和预测
常用方法与属性
openpyxl.chart.Reference(workbook,min_col,min_row,max_col,max_row) 设置图表数据的来源from openpyxl import load_workbook
def merger_file():
from openpyxl import Workbook,load_workbook
# 创建一个新的excel文件,用来存储合并好的数据
wb = Workbook()
# 激活当前的Sheet
sh = wb.active
# 获取文件
import os
names = os.listdir('./base_data/销售表')
for name in names:
load_path = f'./base_data/销售表/{name}'
# 读取文件
tmp_wb = load_workbook(load_path)
# 激活读取的文件的Sheet
tmp_sh = tmp_wb.active
# 获取里面的数据
for r in range(2,tmp_sh.max_row+1):
# 建立一个列表来保存数据
row_data = []
for c in range(1,tmp_sh.max_column+1):
# 通过行和列的索引获取数据
value = tmp_sh.cell(r,c).value
# 将当前列的数据增加到一行中记录
row_data.append(value)
# 将当前行数据增加到新的excel中
sh.append(row_data)
wb.save('./create_data/21_合并多个文件.xlsx')
if __name__ == '__main__':
merger_file()
tmp_sh = tmp_wb.active
# 在新的excel中创建一个新的Sheet,名称为合并的文件名
new_sh = wb.create_sheet(sheet_name)
# 获取行数据
for r in range(1,tmp_sh.max_row+1):
# 定义一个列表用来存储当前行的所有数据
all_data = []
# 获取列数据
for c in range(1,tmp_sh.max_column+1):
value = tmp_sh.cell(r,c).value
all_data.append(value)
# 将数据保存到新的excel中
new_sh.append(all_data)
# 删除自动生成的Sheet
del wb['Sheet']
# 保存新Excel文件修改
wb.save('./create_data/22_合并多个文件2.xlsx')
if __name__ == '__main__':
merger_file()
from openpyxl import load_workbook,Workbook
# 加载文件,data_only=True代表显示值
wb = load_workbook('./base_data/工资数据.xlsx',data_only=True)
sh = wb.active
# 读取数据-遍历每行数据
# 建立一个title列表,用于存储标题
title = []
for i,r in enumerate(sh.rows):
# 判断是否第一行数据
if i == 0:
for c in r:
title.append(c.value)
else:
row_data=[]
for c in r:
row_data.append(c.value)
# 创建一个新的excel文件
new_wb = Workbook()
# 激活Sheet
new_sh = new_wb.active
# 增加数据
new_sh.append(title)
new_sh.append(row_data)
# 保存数据
new_wb.save(f'./create_data/gong_zi/{r[1].value}.xlsx')
if __name__ == '__main__':
create_excel()
from datetime import date
from openpyxl import Workbook
from openpyxl.styles import PatternFill
# 创建一个excel对象
wb = Workbook()
# 激活Sheet
sh = wb.active
# 增加数据
rows = [
['Date', 'Batch 1', 'Batch 2','Batch 3'],
[date(2030,12, 1), 40, 30, 25],
[date(2030,12, 2), 40, 25, 30],
[date(2030,12, 3), 50, 30, 45],
[date(2030,12, 4), 30, 25, 40],
[date(2030,12, 5), 25, 35, 30],
[date(2030,12, 6), 20, 40, 35],
for r in rows:
sh.append(r)
# 创建样式
bg_color = PatternFill('solid',fgColor='AEEEEE')
# 设置样式
for r in range(1,sh.max_row+1):
if r%2==0:
for c in range(1,sh.max_column+1):
sh.cell(r,c).fill = bg_color
# 保存excel文件
wb.save('./create_data/23_隔行换色.xlsx')
if __name__ == '__main__':
create_excel()
['Date', '姓名', '打卡时间'],
[date(2030,12, 1), '吕小布','18:50'],
[date(2030,12, 2),'貂的蝉','18:10'],
[date(2030,12, 3),'刘备','18:02'],
[date(2030,12, 4),'吕小布','18:50'],
[date(2030,12, 5), '张飞','19:22'],
[date(2030,12, 6), '吕小布','18:50'],
for row in rows:
sh.append(row)
wb.save('./create_data/24_统计加班时间.xlsx')
def statistics():
from openpyxl import load_workbook,Workbook
# 读取数据
wb = load_workbook('./create_data/24_统计加班时间.xlsx')
sh = wb.active
data = []
for row in range(2,sh.max_row+1):
# 一条完整的数据
row_data = []
for col in range(1,sh.max_column+1):
value = sh.cell(row,col).value
row_data.append(value)
# 统计时间
# 获取时间
h,m = row_data[2].split(':')
# 计算时间 从0:00到打卡的时间
full = int(h)*60 + int(m)
rs = full - 18*60
# 将结果保存到最后一列
row_data.append(rs)
#------处理时间 显示问题------
row_data[0] = row_data[0].date()
data.append(row_data)
wb = Workbook()
sh = wb.active
for d in data:
sh.append(d)
wb.save('./create_data/24_统计加班时间.xlsx')
if __name__ == '__main__':
create_excel()
statistics()