Python学习笔记11.自动化处理表格

有这样一个表格:

transaction_idproduct_idprice
10011$5.95 
10022$6.95 
10033$7.95 

现在价格出现了错误,需要每个都乘以0.9,在excel中若数据过多将变得十分繁琐,尝试用python解决。


将这个表格导入进项目文件,

import openpyxl as xl//引用openpyxl包,这个包可以在皮皮下载,并重命名为xl,方便后面写作

wb=xl.load_workbook('transactions.xlsx')//表格文件的名字是transactions.xlsx
sheet=wb['Sheet1']//确定sheet
# cell=sheet['a1']
cell=sheet.cell(1,1)//这里演示的是两种查看单元格的方法,访问a1单元格,同等效力
print(cell.value)//打印a1的值检验,检验成功
print(sheet.max_row)//获取当前表格的行数
for row in range(1,sheet.max_row+1):
    print(row)//循环行数,打印检验,成功
for row in range(2,sheet.max_row+1)://第一行是表头,由于不需要用所以从2开始循环
    cell=sheet.cell(row,3)//获取第三列的数据
    print(cell.value)//打印检验,检验成功
for row in range(2,sheet.max_row+1):
    cell=sheet.cell(row,3)//获取第三列(单元格)
    corrected_price=cell.value*0.9//乘以0.9,保存为一个变量
    corrected_price_cell=sheet.cell(row,4)//获取第四列(单元格)
    corrected_price_cell.value=corrected_price//把改正后的数据赋给第四列单元格
wb.save('transactions2.xlsx')//保存文件为transactions2,不覆盖以防出bug

再实现制表功能,

from openpyxl.chart import BarChart,Reference
values=Reference(sheet,
          min_row=2,
          max_row=sheet.max_row,
          min_col=4,
          max_col=4)
chart=BarChart()
chart.add_data(values)
sheet.add_chart(chart,'e2')

整体代码实现如下:(做成了函数)

import openpyxl as xl
from openpyxl.chart import BarChart,Reference

def process_workbook(filename):
    wb=xl.load_workbook(filename)
    sheet=wb['Sheet1']

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

    values=Reference(sheet,
              min_row=2,
              max_row=sheet.max_row,
              min_col=4,
              max_col=4)
    chart=BarChart()
    chart.add_data(values)
    sheet.add_chart(chart,'e2')

    wb.save(filename)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值