excel自动办公-模块openpyxl学习笔记

#安装模块在cmd中运行如下命令)
#出现 Successfully installed 安装成功
#pip install openpyxlimport openpyxl
#总的思路,该模块有工作簿对象、工作表对象、范围单元格、单元格对象。所有操作可以对这四类进行操作。zm = r"D:\360MoveData\Users\Administrator\Desktop\\"
#zm = r"C:\Users\Administrator\Desktop\\"wb = openpyxl.Workbook)#创建一个工作簿
wb2 = openpyxl.load_workbookzm+"文件名称.xlsx",data_only=True)#打开已存在的工作簿;ata_only公式显示值。(有问题)
printwb2.sheetnames)#显示所有工作表名ws = wb2.active#激活默认打开时的工作表
ws = wb2["Sheet1"]#激活指定工作表,表名作为key进行索引。
wb2.copy_worksheetws) #复制激活的工作表的副本ws = wb2.create_sheet"Mysheet", 0)#创建一个工作表,位置为0
wb2.remove_sheetws)#删除工作表,只能为工作表对象。ws.title='CCCCC'#更改工作表名
ws.sheet_properties.tabColor="1072BA" #设置工作表标题的背景色ws["A1"] = "aaaaaaaaaaa"#对指定单元格进行赋值
ws.cellrow=10,column=10,value='AAAAAAA')#对第十行第十列赋值(可用在循环赋值)
ws.append[1,2,3,4,5,6,7])#从非空行开始赋值
ws.append{'A':'This is A1','C':'This is C1'})#从非空行开始赋值
ws.append{5:'This is A1',7:'This is C1'})#从非空行开始赋值
ws["A1"] = "=SUMB1:C1)"#对指定单元格输入公式。printws["A1"].value)#访问某个单元格内容,同时也可以通过[单元格对象].value=" "进行赋值
printws.cellrow=1,column=2).value) #访问某个单元格内容a = ws["A1":"B6"]#[范围选择]通过切片访问某个区域,再通过for循环可以读出数据,也可以进行赋值。
for i in a:printi[0].value)#当前i的是一个列表,可以通过下标索引访问某个元素(单元格)的值。for j in i:printj.value)j.value = "123"#进行赋值printj.row,j.column,j.coordinate)#通过单元格对象,取行、列、坐标                aa = ws.iter_colsmin_col=2, max_col=7, min_row=2, max_row=6,values_only=True)#取第二行到第七行,第二列到第6列。values_only只取出单元格值
for i in aa:printi)a = ws["A"]#取出A列中所有数据
for i in a:printi.value)a = ws["C:E"]#取出C到E列
for i in a:printi)for j in i:printj,j.value)a = ws[1]#取出第1行
for i in a:printi.value)a = ws[1:3]#取出1到3行
for i in a:for j in i:printj.value)a = ws.rows#取出表中所有数据
for i in a:for j in i:printj.value,end=" ")print)a = ws["B2"]
a.offset2,0)#在单元格对象的位置上进行坐标偏移。# 获得最大列和最大行
printws.max_row)
printws.max_column)ws.row_dimensions[2].height = 100 #设置第2行高度
ws.column_dimensions["A"].width =50 #设置第A列宽度ws.merge_cells"A3:B5")#合并单元格A3至B5,单元格名为A3
ws.unmerge_cells"A3:B5")#拆分单元格。怎么合的就要怎么拆。printopenpyxl.utils.get_column_letter108))  #根据列的数字返回字母DD列
printopenpyxl.utils.column_index_from_string'DD'))  #根据字母返回列的数字108列ws.freeze_panes = "C5" #冻结C5左边和上面的单元格。如果要取消就设置为"A1"#样式设置-----------------------------------------------------------开始
ws["B6"]="ABCD"
ws["B8"]="哈哈哈"
from openpyxl.styles import Font#字体设置
ws["B6"].font = Fontname="黑体",size=16,bold=True,underline="double",italic=True,strike=False,color="FF0000") 
#字体,字号,加粗,下划线single单下划;double双),倾斜,删除线,颜色from openpyxl.styles import PatternFill#纯色背景填充
ws["B6"].fill = PatternFillfill_type="solid",fgColor="FFFF00")#填充背景模式:纯色;颜色:黄色;from openpyxl.styles import GradientFill#渐变背景填充
ws["B8"].fill = GradientFilltype="linear",stop="FF00FF","00FF00"))#填充背景模式:渐变;颜色黄色到绿色;from openpyxl.styles import Border, Side#边框线条设置
XT = Sideborder_style="thick",color="FF00FF")#线条类型和颜色
ws["D10"].border = Bordertop=XT,bottom=XT,left=XT,right=XT)#设置边框上下左右的线条
# border_style参数:'thick粗线', 'thin细线','dotted虚线','double双单''dashDot','dashDotDot', 'dashed',
# 'hair', 'medium', 'mediumDashDot', 'mediumDashDotDot','mediumDashed', 'slantDashDot', from openpyxl.styles import Alignment#文本对齐
ws["B6"].alignment = Alignmenthorizontal="general",vertical="distributed",wrapText=True,textRotation="0")#水平和垂直对齐方式、自动换行、旋转角度
# 水平horizontal:"general", "left", "center", "right", "fill", "justify", "centerContinuous","distributed", )
# 垂直vertical:"top", "center", "bottom", "justify", "distributed"   【对应excel中对齐设置的顺序】from openpyxl.styles import NamedStyle#设置好字体,对齐,边框等样式供调用
Yang = NamedStylename="name1")
Yang.font=Fontname="黑体",size=25,color="000000")
Yang.fill=PatternFillfill_type="solid",fgColor="FFFFFF")
XT = Sideborder_style="double",color="FF00FF")
Yang.border=Bordertop=XT,bottom=XT,left=XT,right=XT)
Yang.alignment = Alignmenthorizontal="center",vertical="center")#设置结束ws["B13"].style ="name1"#对单元格添加样式
#样式设置-----------------------------------------------------------结束#单元格数字文本格式设置-----------------------------------------------开始
import datetime#时间模块
ws["D13"] = datetime.datetime.today)
ws["D13"].number_format = "yyyy年mm月dd日hh时mm分ss秒"
ws["D12"].number_format = "#,###.00元整"
ws["D14"].number_format="+#,##0;-#,##0"#正负两种情况下的不同显示,也可加颜色。
ws["D15"].number_format="[=1]男;[=2]女"#为1显示男;为2显示女;也可以用大于小来做判断。
#单元格数字文本格式设置-----------------------------------------------结束wb2.savezm+"文件名称.xlsx")#保存文件到指定目录。覆盖同名文件,而不会有任何警告
wb2.close)#关闭文件#https://www.bilibili.com/video/av23697305/?spm_id_from=333.788.b_636f6d6d656e74.17

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注