栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python处理Excel

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python处理Excel

安装:pip install openpyxl

打开工作簿 load_workbook(文件名)


获取工作表 workbook[sheet名称]

      活动表,当前选中的表workbook.active


获取表格尺寸 sheet.dimensions


获取表格内某个格子的数据 sheet['A1']

        获取一系列的单元格sheet['A1:A5']   sheet['A:C']  sheet['A']  sheet[5]   sheet.rows获取所有的行  sheet.columns获取所有的列

按列获取  .iter_rows(min_row=最低行数,max_row=最高行数,min_col=最低列数,max_col=最低列数)

按行获取  .iter_cols(min_row=最低行数,max_row=最高行数,min_col=最低列数,max_col=最低列数)

获取行号

        for col in cols:

                   print(str(col.row))


import openpyxl
#打开一个Excel表格
workbook=openpyxl.load_workbook('高一总成绩.xlsx')
#获取所有的sheet信息
print(workbook.sheetnames)
#workbook[sheet名称]   活动表,当前选中的表workbook.active
sheet=workbook['理科']
#sheet=workbook.active
#查看工作表尺寸
print(sheet.dimensions)
cells=sheet['B:C']
#元组类型要遍历
# print(cells)
# for cell in cells:
#     #print(cell.value)#会报错((,)...)  print(cells)  元组里面还有一个元组
#     #print(cell[0].value)
#     print(cell.value)
print(len(cells))#看大元组里面有几个小元组
for cell in cells: #一列是一个元组合起来是一个大元组,得到的是列
    for ce in cell: #遍历这个列,输出单元格
        print(ce.value)
import openpyxl
workbook=openpyxl.load_workbook('高一总成绩.xlsx')
sheet=workbook['理科']
cols=sheet.iter_cols(min_row=1,max_row=6,min_col=2,max_col=10)
for col in cols:
    for cell in col:
        print(cell.value)
    print('*'*30)

向某个格子写入内容 sheet['A1']='懒羊羊'

用某个格子写入内容 cell.value='懒羊羊'

使用Python列表数据插入一行 sheet. append(python列表)   一行内容

lst=['姓名','分数']

sheet.append(lst)

插入一列 .insert_cols(id=数字编号)     一列表格

插入多列 .insert_cols(id=数字编号,amount=要插入的列数)

col换成row就是插入行id=数字编号


插入公式 直接赋值公式字符串

from openpyxl.utils import FORMULAE
print(FORMULAE)#含有的Excel公式

import openpyxl
workbook=openpyxl.load_workbook('新表.xlsx')
sheet=workbook['Sheet1']
stu_lst=[
['懒羊羊',20],
['喜羊羊',100]
]
for row in stu_lst:
    sheet.append(row)
workbook.save('新表.xlsx')
import openpyxl
workbook=openpyxl.Workbook()#创建一个新的Excel文件
sheet=workbook.create_sheet()#创建一个工作表
sheet['A1']='懒羊羊'
workbook.save('新表.xlsx')
import openpyxl
workbook=openpyxl.load_workbook('新表.xlsx')
sheet=workbook['Sheet1']
sheet['B5']='=sum(B3:B4)'
workbook.save('新表.xlsx')

import openpyxl
workbook=openpyxl.load_workbook('新表.xlsx')
sheet=workbook["Sheet1"]
sheet.insert_cols(idx=1)  #在第一列前插入
workbook.save('新表.xlsx')
import openpyxl
workbook=openpyxl.load_workbook('新表.xlsx')
sheet=workbook["Sheet1"]
sheet.insert_cols(idx=2,amount=3)  #在第二列之前插入三列
workbook.save('新表.xlsx')

删除列.delete_cols(idx=数字编号,amount=要删除的列数)   (行  col改为row)

import openpyxl
workbook=openpyxl.load_workbook('新表.xlsx')
sheet=workbook["Sheet1"]
sheet.delete_cols(idx=1,amount=3)  #从第一列开始包括第一列,删除四列
workbook.save('新表.xlsx')

移动格子

sheet.move_range('A3:B8',row=3,col=-2)   正数是向下或右

#把A3到B8的数据看成一个整体,移动3行,2列


创建新的sheet

workbook.create_sheet(sheet名称)

删除一个sheet

workbook.remove(sheet名称)

复制一个sheet

workbook.copy_worksheet(sheet名称)

修改表格名称

sheet.title

import openpyxl
workbook=openpyxl.load_workbook('高一总成绩.xlsx')
print(workbook.sheetnames)  #查看所有的sheet名称
workbook.create_sheet('羊村')  #创建新的sheet
print(workbook.sheetnames)
#获取要删除的工作表的对象
sheet=workbook['羊村']
workbook.remove(sheet)#删除
#获取要复制的工作表的对象
sheet=workbook['文科']
workbook.copy_worksheet(sheet)#复制
#改名字
sheet=workbook['文科']
sheet.title='wenke'
print(workbook.sheetnames)
workbook.save('高一总成绩.xlsx')

冻结窗格sheet.freeze_panes='A2'  从第二行第一列开始冻结

import openpyxl
workbook=openpyxl.load_workbook('高一总成绩.xlsx')
sheet=workbook['理科']
sheet.freeze_panes='B2'
workbook.save('高一总成绩.xlsx')

添加筛选sheet.auto_filter.ref=sheet.dimensions

import openpyxl
workbook=openpyxl.load_workbook('高一总成绩.xlsx')
sheet=workbook['理科']
sheet.auto_filter.ref=sheet.dimensions   #dimensions Excel表的一个范围
workbook.save('高一总成绩.xlsx')

调整字体与样式

Font(name=字体名称,size=字体大小,bold=是否加粗,italic=是否斜体,color=字体颜色)

获取表格中字体的样式 cell.font.属性

设置对齐样式Alignment(horizontal=水平对齐方式,vertical=垂直对齐方式,text_rotation=旋转角度,wrap_text是否换行)


import openpyxl
from openpyxl.styles import Font
workbook=openpyxl.load_workbook('新表.xlsx')
sheet=workbook['Sheet1']
sheet["A1"]='懒羊羊'
cell=sheet["A1"]
font=Font(name='微软雅黑',size=20,bold=True,italic=False,color='ff0000')#ff0000是红色
cell.font=font
workbook.save('新表.xlsx')
import openpyxl
from openpyxl.styles import Font
workbook=openpyxl.load_workbook('新表.xlsx')
sheet=workbook['Sheet1']
cell=sheet["A1"]
font=cell.font
print(font.name)
import openpyxl
from openpyxl.styles import Alignment
workbook=openpyxl.load_workbook('新表.xlsx')
sheet=workbook['Sheet1']
cell=sheet["A1"]
algin=Alignment(horizontal='center',vertical='center')
cell.alignment=algin
workbook.save('新表.xlsx')

设置边框样式

Side(style=边线样式,color=边线颜色)

Border(left=左边线样式,right=右边线样式,top=上边线样式,bottom=下边线样式)

import openpyxl
from openpyxl.styles import Side,Border
workbook=openpyxl.load_workbook('新表.xlsx')
sheet=workbook['Sheet1']
cell=sheet["A1"]
side=Side(style='thin',color='ff0000')#设置线条的形状和颜色
border=Border(left=side,right=side,top=side,bottom=side)
cell.border=border
workbook.save('新表.xlsx')

设置填充样式

PatternFill(fill_type=填充样式,fgColor=填充颜色)

GradientFill(stop=(渐变色1,渐变色2,,...))

import openpyxl
from openpyxl.styles import PatternFill,GradientFill
workbook=openpyxl.load_workbook('新表.xlsx')
sheet=workbook['Sheet1']
#纯色
cell=sheet["B2"]
pattern_fill=PatternFill(fill_type='solid',fgColor='ffff00')
cell.fill=pattern_fill
#渐变色
cell=sheet["D2"]
grad=GradientFill(stop=('ff00ff','00ff00'))
cell.fill=grad
workbook.save('新表.xlsx')

设置行高和列宽

.row_dimensions[行编号].height=行高

.column_dimensions[列编号].width=列宽    列的编号ABCD

import openpyxl
workbook=openpyxl.load_workbook('新表.xlsx')
sheet=workbook['Sheet1']
sheet.row_dimensions[2].height=50
sheet.column_dimensions['B'].width=50
workbook.save('新表.xlsx')

合并单元格

.merge_cells(待合并的格子编号)

.merge_cells(start_row=起始行号,start_column=起始列号,end_row=结束行号,end_column=结束列号)

取消合并单元格 .unmerge_cells(...和上面的一样...),前面加个un就行了

import openpyxl
workbook=openpyxl.load_workbook('新表.xlsx')
sheet=workbook['Sheet1']
#sheet.merge_cells(start_row=4,start_column=4,end_row=6,end_column=6)
sheet.merge_cells("D1:G2")
workbook.save("新表.xlsx")

生成图表

输入pip install Pillow显示需要更新,按照指令python -m pip install --upgrade pip进行更新

#这个要先看看,Pillow更新没

插入图片 openpyxl.drawing.image

sheet.add_image

import openpyxl
from openpyxl.drawing.image import Image
workbook=openpyxl.load_workbook('新表.xlsx')
sheet=workbook.create_sheet('imagesheet')
#创建图片对象
bizhi=Image('壁纸.png')
bizhi.height=1200
bizhi.width=1920
sheet.add_image(bizhi,'A1')
workbook.save("新表.xlsx")

插入柱状图

BarChart()   Reference——范围

from openpyxl.chart import BarChart,Reference
workbook=openpyxl.load_workbook('柱状图和条形图.xlsx')
sheet=workbook['多列数据的柱状图']
#创建柱状图的图表对象
chart=BarChart()
#数据的引用范围-图表数据
data=Reference(worksheet=sheet,min_row=1,max_row=5,min_col=1,max_col=2)
#类别的应用范围-表名称
categories=Reference(sheet,min_row=2,max_row=5,min_col=1,max_col=1)
#将数据与类别添加到图表中
chart.add_data(data,titles_from_data=True)
chart.set_categories(categories)
#将图表插入工作表中
sheet.add_chart(chart,'F12')

workbook.save("柱状图和条形图.xlsx")

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/488309.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号