python_openpyxl学习记录
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 | import os import uuid from openpyxl import Workbook from openpyxl.styles import colors #颜色模块 from openpyxl import load_workbook sr = uuid.uuid4() #生成一个不重复的字串 wb = Workbook() ws = wb.active #创建工作簿的时候默认创建的一个工作表 '''ws1=wb.create_sheet('nihao') #在最后新建一个表 ws2=wb.create_sheet('nihao2',0) #在0(第一个工作表之前)号工作表前插入一个表 ws3=wb.create_sheet('nihao3',-1) #在-1(最后一个工作表之前)号工作表前插入一个表 ws.title,ws1.title,ws2.title,ws3.title=['1','2','3','4'] #修改工作表名称 ws['a1']=100 #填入一个值 col=colors.COLOR_INDEX[4] ws1.sheet_properties.tabColor=col #设置工作表颜色 wb.copy_worksheet(wb['1']) #复制一个工作表 1 Copy,只能在当前工作簿复制操作,且不能复制图表,图像等对象 # wss1=wb['title'] #获得工作表title对象 # wb.sheetnames #获取工作表名称['Sheet2', 'New Title', 'Sheet1'] for i in wb: print(i.title) #循环方式获得工作表对象,这是打印标题''' # do with data '''ws['a2']='hello world' d=ws.cell(3,2,value=100) #以上两种方法均给单元格赋值,注意value是参数,而不是直接=多少! for x in range(1,11): for y in range(1,11): value=x*y #所以这里可以提前定义好value的值! ws.cell(x,y,value=value) cell_rng=ws['a1':'f4'] for m in cell_rng: #按行一行一行取 for k in m: #再取行中的每一个单元格 print(k.value,end=',') print() colc=ws['a'] #取一列 colc1=ws['a:c'] #取多列 colr=ws[1] #取一行 colr1=ws[1:5] #取多行''' # for x in range(1,11): # for y in range(1,11): # value=x*y #所以这里可以提前定义好value的值! # ws.cell(x,y,value=value) # # for ro in ws.iter_rows(min_row=1,max_row=4,min_col=1,max_col=10): #通过行列序号获取一个区域, # values_only=True就是只取值 # # ws.iter_cols()一样的用法,只是先从列,再循环行,方向不一样,且只读模式下不可用 # for rng in ro: # print(rng.value,end='') # print() # ws['d10']='hello world' # ws['b5']='hello world' # # # for i in ws.rows: #从A1到最后一个使用单元格的区域,ws.columns使用方法一样的,方向不一样,且只读模式下不可用 # # print(i) # for row in ws.values: #循环只取值,这里区域是从A1到最后一个使用的单元格 # for value in row: # print(value,end=' ') # print() wb1 = load_workbook(os.path.join(os.path.expanduser( '~' ), 'desktop' , 'asd.xlsx' ),keep_vba = True ) #,keep_vba=True) keep_vba启用vba # wb.save(os.path.join(os.path.expanduser('~'),'desktop','%s.xlsx'%sr)) # #保存This operation will overwrite existing files without warning. wb1.save(os.path.join(os.path.expanduser( '~' ), 'desktop' , 'asd_copy.xlsm' )) #直接保存为不一样的名称,就是另存了,若想保存为启用宏的工作簿,则 # 打开的时候就要启用 |
分类:
部分模块学习记录
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏