openpyxl
示例代码
创建项目,安装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