Python读写Excel文件的实例
最近由于经常要用到Excel,需要根据Excel表格中的内容对一些apk进行处理,手动处理很麻烦,于是决定写脚本来处理。首先贴出网上找来的读写Excel的脚本。 1.读取Excel(需要安装xlrd):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
#-*- coding: utf8 -*- import xlrd fname = "reflect.xls" bk = xlrd.open_workbook(fname) shxrange = range (bk.nsheets) try : 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 = [] #获取各行数据 for i in range ( 1 ,nrows): row_data = sh.row_values(i) row_list.append(row_data) |
2.写入Excel(需安装pyExcelerator)
1
2
3
4
5
6
7
8
|
from pyExcelerator import * w = Workbook() #创建一个工作簿 ws = w.add_sheet( 'Hey, Hades' ) #创建一个工作表 ws.write( 0 , 0 , 'bit' ) #在1行1列写入bit ws.write( 0 , 1 , 'huang' ) #在1行2列写入huang ws.write( 1 , 0 , 'xuan' ) #在2行1列写入xuan w.save( 'mini.xls' ) #保存 |
3.再举个自己写的读写Excel的例子 读取reflect.xls中的某些信息进行处理后写入mini.xls文件中。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
#-*- coding: utf8 -*- import xlrd from pyExcelerator import * w = Workbook() ws = w.add_sheet( 'Sheet1' ) fname = "reflect.xls" bk = xlrd.open_workbook(fname) shxrange = range (bk.nsheets) try : 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 = [] mydata = [] for i in range ( 1 ,nrows): row_data = sh.row_values(i) pkgdatas = row_data[ 3 ].split( ',' ) #pkgdatas.split(',') #获取每个包的前两个字段 for pkgdata in pkgdatas: pkgdata = '.' .join((pkgdata.split( '.' ))[: 2 ]) mydata.append(pkgdata) #将列表排序 mydata = list ( set (mydata)) print mydata #将列表转化为字符串 mydata = ',' .join(mydata) #写入数据到每行的第一列 ws.write(i, 0 ,mydata) mydata = [] row_list.append(row_data[ 3 ]) #print row_list w.save( 'mini.xls' ) |
4.现在我需要根据Excel文件中满足特定要求的apk的md5值来从服务器获取相应的apk样本,就需要这样做:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
#-*-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/" ) |
补充一个使用xlwt3进行Excel文件的写操作。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
import xlwt3 if __name__ = = '__main__' : datas = [[ 'a' , 'b' , 'c' ], [ 'd' , 'e' , 'f' ], [ 'g' , 'h' ]] #二维数组 file_path = 'D:\\test.xlsx' wb = xlwt3.Workbook() sheet = wb.add_sheet( 'test' ) #sheet的名称为test #单元格的格式 style = 'pattern: pattern solid, fore_colour yellow; ' #背景颜色为黄色 style + = 'font: bold on; ' #粗体字 style + = 'align: horz centre, vert center; ' #居中 header_style = xlwt3.easyxf(style) row_count = len (datas) col_count = len (datas[ 0 ]) for row in range ( 0 , row_count): col_count = len (datas[row]) for col in range ( 0 , col_count): if row = = 0 : #设置表头单元格的格式 sheet.write(row, col, datas[row][col], header_style) else : sheet.write(row, col, datas[row][col]) wb.save(file_path) |
输出的文件内容如下图:
注:以上代码在Python 3.x版本测试通过。
好了,python操作Excel就这么!些了,简单吧
Python读写Excel文件的实例的更多相关文章
- [转]用Python读写Excel文件
[转]用Python读写Excel文件 转自:http://www.gocalf.com/blog/python-read-write-excel.html#xlrd-xlwt 虽然天天跟数据打交 ...
- python读写Excel文件的函数--使用xlrd/xlwt
python中读取Excel的模块或者说工具有很多,如以下几种: Packages 文档下载 说明 openpyxl Download | Documentation | Bitbucket The ...
- Python读写Excel文件和正则表达式
Python 读写Excel文件 这里使用的是 xlwt 和 xlrd 这两个excel读写库. #_*_ coding:utf-8 _*_ #__author__='观海云不远' #__date__ ...
- 用Python读写Excel文件(转)
原文:google.com/ncr 虽然天天跟数据打交道,也频繁地使用Excel进行一些简单的数据处理和展示,但长期以来总是小心地避免用Python直接读写Excel文件.通常我都是把数据保存为以TA ...
- 用Python读写Excel文件的方式比较
虽然天天跟数据打交道,也频繁地使用Excel进行一些简单的数据处理和展示,但长期以来总是小心地避免用Python直接读写Excel文件.通常我都是把数据保存为以TAB分割的文本文件(TSV),再在Ex ...
- Python读写EXCEL文件常用方法大全
前言 python读写excel的方式有很多,不同的模块在读写的讲法上稍有区别,这里我主要介绍几个常用的方式. 用xlrd和xlwt进行excel读写: 用openpyxl进行excel读写: 用pa ...
- python 读写 Excel文件
最近用python处理一个小项目,其中涉及到对excel的读写操作,通过查资料及实践做了一下总结,以便以后用. python读写excel文件要用到两个库:xlrd和xlwt,首先下载安装这两个库. ...
- python读写Excel文件--使用xlrd模块读取,xlwt模块写入
一.安装xlrd模块和xlwt模块 1. 下载xlrd模块和xlwt模块 到python官网http://pypi.python.org/pypi/xlrd下载模块.下载的文件例如:xlrd-0.9. ...
- python读写Excel文件_xlrd模块读取,xlwt模块写入
一.安装xlrd模块和xlwt模块(服务器) 1. 下载xlrd模块和xlwt模块 到python官网http://pypi.python.org/pypi/xlrd下载模块.下载的文件例如:xlrd ...
随机推荐
- php中文乱码原因和维修方法
一.首先是PHP网页的编码 1.如果欲使用gb2312编码,那么php要输出头:header(“Content-Type: text/html; charset=gb2312”),静态页面添加,所有文 ...
- Ubuntu设置开机时启动的系统内核版本
1.查看系统当前安装的所有内核版本 有两种方法 第一种: 可以查看/lib/modules下的文件夹,一个文件夹对应一个内核版本,如下图: 第二种:使用下面的命令查看: dpkg --get-sele ...
- PalletOne调色板跨链的BTC实现
之前已经讲到了PalletOne调色板跨链以太坊ETH和ERC20的技术原理,接下来我们来讲解PalletOne跨链比特币BTC的技术原理. 一.BTC充币 假如用户A持有一定数量的比特币BTC,他希 ...
- IdentityServer4 常见问题 - 用户拒绝授权后报错
1.问题说明 在 IdentityServer4 Web 授权中,一般会有一个显示客户端需要获取用户的那些信息的页面,询问用户是否同意: 在这个页面如果我们点击"No, Do Not All ...
- seaborn总结
Seaborn 数据可视化基础 介绍 Matplotlib 是支持 Python 语言的开源绘图库,因为其支持丰富的绘图类型.简单的绘图方式以及完善的接口文档,深受 Python 工程师.科研学者.数 ...
- 松软科技web课堂:SQLServer之SUM() 函数
SUM() 函数 SUM 函数返回数值列的总数(总额). SQL SUM() 语法 SELECT SUM(column_name) FROM table_name SQL SUM() 实例 我们拥有下 ...
- flex常见布局
一,常见圣杯布局 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> < ...
- ES6-Set的增加、查找、删除、遍历、查看长度、数组去重
set 是es6新出的一种数据结构,里边放的是数组. 作用:去重(set里边的数组不能重复) MDN:Set 对象允许你存储任何类型的唯一值,无论是原始值或者是对象引用. 总结: 1.成员唯一.无序且 ...
- 使用NDK(r20)编译FFmpeg
前两天在论坛上看到一个问题,大意是怎么在UBUNTU下使用NDK-r20编译FFmpeg.我第一反应是不该用r20,因为我在很早前用过没有gcc版本的NDK,发现有很多问题不能编译,就立马回复了个使用 ...
- 033.[转] Java 工程师成神之路 | 2019正式版
Java 工程师成神之路 | 2019正式版 原创: Hollis Hollis 2月18日 https://mp.weixin.qq.com/s/hlAn6NPR1w-MAwqghX1FPg htt ...