python处理excel表格入门_python处理Excel基础

python处理Excel基础

1、openpyxl简介

(1)openpyxl简介

openpyxl模块是一个读写Excel 2010文档的Python库,如果要处理更早格式的Excel文档,需要用到额外的库,openpyxl是一个比较综合的工具,能够同时读取和修改Excel文档。其他很多的与Excel相关的项目基本只支持读或者写Excel一种功能。https://openpyxl.readthedocs.io/en/stable/

(2)安装openpyxl模块

openpyxl是一个开源项目,这里使用如下命令安装openpyxl模块

pip3 install openpyxl

 

2、Python打开及获取Excel表格内容

(1)Excel表格基本术语

列column;行row;单元格cell;表sheet

(2)打开Excel表格并获取表格名称

#打开Excel表格并获取表格名称

from openpyxl importload_workbook

workbook= load_workbook('students.xlsx')print(workbook.sheetnames)

sheet_x= workbook['xue'] #通过sheet名称获取指定表格

print(sheet_x.dimensions) #获取表的尺寸大小

(3)当EXCEL表里只有一个sheet表时,获取一个单元格内容

# 当表中只有一个sheet时,读取某单元格的数据

from openpyxl import load_workbook

workbook = load_workbook('students.xlsx')

sheet = workbook.active

cell = sheet['B2'] #指定单元格

print(cell.value,cell.row,cell.column,cell.coordinate)

cell = sheet.cell(row=2,column=2) #通过行号和列号来指定单元格

print(cell.value,cell.coordinate)

(3)当EXCEL表里只有一个sheet表时,获取一系列格子

# 当表中只有一个sheet时,获取一系列格子

from openpyxl import load_workbook

workbook = load_workbook('students.xlsx')

sheet = workbook.active

cells1 = sheet['A1:B2']

print(cells1)

cells2 = sheet['A']

print(cells2)

print(sheet['1:2'])

#当表中只有一个sheet时,获取一系列格子

from openpyxl importload_workbookfor row in sheet.iter_rows(min_row=5,max_row=6,min_col=5,max_col=6):print(row)for cell inrow:print(cell)for col in sheet.iter_cols(min_row=5,max_row=6,min_col=5,max_col=6):print(col)for cell incol:print(cell)

(4)当EXCEL表里只有一个sheet表时,获取一系列格子

#当表中只有一个sheet时,迭代获取所有行、列

from openpyxl importload_workbook

workbook= load_workbook('students.xlsx')

sheet=workbook.activefor row insheet.rows:print(row)for col insheet.columns:print(col)

3、Python向Excel表格中写

(1)向某个单元格写入并保存

#当表中只有一个sheet时,向某个单元格写入并保存

from openpyxl importload_workbook

workbook= load_workbook('students.xlsx')

sheet=workbook.active

sheet['a2']= '001'workbook.save('students.xlsx')

cell= sheet['A6']

cell.value= '005'workbook.save('students.xlsx')

(2)列表数据插入一行

#插入一行数据

from openpyxl importload_workbook

workbook= load_workbook('students.xlsx')

sheet=workbook.active

data=[

['010','10','王甲'],

['011','11','王乙']

]for row indata:

sheet.append(row)

workbook.save('students.xlsx')

(3)插入公式

#插入公式

from openpyxl importload_workbook

workbook= load_workbook('students.xlsx')

sheet=workbook.active

sheet['F18'] = '=AVERAGE(F2:F17)'workbook.save('students.xlsx')

(4)插入一列(多列)

#插入一列

from openpyxl importload_workbook

workbook= load_workbook('students.xlsx')

sheet=workbook.active

sheet.insert_cols(idx=2,amount=4) #在第2列之前插入空列,数量4

workbook.save('students.xlsx')

(5)插入一行(多行)

#插入一行(多行)

from openpyxl importload_workbook

workbook= load_workbook('students.xlsx')

sheet=workbook.active

sheet.insert_rows(idx=4,amount=4) #在第4列之前插入空列,数量4

workbook.save('students.xlsx')

(6)删除列,行

#删除列、行

from openpyxl importload_workbook

workbook= load_workbook('students.xlsx')

sheet=workbook.active

sheet.delete_cols(idx=4,amount=2) #在第4列之前删除列,数量2

workbook.save('students.xlsx')

sheet.delete_rows(idx=6,amount=2) #在第6列之前删除行,数量2

workbook.save('students.xlsx')

(7)移动格子

#移动格子

from openpyxl importload_workbook

workbook= load_workbook('students.xlsx')

sheet=workbook.active

sheet.move_range("C2:D4",rows=2,cols=-2) #指定移动格子的范围,移动方向(下、右为正)

workbook.save('students.xlsx')

(8)创建新的sheet,删除sheet

# 创建新的sheet

from openpyxl import load_workbook

workbook = load_workbook('students.xlsx')

print(workbook.sheetnames)

workbook.create_sheet('表格2')

print(workbook.sheetnames)

workbook.save('students.xlsx')

sheet_sc = workbook['表格2']

workbook.remove(sheet_sc)

workbook.save('students.xlsx')

print(workbook.sheetnames)

(9)修改sheet名称,创建新的Excel表格文件

#创建新的Excel表格文件

from openpyxl importWorkbook

workbook=Workbook()

sheet=workbook.active

sheet.title= '表格1'workbook.save('xinbiaoge.xlsx')

(10)冻结窗格

#冻结窗格

from openpyxl importload_workbook

workbook= load_workbook('students.xlsx')

sheet=workbook.active

sheet.freeze_panes= 'D6'workbook.save('students.xlsx')

(11)添加筛选

#添加筛选

from openpyxl importload_workbook

workbook= load_workbook('students.xlsx')

sheet= workbook['表格1']

sheet.auto_filter.ref= sheet.dimensions #对整个表筛选

workbook.save('students.xlsx')

4.、批量调整字体、样式

(1)修改字体样式

#修改字体样式

from openpyxl.styles importFontfrom openpyxl importload_workbook

workbook= load_workbook('students.xlsx')

sheet=workbook.active

cell= sheet['A1']

font= Font(name='黑体 Regular', size=12, bold=True,italic=True,color='FF0000')

cell.font=font

workbook.save('students.xlsx')

(2)获取字体样式

#获取字体样式

from openpyxl.styles importFontfrom openpyxl importload_workbook

workbook= load_workbook('studs.xlsx')

sheet=workbook.active

cell= sheet['A2']

font=cell.fontprint(font)print(font.name,font.size,font.bold,font.italic)

(3)设置对齐样式

#设置对齐样式

from openpyxl .styles importAlignmentfrom openpyxl importload_workbook

workbook= load_workbook('studs.xlsx')

sheet=workbook.active

cell= sheet['A4']

alignment= Alignment(horizontal='center',vertical='center',text_rotation='45')

cell.alignment=alignment

workbook.save('studs.xlsx')

(4)设置边框样式

#设置边框样式

from openpyxl.styles importSide,Borderfrom openpyxl importload_workbook

workbook= load_workbook('studs.xlsx')

sheet=workbook.active

cell= sheet['A6']

side1= Side(style='thin',color='FF0000')

side2= Side(style='dotted',color='FFFF00')

border= Border(left=side1,right=side2,top=side1,bottom=side2)

cell.border=border

workbook.save("studs.xlsx")

(5)设置填充样式

#设置填充样式

from openpyxl.styles importPatternFill,GradientFillfrom openpyxl importload_workbook

workbook= load_workbook('studs.xlsx')

sheet=workbook.active

cell_a6= sheet['A6']

pattern_fill= PatternFill(fill_type="solid",fgColor='99ccff')

cell_a6.fill=pattern_fill

cell_a8= sheet['A8']

gradient_fill= GradientFill(stop=('FFFFFF','99CCFF','000000'))

cell_a8.fill=gradient_fill

workbook.save('studs.xlsx')

(6)设置行高、列宽

#设置行高、列宽

from openpyxl importload_workbookimportopenpyxl

workbook= load_workbook('studs.xlsx')

sheet=workbook.active

sheet.row_dimensions[1].height = 50sheet.column_dimensions['A'].width = 20workbook.save('studs.xlsx')

(7)合并单元格

#合并单元格

importopenpyxlfrom openpyxl importload_workbook

workbook= load_workbook('studs.xlsx')

sheet=workbook.active

sheet.merge_cells('A1:A2')

sheet.merge_cells(start_row=6,start_column=6,end_row=8,end_column=8) #只保留左上第一个格子内容

workbook.save('studs.xlsx')

(8)取消合并单元格

#取消合并单元格

from openpyxl importload_workbook

workbook= load_workbook(('studs.xlsx'))

sheet=workbook.active

sheet.unmerge_cells('A1:A2')

sheet.unmerge_cells(start_row=6,start_column=6,end_row=8,end_column=8)

workbook.save('studs.xlsx')

5、生成Excel内图表

(1)插入图片

#openpyxl插入图片

from openpyxl importload_workbookfrom openpyxl.drawing.image importImage

workbook= load_workbook('studs.xlsx')

sheet=workbook.active

img_t1= Image('tupian1.png')

img_t1.height= 100img_t1.width= 100sheet.add_image(img_t1,"A1")

workbook.save('studs.xlsx')

(2)图表

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值