使用Python处理Excel文件

下载openpyxl模块

pip install openpyxl

 

import openpyxl
# load_workbook()打开Excel文件
wb = openpyxl.load_workbook('test_excel.xlsx')
print(type(wb))
# 属性sheetnames获得当前工作簿的所有工作表对象,以列表形式返回
allsheets = wb.sheetnames
print(allsheets)
# 根据工作表的名称获取工作表对象
ws = wb['Sheet1']
# 属性title获得当前工作表的名称
print(ws.title, type(ws))

获取单元格内容

# ws['栏行'].value取得工作表内容
print(ws['A2'].value)

# cell(column=,row=).value取得单元格内容
print(ws.cell(column=1, row=1).value)
取得工作表的栏数和行数
print(ws.max_column)
print(ws.max_row)

遍历工作表

# 利用ws.rows,ws.columns数据产生器遍历工作表
for row in ws.rows:
    for cell in row:
        print("%10s" % cell.value, end="")
    print()

字段的字母与数值的互相转换

# 字段的字母与数值的互相转换
from openpyxl.utils import get_column_letter, column_index_from_string
print(get_column_letter(27))
print(column_index_from_string('AB'))

利用切片方法获取某区间数据

# 利用切片方法获取某区间数据
for row in ws['A2':'C5']:
    for cell in row:
        print(cell.value,end='')
    print()

新建空白Excel文件并存储

# 建立空白Excel文件并存储文件
wb1 = openpyxl.Workbook()
# 新建工作表
ws1 = wb1.create_sheet('class')
wb1.save('excel2.xlsx')

复制文件

# 利用save()复制文件
wb.save('excel3.xlsx')

新建工作表

# 新建工作表
wb.create_sheet()
wb.create_sheet(index=0, title='fir')  # 建立第一个工作表
wb.create_sheet(index=2, title='third')  # 建立第三个工作表

删除工作表

# 删除工作表
wb.remove(wb["Sheet"])
print(wb.sheetnames)

写入单元格

# 写入单元格
ws['A6'] = '田七'
ws['B6'] = 13
ws['C6'] = ''
wb.save('excel4.xlsx')

将列表数据写入单元格

# 将列表数据写入单元格
row1 = ['王二', 15, '']
ws.append(row1)
wb.save('excel4.xlsx')

 设定单元格字体

# 设定单元格字体
from openpyxl.styles import Font
ft1 = Font(name='宋体', size=20, bold=True)
ws['A1'].font = ft1
wb.save('excel4.xlsx')

数学公式的使用

# 数学公式的使用
# 加总
ws['D1'] = '总和'
ws['D2'] = '=SUM(B2:B5)'
#平均
ws['E1'] = '平均'
ws['E2'] = '=AVERAGE(B2:B5)'
# 最大值
ws['F1'] = '最大值'
ws['F2'] = '=MAX(B2:B5)'
# 最小值
ws['G1'] = '最小值'
ws['G2'] = '=MIN(B2:B5)'
wb.save('excel4.xlsx')

设定单元格的高度和宽度

# 设定单元格的高度和宽度
ws.row_dimensions[1].height = 40  # 设置单元格的高度
ws.column_dimensions.width = 80  # 设置单元格的宽度
wb.save('excel4.xlsx')

单元格对齐方式

# 单元格对齐方式
from openpyxl.styles import Alignment
ws['A1'].alignment = Alignment(horizontal='left',vertical='top')
ws['B1'].alignment = Alignment(horizontal='center', vertical='bottom')
wb.save('excel4.xlsx')

合并与取消合并单元格

# 合并单元格
ws.merge_cells('A10:C10') ws.merge_cells('A12:A15') ws.merge_cells('D10:f13') wb.save('excel4.xlsx')
# 取消合并单元格
ws.unmerge_cells('D10:f13')
wb.save('excel4.xlsx')

柱形图

# 柱形图
from openpyxl.chart import BarChart,Reference
barchart = BarChart()
barchart.title = '学生信息统计表'
barchart.y_axis.title = '年龄'
barchart.x_axis.title = '姓名'
# 建立数据对象
data = Reference(ws,min_col=2,min_row=1,max_row=6)
barchart.add_data(data, titles_from_data=True)
# x轴的标记名称
xtitle = Reference(ws,min_col=1,min_row=2,max_row=6)
barchart.set_categories(xtitle)
# 放置图表的位置
ws.add_chart(barchart, 'H5')
wb.save('excel4.xlsx')

3D柱形图

# 3D柱形图
from openpyxl.chart import BarChart3D, Reference
barchart3d = BarChart3D()
barchart3d.title = '学生信息统计表'
barchart3d.x_axis.title = 'name'
barchart3d.y_axis.title = 'age'
# 建立数据对象
data = Reference(ws,min_col=2,min_row=1,max_row=6)
barchart3d.add_data(data, titles_from_data=True)
# x轴的标记名称
xtitle = Reference(ws,min_col=1,min_row=2,max_row=6)
barchart3d.set_categories(xtitle)
# 放置图表的位置
ws.add_chart(barchart3d, 'H10')
wb.save('excel4.xlsx')

饼图

# 饼图
from openpyxl.chart import PieChart, Reference
piechart = PieChart()
piechart.title = 'oooooo'
# 建立数据对象
data =Reference(ws,min_col=2,min_row=1,max_row=6)
piechart.add_data(data, titles_from_data=True)
# 标签名称
lbl = Reference(ws, min_col=1, min_row=2, max_row=6)
piechart.set_categories(lbl)
# 放置图表的位置
ws.add_chart(piechart, 'K1')
wb.save('excel4.xlsx')

3D饼图

# 3D饼图
from openpyxl.chart import PieChart3D,Reference
piechart3d = PieChart3D()
piechart3d.title='tttttt'
# 建立数据对象
data =Reference(ws,min_col=2,min_row=1,max_row=6)
piechart3d.add_data(data, titles_from_data=True)
# 标签名称
lbl = Reference(ws, min_col=1, min_row=2, max_row=6)
piechart3d.set_categories(lbl)
# 放置图表的位置
ws.add_chart(piechart3d, 'K15')
wb.save('excel4.xlsx')

 

 

 

 



posted @ 2020-09-23 20:16  ☞@_@  阅读(141)  评论(0编辑  收藏  举报