openpyxl

基础操作

示例代码

一、基础操作

可操作2003版本之后的excel表格

创建项目,安装openpyxl

-- Workbook
    from openpyxl import Workbook
    wb=Workbook()
  - create_sheet('title',index)
    wb1=wb.create_sheet("index3",0)
  - title 改名
    wb1.title="gaiming"
  - wb1["A4"]
  - wb1.cell(row=4,column=3,value=23)
  - append
    添加一行
    wb1.append(["姓名",'性别','爱好','住址'])
    wb1.append(['alex','buxiang','boy','shahe'])
    添加一个空行
    wb1.append([''])
    空单元格
    wb1.append(['alex','','喝酒','沙河'])添加一行
-- load_workbook(filename,read_only=,data_only=)
    from openpyxl import load_workbook
    初始化对象,read_only=True 表示只读
    wb=load_workbook('1.xlsx',data_only=True)
    获取所有工作薄的名称
  - sheetnames
    print(wb.sheetnames)
  - wb1["A4"].value
  - wb1.cell(row=4,column=3).value
  - rows 
  - columns
  - max_row
    print(wb1.max_row)
  - max_column
    print(wb1.max_column)
# 获取基于row的一个生成器
for r in wb1.rows:
    #r获取到是每一行的数据
    for c in r:
        #获取每一个单元格的数据
        print(c.value)

# 获取基于列的一个生成器
print(wb1.columns)
for c in wb1.columns:
    #c获取到是每一列的数据
    for r in c:
        #获取每一个单元格的数据
        print(r.value)

二、示例代码

#
from openpyxl import load_workbook
#初始化对象,read_only=True 表示只读
wb=load_workbook('1.xlsx',data_only=True)
#获取所有工作薄的名称
# print(wb.sheetnames)
#获取某个工作薄对象
wb1=wb['gaiming']
#取值方式1
# print(wb1["A3"].value)
#取值方式2
# print(wb1.cell(row=3,column=4).value)
# 获取基于row的一个生成器
for r in wb1.rows:
    #r获取到是每一行的数据
    for c in r:
        #获取每一个单元格的数据
        print(c.value)

# 获取基于列的一个生成器
print(wb1.columns)
for c in wb1.columns:
    #c获取到是每一列的数据
    for r in c:
        #获取每一个单元格的数据
        print(r.value)
# 获取最大的列数,获取总共有多少列
print(wb1.max_column)
# 获取最大的行数,获取总共有多少行
print(wb1.max_row)
#获取excel表格内的函数的值,初始化的时候应该加data_only=True
print(wb1["A5"].value)
###必须是人为的保存以后在获取值,这是坑
#写
from
openpyxl import Workbook wb=Workbook() # 默认添加到最后 # wb1=wb.create_sheet("index") #index指定位置 wb1=wb.create_sheet("index3",0) # 修改工作薄的名称 wb1.title="gaiming" #添加数据方式1 # wb1["B3"]=12 #添加数据方式2 # wb1.cell(row=4,column=5,value=34) #添加一行 # wb1.append(["姓名",'性别','爱好','住址']) # wb1.append(['alex','buxiang','boy','shahe']) # #添加一个空行 # wb1.append(['']) # #空单元格 # wb1.append(['alex','','boy','shahe']) wb1['A2']=3 wb1['A3']=4 wb1['A4']=5 #使用excel表格里面的函数 wb1["A5"]="=sum(A2:A4)" # 保存的 wb.save("1.xlsx")
import openpyxl
def upstarem_server(host_list, team, t, type):
    """
    先做备份
    文件操作
    :param host_list:后端主机列表
    :param team 项目
    :param t 时间
    :param type 1 git 0 文件
    :return:
    """
    print(host_list)
    host_data = [{"hostname": h.host.hostip, "ip": h.host.hostip, "port": h.host.ssh_port} for h in host_list]
    inventory = Inventory(host_data)  # 动态生成主机配置信息
    runner = AdHocRunner(inventory)
    tasks = [{"action": {"module": "file", "args": "path=/backup/{} state=directory".format(t)}}]
    tasks.append({"action": {"module": "shell", "args": "cp -rf {} /backup/{}/{}".format(team.path, t, team.name)}})
    if type == "1":
        tasks.append({"action": {"module": "copy", "args": "dest={} src=/update/git/{}/".format(team.path, team.name)}})
    else:
        wb = openpyxl.load_workbook("readme.xlsx")
        wb1 = wb["update"]
        for r in wb1.rows():
            tasks.append({"action": {"module": "copy",
                                     "args": "dest={}{} src=/update/file/{}/{}/{}".format(team.path, r[1].value,
                                                                                          team.name, t, r[0].value)}})
    print("server")
    print(tasks)
    ret = runner.run(tasks)
    print(ret.results_raw)
    if not ret.results_raw["ok"]:
        return False
    return True

 

posted @ 2019-06-06 10:24  海予心  阅读(534)  评论(0编辑  收藏  举报