zoukankan      html  css  js  c++  java
  • Python读写Excel文件

    Python读写Excel文件

     转载:https://www.cnblogs.com/goodhacker/archive/2013/04/12/3016183.html

      最近由于经常要用到Excel,需要根据Excel表格中的内容对一些apk进行处理,手动处理很麻烦,于是决定写脚本来处理。首先贴出网上找来的读写Excel的脚本。

      1.读取Excel(需要安装xlrd):  

    复制代码
     1 #-*- coding: utf8 -*-
     2 import xlrd
     3  
     4 fname = "reflect.xls"
     5 bk = xlrd.open_workbook(fname)
     6 shxrange = range(bk.nsheets)
     7 try:
     8     sh = bk.sheet_by_name("Sheet1")
     9 except:
    10     print "no sheet in %s named Sheet1" % fname
    11 #获取行数
    12 nrows = sh.nrows
    13 #获取列数
    14 ncols = sh.ncols
    15 print "nrows %d, ncols %d" % (nrows,ncols)
    16 #获取第一行第一列数据 
    17 cell_value = sh.cell_value(1,1)
    18 #print cell_value
    19  
    20 row_list = []
    21 #获取各行数据
    22 for i in range(1,nrows):
    23     row_data = sh.row_values(i)
    24     row_list.append(row_data)
    复制代码

      2.写入Excel(需安装pyExcelerator)  

    复制代码
    1 from pyExcelerator import *
    2 
    3 w = Workbook()     #创建一个工作簿
    4 ws = w.add_sheet('Hey, Hades')     #创建一个工作表
    5 ws.write(0,0,'bit')    #在1行1列写入bit
    6 ws.write(0,1,'huang')  #在1行2列写入huang
    7 ws.write(1,0,'xuan')   #在2行1列写入xuan
    8 w.save('mini.xls')     #保存
    复制代码

      3.再举个自己写的读写Excel的例子

      读取reflect.xls中的某些信息进行处理后写入mini.xls文件中。  

    复制代码
     1 #-*- coding: utf8 -*-
     2 import xlrd
     3 from pyExcelerator import *  
     4   
     5 w = Workbook()  
     6 ws = w.add_sheet('Sheet1')  
     7 
     8 fname = "reflect.xls"
     9 bk = xlrd.open_workbook(fname)
    10 shxrange = range(bk.nsheets)
    11 try:
    12     sh = bk.sheet_by_name("Sheet1")
    13 except:
    14     print "no sheet in %s named Sheet1" % fname
    15 
    16 nrows = sh.nrows
    17 ncols = sh.ncols
    18 print "nrows %d, ncols %d" % (nrows,ncols)
    19  
    20 cell_value = sh.cell_value(1,1)
    21 #print cell_value
    22  
    23 row_list = []
    24 mydata = []
    25 for i in range(1,nrows):
    26     row_data = sh.row_values(i)
    27     pkgdatas = row_data[3].split(',')
    28     #pkgdatas.split(',')
    29     #获取每个包的前两个字段
    30     for pkgdata in pkgdatas:
    31         pkgdata = '.'.join((pkgdata.split('.'))[:2])
    32         mydata.append(pkgdata)
    33     #将列表排序
    34     mydata = list(set(mydata))
    35     print mydata
    36     #将列表转化为字符串
    37     mydata = ','.join(mydata)
    38     #写入数据到每行的第一列
    39     ws.write(i,0,mydata)
    40     mydata = []
    41     row_list.append(row_data[3])
    42 #print row_list
    43 
    44 w.save('mini.xls')
    复制代码

      4.现在我需要根据Excel文件中满足特定要求的apk的md5值来从服务器获取相应的apk样本,就需要这样做:  

    复制代码
    #-*-coding:utf8-*-
    import xlrd
    import os
    import shutil
     
    fname = "./excelname.xls"
    bk = xlrd.open_workbook(fname)
    shxrange = range(bk.nsheets)
    try:
        #打开Sheet1工作表
        sh = bk.sheet_by_name("Sheet1")
    except:
        print "no sheet in %s named Sheet1" % fname
    #获取行数
    nrows = sh.nrows
    #获取列数
    ncols = sh.ncols
    #print "nrows %d, ncols %d" % (nrows,ncols)
    #获取第一行第一列数据
    cell_value = sh.cell_value(1,1)
    #print cell_value
     
    row_list = []
    #range(起始行,结束行)
    for i in range(1,nrows):
        row_data = sh.row_values(i)
        if row_data[6] == "HXB":
            filename = row_data[3]+".apk"
            #print "%s  %s  %s" %(i,row_data[3],filename)
            filepath = r"./1/"+filename
            print "%s  %s  %s" %(i,row_data[3],filepath)
            if os.path.exists(filepath):
                shutil.copy(filepath, r"./myapk/")
    复制代码

    好了,python操作Excel就这么!些了,简单吧

  • 相关阅读:
    Atitit.Java exe bat  作为windows系统服务程序运行
    Atitit. Object-c语言 的新的特性  attilax总结
    Atitit. Object-c语言 的新的特性  attilax总结
    Atitit。Time base gc 垃圾 资源 收集的原理与设计
    Atitit。Time base gc 垃圾 资源 收集的原理与设计
    Atitit.go语言golang语言的新的特性  attilax总结
    Atitit.go语言golang语言的新的特性  attilax总结
    Atitit.pdf 预览 转换html attilax总结
    Atitit.pdf 预览 转换html attilax总结
    Atitit.office word  excel  ppt pdf 的web在线预览方案与html转换方案 attilax 总结
  • 原文地址:https://www.cnblogs.com/yuany66/p/11781022.html
Copyright © 2011-2022 走看看