zoukankan      html  css  js  c++  java
  • python与execl的读写

    [code=python]
    #复制execl中的部分数据到另一份execl中的相同位置
    import xlrd
    import xlwt
    import xlutils.copy
    path1="E:\测试\系统1.xlsx"
    path2="E:\测试\系统2.xlsx"
    workbook1 = xlrd.open_workbook(path1)
    workbook2 = xlrd.open_workbook(path2)
    
    print(workbook1.sheet_names())
    sheet1 = workbook1.sheet_by_name('应用层安全') # 根据sheet索引或者名称获取sheet内容
    print (sheet1.name,sheet1.nrows,sheet1.ncols) # sheet的名称,行数,列数
    cols0 = sheet1.col_values(0) # 获取第1列内容,用例编号
    cols9 = sheet1.col_values(9) # 获取第9列内容,产品状态
    cols10 = sheet1.col_values(10) # 获取第10列内容,举证说明 记得需要打开所有隐藏才能正确看到
    a=[]
    for x,y,z in zip(cols0,cols9,cols10):
    	print(x,y,z)
    	a.append([x,y,z])
    	
    workbook2 = xlrd.open_workbook(path2)
    sheet2 = workbook2.sheet_by_name('Sheet1')
    cols02 = sheet2.col_values(0) # 获取第1列内容,用例编号
    cols92 = sheet2.col_values(14) # 获取第9列内容,产品状态
    cols102 = sheet2.col_values(15) # 获取第10列内容,举证说明 记得需要打开所有隐藏才能正确看到
    b=[]
    for x,y,z in zip(cols02,cols92,cols102):
    	print(x,y,z)
    	b.append([x,y,z])
    #以上已经获取了对应的两份文件的数据信息,下面将第一列的数据相同的对应上,不同的暂时不管	
    #原始数据	
    print(b)	
    e=[]
    f=[]
    for x,y,z in a:
    	e.append(x)
    	
    for x,y,z in b:
    	f.append(x)
    #查找对应位置上的数据
    for x,y in enumerate(e):
            if e[x] in f:
                    q=f.index(e[x]) #源数据在目标数据中的索引位置
                    b[q][1]=a[x][1]	
                    b[q][2]=a[x][2]
    #修改后的数据
    print(b)
    #将修改后的数据写入到目标文件的对应位置,由于Python版本问题,写入需要把目标文件降到2003版本xls	
    path3="E:\测试\系统3.xls"	
    workbook3 = xlrd.open_workbook(path3,formatting_info=True)
    workbook4 = xlutils.copy.copy(workbook3)
    wd = workbook4.get_sheet(0)
    		
    for x in range(len(b)):
    	wd.write(x, 14, b[x][1])
    	wd.write(x, 15, b[x][2])	
    			
    workbook4.save(path3)
    
    [/code]
    

      

  • 相关阅读:
    Git常用命令
    C++ 四种强制类型转换
    Linux系统日志及日志分析
    C/C++中的getline函数总结:
    标准C++中的string类的用法总结
    C++中map的基本操作和使用;
    一个C++类的注释:
    C++ 中宏的使用 --来自:http://blog.csdn.net/hgl868/article/details/7058906
    c++ 的vector
    c++强制类型转换:dynamic_cast、const_cast 、static_cast、reinterpret_cast
  • 原文地址:https://www.cnblogs.com/lgjbky/p/5844133.html
Copyright © 2011-2022 走看看