python excel数据处理画图,处理excel的python库
openpyxl的优缺点:1。openpyxl完美支持熊猫数据框对象;
2.openpyxl支持后台悄悄打开excel文件;
3.支持excel的一些排序、过滤、排序功能,支持丰富的dldtdstyle(样式)设计;
4.还支持读取现成的excel文件,新建excel文件;
5.支持最新的xlsx格式文件,更新频繁,操作简单。
1.缺点:运行效率比较低。当表中项目过多时,运算速度比熊猫慢。
2.某些行或列的样式设计存在一些bug,语法可能无效。
3.支持排序和过滤功能,但用户必须手动打开excel并更新数据,搜索条件才能生效,这是半自动的;
4.不支持excel的自动列宽功能,要达到同样的效果有点复杂。
文本的简单情况(使用openpyxl的典型过程是创建/读取一个excel文件(选择sheet对象);表单/对/单元的操作;excel);Openpyxl导入工作器创建excel文档WB=workbook(#),指定当前显示的(活动)工作表对象ws=wb.active#,并分配WS (A1) # 3) # Excel WB。保存(sample.xlsx) (WB。保存)Rd: (example.xlsx))到A1dldtd。
fropenpyxlimportworkbookwb=workbook()读取excel
fropenpyxlimport _ workbook WB=load _ workbook( 1 . xlsx )保存excel
WB。保存(filename.xlsx)) WB。Save) R) D: (example.xlsx),通过表单操作新建一个表单。
#默认情况下插入到末尾(wb.create _ sheet)新闻工作表),从0开始计数)ws=wb.create _ sheet)新闻工作表,0)所有现有工作表,0)
返回所有工作表名称。])(WB . sheet names WB . get _ sheet _ names)来选择活动的工作表对象。
# select ws=WB[ # sheet 1 ]ws=WB . get _ sheet _ by _ name( sheet 1 )基于# sheetname #选择当前显示,然后选择活动的sheetws=WB.acacc
source=WB . active target=WB . copy _ worksheet(source)遍历表单
# forrowinsheet 3360 forcelinrow:print(cell . value,end=,)#默认结尾为换行符print) #在每行的指定区域按max _ col=20(:forcelincol:print(cell . value,end=)print())列遍历表格的forcolin sheet . columns 3330 )print))按列遍历表格max_col=4,min_row=3,max _ row=20):forcelincome:print(cell . value)
from openpyxlimportworkbook from openpyxl . stylesimportalignmentbook=workbook(sheet=book . active sheet . freeze _ panes
#表名sheet.title#最大行数和最大列数sheet.max _ rowset.max _ column #矩阵生成器sheet.rows #是一个行生成器,其中每一行的cell对象都用一个元组括起来。sheet.columns #是一个列生成器,其中每一列的cell对象都由一个元组包装。List(sheet.rows) [0]。值,您可以使用相同的方法来获取数据,也可以在s。
Heet.rows:对于行中的单元格:print (cell.value)遍历值,或值生成器sheet.values仅遍历值以删除工作表。
WB . remove(sheet object)delwb[ sheet ]# sheet name删除指定的行和列数据。
#从第六列删除以下三列ws.delete _ cols (6,3)#删除第三行wx.delete_rows(3)工作表的其他操作
# Insert row,insert ws.insert_rows(7)#在行7之前插入列,Insert ws . Insert _ cols(7)# delete row ws . delete _ rows(7)ws . delete _ cols(7)#可以根据编号删除多个ws.delete_cols(6,3)
Openpyxl.utils导入get _ column _ letter,column _ index _ from _ string #返回字母print(get_column_letter(2)) # B#返回数字print(column _ index _ from _ string( d ))# 4矩阵按字母排列(行列)。
rows=[ [Number , data1 , data2],[2,40,30],[3,40,25],[4,50,30],[5,30,10],[6,25,5],[7,50,10]]list(zip(* rows))# out[( Number ,2,3,4,5,6,7),( data1 ,40,40,50,30,25,50),( data40 ],#这里缺少dldtd [3,40,25],[4,50,30],[5,30,10],[6,25,5],] # out [(number ,2,2
使用append()方法,我们可以将一组值追加到当前工作表的底部。append函数可以直接用于单行数据,但插入多行数据时,append函数不能复合数据,只能循环插入单行。从openpyxl导入Workbook book=Workbook()sheet=book . active rows=((88,46,57),(89,38,12),(23,59,78),(56,21,98),(24,18,43),(34,15,67))对于行中的行:sheet . append(row)book . save( appending . xlsx )选择celldldtd对象。
#访问单元格对象A2=WS [A1] # A,列1和行a2=ws[a2] #还可以访问单元格列表中的B2=WS.cell(行=2,列=2) B3=WS.cell (3,2) #返回B3=列表(WS.rows)
# slice access a2 _ B3=ws[ a2 : B3 ]由行组成的元组返回元组((单元格 sheet1 .a2,单元格 sheet1 .b2),(单元格 sheet1 .a3,单元格 Sheet1.B3))#单独的字母和数字返回列和行的所有数据b=ws[b] #返回列b的所有单元格对象row1=ws[1] #返回行1的所有单元格#当然,也可以选择a _ e=ws [a: e] #列A的单元格对象
#直接分配ws[ a2 ]=222 ws[ a2 ]= AAA ws[ B2 ]==sum(A1:A17) #使用公式#value属性分配cell.value=222或ws.cell(1,2,value=222) dldtd属性。
# return column cell . column # return row cell . row # return value cell . value注意:如果dldtd是使用的公式,则value是公式而不是计算值# return dldtd的格式属性cell . number _ format # dldtd style cell . font默认情况下移动dldtd。
Ws。move _ range (D4: F10 ,rows=-1,cols=2)表示dldtdD4:F10上移一行,右移两列。dldtd将覆盖任何现有的dl dtd。(最新版本只能用这个方法。使用pip列表查看版本是否是最新的。)ws.move _ range (G4: H10 ,rows=1,cols=1,translate=true)移动包括公式的自动转换。合并和拆分dldtd
# Merge dldtd,写数据或读数据ws。左上角的merge _ cells( A2:D2 )# Split dldtdws . un merge _ cells( A2:D2 )四格式和样式设置导入类
openpyxl.styles导入字体、颜色、对齐字体类的常用参数
Font=Font(name=Calibri ,# font name size=11,# font size bold=False,# bold italic=False,# italic underline=none ,# underline color= ff 00000 )# color,可以用colors中的颜色设置字体。
T _ font=font (name= calibri ,size=24,italic=true,color=colors。red,bold=true) #只需给font属性分配一个font对象,然后sheet[A1]。font=t_font对齐
#将B1中的数据设置为垂直居中和水平居中。除了居中,您还可以使用参数表[b1]设置dldtd的行右和列宽。对齐=对齐(水平=居中,垂直=居中)
# 第2行行高sheet.row_dimensions[2].高度=40摄氏度列列宽sheet.column_dimensions[C].宽度=30最后再举个例子温习一下从随机导入选项导入日期时间从时间从安装导入加载_工作簿自从openpyxl.utils导入get_column_letter#设置文件明地址=打开pyxl。xlsx #打开文件wb=load_workbook(addr)#创建一诚心的黄豆表ws=wb.create_sheet()#第一行输入ws.append([TIME , TITLE , A-Z])#输入内容(500行数据)对于范围(500)内的I:TIME=datetime。日期时间。现在().strftime( % H:% M:% S )TITLE=str(TIME())A _ Z=get _ column _ letter(choice(range(1,50))) ws.append([TIME,TITLE,A_Z])#获取最大行row_max=ws.max_row#获取最大列con_max=ws.max_column#把上面写入内容打印在控制台对于ws.rows中的j:#我们。行获取每一行数据for n in j: print(n.value,end=\t) # n.value获取dldtd的值打印()#保存,保存(必须要写文件名(绝对地址)默认巴拉圭同级目录下,只支持文件格式格式)wb.save(地址)
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。