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就这么!些了,简单吧

  • 相关阅读:
    P1662 数7
    P3645 [APIO2015]雅加达的摩天楼
    P3396 哈希冲突
    P7479 至曾是英雄的您
    P7480 Reboot from Blue
    Apache Commons Collections
    ESP8266 WIFI杀手
    ESP8266 固件升级
    ESP8266 MicroPython安装与使用
    Window 安装子系统
  • 原文地址:https://www.cnblogs.com/yuany66/p/11781022.html
Copyright © 2011-2022 走看看