python operation excle form

Basic Training

He did not talk much, do some basic exercises. Come, I am left with a dragon painted with the right painting a rainbow.

# import paramiko
# import time
import openpyxl
from openpyxl import Workbook
# study from "https://openpyxl.readthedocs.io/en/stable/"
# 操作Excle流程
wb = Workbook() # 创建workbook,默认生成一张表:Sheet
# wb2 = load_workbook('test.xlsx') # 打开
ws1 = wb.create_sheet("Mysheet") # insert at the end (default) 备注:存在则不创建
ws2 = wb.create_sheet("Mysheet1", 0) # insert at first position
ws3 = wb.create_sheet("Mysheet2", -1) # insert at the penultimate position 插入倒数第二个位置
ws = wb.active # 只会定位到第一张表
ws.title = "New Title" # 更改表名
ws.sheet_properties.tabColor = "111111" # 更改表名背景颜色,遵循“RRGGBB”标准,16进制
print(ws)
ws4 = wb["Mysheet2"] # 通过表名获取这张表对象
ws5 = wb.copy_worksheet(ws1) # 复制表格,默认最后位置
ws['A4'] = 4 # 表格赋值1
d = ws.cell(row=4, column=2, value=10) # 表格赋值方式2,并获取数据
c = ws['A4'] # 获取数据
# 创建100*100的表格,并在表格里添加数据
for x in range(1,101):
    for y in range(1, 101):
        ws.cell(row=x, column=y,value=x+y)
# 切片方式圈出数据范围(非数据本身)
# 方式1
# print(ws['A1':'C2'])
# print(ws['C'])
# print(ws['C:D'])
# print(ws[10])
# print(ws[5:10])
# 方式2 按B1\C1\B2\C2展示
for row in ws.iter_rows(min_row=1, min_col=2, max_col=3, max_row=2):
    for cell in row:
        print(cell)
wb.save("./wb.xlsx")
# 方式3 按B1、B2、C1、C2展示
for col in ws.iter_cols(min_row=1, min_col=2, max_col=3, max_row=2):
    for cell in col:
        print(cell)
print(tuple(ws.rows)) # 按每行展示所有列范围
print(tuple(ws.columns)) # 按每列展示所有行范围
# 获取表内所有值
for val in ws.values:
   for value in val:
     print(value)
# 按行获取指定范围内的值,返回元组
for row in ws.iter_rows(min_row=1, min_col=1, max_col=3, max_row=2, values_only=True):
    print(row)
'''
# openpyxl中有三个不同层次的类,每一个类都包含了许多属性和方法。
# 1、Workbook是对工作簿的抽象,打开或者创建一个Excel需要创建一个Workbook
wb = Workbook() # 创建
# wb.save("./test002.xlsx") # 保存,参数为文件路径;若不保存,任何改变都失效
owb = openpyxl.load_workbook("./test001.xlsx") # 打开,参数为文件路径
# sa1 = owb.active # 获取当前操作的sheet表名,即文档的第1张表
# print(sa1)
# alls1 = owb.worksheets # 以列表的形式返回所有的Worksheet(表格)
# lists1 = owb.sheetnames # 获取工作簿中的表(列表形式)

# 2、Worksheet是对表格的抽象
sheet1 = owb["Sheet"] # 通过表名获取操作的表格
print(sheet1.max_row) # 获取表格最大行
print(sheet1.min_row) # 获取表格最小行,例:第一行为空,第二行有数据,则为2
print(sheet1.max_column) # 表格的最大列
print(sheet1.min_column) # 表格的最小列
print(sheet1.rows) # 按行获取cell对象  - 生成器
print(sheet1.columns) # 按列获取cell对象  - 生成器
print(sheet1.values) # 按行获取表格的内容(数据)  - 生成器
sheet1.append([1,2,3]) # 列表形式在末尾添加数据 1,2,3
sheet1.append([1])
owb.save("./test001.xlsx")

# 3、Cell是对单元格的抽象
va1 = sheet1['A4'].value # 获取cell方式一,通过sheet对象获取
print(va1)
# sheet1['A4'].value = "change the cell" # 赋值方式1
sheet1['A4'] = "go go go" # 赋值方式2
va2 = sheet1['A4'].value
print(va2)
ce1 = sheet1.cell(1,2) # 获取cell方式二,通过cell对象获取
print(ce1.coordinate) # 获取坐标B1
print(ce1.row)
print(ce1.column)

# 综合运用
# 打印表格的数据
for row in sheet1.rows:
    print([ cell.value for cell in row ]) # 按行展示
    # print(*[cell.value for cell in row]) # 将列表的每个元素分解出来
    # for cell in row:
    #     print(cell.value)
# for row in sheet1.values:
#     print(*row)
# 测试带*的区别
# print(["yeqinfang","is","good","man"])
# print(*["yeqinfang","is","good","man"])
# def a(s,s1,s2,s3):
#     print(s)
# a(*["yeqinfang","is","good","man"])
d = {"a":"1","b":"2","c":"3","d":"4"}
print(*d) # 解压结果: a b c d
'''
Published 25 original articles · won praise 0 · Views 2682

Guess you like

Origin blog.csdn.net/weixin_43431593/article/details/103889016