python_openpyxl学习记录


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'))#直接保存为不一样的名称,就是另存了,若想保存为启用宏的工作簿,则
                                                                    # 打开的时候就要启用

  

posted on 2022-05-15 17:24  松梅  阅读(51)  评论(0编辑  收藏  举报

导航