Python:如何实现对表格的自动化

前情提要:需要有openpyxl哦 如果没有请参考上一篇文章

http://t.csdnimg.cn/fjbLJ
先介绍一下对表格的基本操作 首先创立一个

transactions.xlsx

基本操作:获取表格,获取值

import openpyxl as xl

这个as 单纯简化 相当于别名

wb=xl.load_workbook('transactions.xlsx')

wb['Sheet1']返回一张表格

sheet=wb['Sheet1']

访问第一列第一行两种访问方式

a2表示a行第几列 从一开始 不区分大小写

cell=sheet['a2']

a,b 表示a行b列 从一开始

cell2=sheet.cell(1,2)

获取值

print(cell.value)

print(cell2.value)

获取行

row=sheet.max_row

怎么实现这样变那样呢!

复制代码
import openpyxl as xl
# 这个as 单纯简化 相当于别名
from openpyxl.chart import  BarChart,Reference
# 画图


wb=xl.load_workbook('transactions.xlsx')
# wb['Sheet1']返回一张表格
sheet=wb['Sheet1']

# 获取行
row=sheet.max_row
for i in range(2,row+1):
    cell=sheet.cell(i,3)
    corrected_price=cell.value*0.9
    corrected_price_cell=sheet.cell(i,4)
    corrected_price_cell.value=corrected_price

# 制图开始
# 获取第四例,从第二行到第四行的值
values=Reference(sheet,
          min_row=2,
          max_row=row,
          min_col=4,
          max_col=4)
chart=BarChart()
chart.add_data((values))
# 把图放到e2的位置
sheet.add_chart(chart,'e2')
# 保存表格 避免出错直接写一个新的名字
wb.save('transaction2.xlsx')

如何实现自动化呢!?当然是函数function

复制代码
import openpyxl as xl
from openpyxl.chart import  BarChart,Reference

def process_workbook(filename):
    wb = xl.load_workbook(filename)
    sheet = wb['Sheet1']
    row = sheet.max_row
    for i in range(2, row + 1):
        cell = sheet.cell(i, 3)
        corrected_price = cell.value * 0.9
        corrected_price_cell = sheet.cell(i, 4)
        corrected_price_cell.value = corrected_price

    # 制图开始
    # 获取第四例,从第二行到第四行的值
    values = Reference(sheet,
                       min_row=2,
                       max_row=row,
                       min_col=4,
                       max_col=4)
    chart = BarChart()
    chart.add_data((values))
    # 把图放到e2的位置
    sheet.add_chart(chart, 'e2')
    # 保存表格 避免出错直接写一个新的名字
    wb.save(filename)
相关推荐
叶帆9 小时前
【YFIOs】Docker方式部署
运维·docker·容器
小猿姐9 小时前
Clickhouse Kubernetes Operator 实测:哪种方案更适合生产?
运维·数据库·kubernetes
彩色的黑'''10 小时前
[root@localhost ~]#,Linux系统的命令提示符为啥现在变成-bash-4.2#了,哪里设置的
linux·运维·bash
树下水月10 小时前
文件分片上传接口(Easyswoole)被nginx拦截,并返回状态码400和408的抓包排查过程
运维·nginx
skilllite作者10 小时前
UI-TARS-Desktop 智能桌面自动化实战指南
ui·自动化·策略模式
南境十里·墨染春水11 小时前
linux学习进展 shell编程
linux·运维·学习
goyeer11 小时前
【ITIL4】32服务实践 - 问题管理(Problem Management)
linux·运维·服务器·企业数字化·it管理·itil·it治理
元拓数智11 小时前
AI 自动化工作流,正在重塑企业数据工程的效率边界
大数据·人工智能·ai·自动化·工作流·数据工程
cen__y12 小时前
Linux11(网络编程)
linux·运维·服务器·c语言·网络·网络协议·tcp/ip
CableTech_SQH12 小时前
商业地产和高端酒店该怎么选综合布线解决方案?
运维·服务器·网络