前情提要:需要有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)