python中通过xlwt、xlrd和xlutils操作xls
- xlwt模块用于在内存中生成一个xls/xlsx对象,增加表格数据,并把内存中的xls对象保存为本地磁盘xls文件;
- xlrd模块用于把本地xls文件加载到内存中,可以读取xls文件的表格数据,查询xls文件的相关信息;
- xlwt可以生成xls文件,xlrd可以读取已经存在的xls文件,但是如果要修改本地已经存在的xls文件,就需要用到xlutils模块。
- xlutils模块是xlrd和xlwt之间的桥梁,可以使用xlutils模块中的copy模块,拷贝一份通过xlrd读取到内存中的xls对象,就可以在拷贝对象上像xlwt中那样修改xls表格的内容,并保存到本地。
xlutils模块安装
xlutils安装包下载链接: https://pypi.python.org/pypi/xlutils
或 http://download.csdn.net/download/dcrmg/10040953
目前最新版本是2.0 ++ 名称是 "xlutils-2.0.0-py2.py3-none-any.whl"
安装指令: pip install
xlutils-2.0.0-py2.py3-none-any.whl
下边这个示例使用xlwt生成一个xls文件,使用xlrd读取xls文件内容,使用xlutils修改本地xls文件内容:
import xlwt
import xlrd
import xlutils.copy
if __name__ == '__main__':
workbook = xlwt.Workbook() #使用xlwt新生成一个workbook
sheet = workbook.add_sheet("sheet1") #增加一个名称为sheet1的sheet
sheet2 = workbook.add_sheet("sheet2")
row0 = ['Order', 'Name', 'Class', 'Socer', 'Num'] #第一行内容
row1 = [u'1', u'Tom', u'4', u'87', u'B']
row2 = [u'2', u'Mars', u'4', u'91', u'A']
for i in range(len(row0)):
sheet.write(0, i, row0[i]) #write(行,列,值)
sheet.write(1, i, row1[i])
sheet.write(2, i, row2[i])
workbook.save('/home/xxx/xx.xls') #保存workbook为xls格式
workbook = xlrd.open_workbook('/home/dcrmg/work/1025.xls') #使用xlrd打开本地的workbook
num_sheet = workbook.nsheets #workbook内总的sheet数量
names_sheet = workbook.sheet_names() #workbook中所有sheet名称的列表
sheet1 = workbook.sheet_by_index(0) #根据序号获取sheet
sheet2 = workbook.sheet_by_index(1)
sheet = workbook.sheet_by_name(u'sheet1') #根据sheet名称获取sheet
sheet_name = sheet1.name #sheet名称
sheet_rows = sheet1.nrows #sheet总的行数
sheet_clos = sheet1.ncols #sheet总的列数
val2 = sheet1.row_values(2) #第n+1行内容的列表
print val2
val3 = sheet1.col_values(0) #第n+1列内容的列表
value = sheet1.row(1)[0].value.encode('utf-8') #row(rows)(cols) 第rows+1行第cols+1列所在表格的内容
print value
value = sheet1.col(1)[0].value.encode('utf-8') #col(cols)(rows) 第cols+1列第rows+1行所在表格的内容
print value
workbook_xlutils = xlutils.copy.copy(workbook) #使用xlrd打开一个已存在的xls,并通过xlutils复制
sheet1_xlutils = workbook_xlutils.get_sheet(0) #通过sheet序号获取sheet
row3 = [u'3', u'Kim', u'4', u'100', u'A+']
row4 = [u'4', u'Klus', u'4', u'98', u'A+']
for i in range(len(row3)): #写入sheet_xlutils的修改值
sheet1_xlutils.write(3, i, row3[i])
sheet1_xlutils.write(4, i, row4[i])
sheet1_xlutils.write(5, 10, 99)
workbook_xlutils.save('/home/xxx/xx.xls') #保存xls
python中通过xlwt、xlrd和xlutils操作xls的更多相关文章
- Python中对 文件 的各种骚操作
Python中对 文件 的各种骚操作 python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块. 得到当前工作目录,即当前Python脚本工作的目录路径: os.getc ...
- Python中实现对list做减法操作介绍
Python中实现对list做减法操作介绍 这篇文章主要介绍了Python中实现对list做减法操作介绍,需要的朋友可以参考下 问题描述:假设我有这样两个list, 一个是list1,list1 = ...
- Python模块学习之xlrd、xlutils、openpyxl 读写/追加Excel文件
Python操作Excel的四个工具包 xlrd: 对Excel进行读相关操作,注意只能操作 .xls xlwt: 对Excel进行写相关操作,注意只能操作 .xls,且只能创建一个全新的Excel然 ...
- python中的字符串(str)操作
字符串是python中数据类型.一般就单引号(‘’)或双引号(“”)引起来的内容就是字符串. 例如:下面两个都是定义字符串 str1 = "hello world" str2 = ...
- Python中对字节流/二进制流的操作:struct
前言 前段时间使用Python解析IDX文件格式的MNIST数据集,需要对二进制文件进行读取操作,其中我使用的是struct模块.查了网上挺多教程都写的挺好的,不过对新手不是很友好,所以我重新整理了一 ...
- python 中几种基本的矩阵操作应用
在图像处理中,python 的矩阵运算经常会用到一些简单的操作,可是,由于好久没用,很多东西还是忘记了,这里做个备忘: #-*-coding:utf-8-*- import numpy as np a ...
- python中文件的读和写操作
一.打开文件 data = open("yesterday",encoding="utf-8").read() # python默认的打字符编码是unicode ...
- python中几个实用的文件操作
1. 判断指定目录是否存在: os.path.exists(input_folder) 2. 判断指定目录是不是文件夹 os.path.isdir(input_folder) 3. 判断指定目录是不是 ...
- python中scipy学习——随机稀疏矩阵及操作
1.生成随机稀疏矩阵: scipy中生成随机稀疏矩阵的函数如下: scipy.sparse.rand(m,n,density,format,dtype,random_state) 1 参数介绍: 参数 ...
随机推荐
- jquery获取<div></div>之间的内容.text() 和 .html()区别
jQuery 获取 div 之间的内容,有两种方法,$(selector).text().$(selector).html() . html: <div> <p>test< ...
- 基于cucumber接口测试框架的扩展——测试框架总结之cucumber
主要功能: 1.通过fiddler抓取请求,导出xml文件. 2.解析xml文件至excel,或者手工填写excel数据. 3.根据excel中的URL中地址生成的接口集合和feature内容模板生成 ...
- iphone越狱-------平刷回越狱前(未越狱)状态
众所周知,iPhone采用了沙盒机制,应用之间不能任意的访问,所以很多机友在拿到iPhone后,往往选择进行越狱,但是有时候,越狱的手机有的时候在安全.性能.流畅性等方面表现并不如意,所以只好寻求重新 ...
- vue2.0 + vux (五)api接口封装 及 首页 轮播图制作
1.安装 jquery 和 whatwg-fetch (优雅的异步请求API) npm install jquery --save npm install whatwg-fetch --save 2. ...
- 3D打印技术之切片引擎(4)
[此系列文章基于熔融沉积( fused depostion modeling, FDM )成形工艺] 这一篇文章我讲一下多边打印的问题,多边打印是切片引擎的一项关键的技术. 图1 双边打印 首先.它能 ...
- bash的几个特殊参数和位置参量
http://blog.csdn.net/jiankun_wang/article/details/4336285 一.$*和$@ 首先介绍两个极其相似.很难区分的特殊参数$*和$@,先看如下输出: ...
- Laravel建站02--配置Laravel
Laravel项目的根目录下有.env文件,如果没有可以把.env.example改名为.env 这个文件是配置文件,可以把app_key.数据库.redis缓存等配置信息写在这个文件里. 目前5.4 ...
- 微信小程序首页index.js获取不到app.js中动态设置的globalData的原因以及解决方法
前段时间开发了一款微信小程序,运行了也几个月了,在index.js中的onLoad生命周期里获取app.js中onLaunch生命周期中在接口里动态设置的globalData一直没有问题,结果昨天就获 ...
- JavaScript通过正则随机生成电话号码
没有接口,就只能自己模拟Json数据了 恰好需要模拟一些电话号码,我又懒得自己随便写, 不如写一个小功能就用来实现随机生成电话号码 <!DOCTYPE html> <html lan ...
- Java 多线程1(转载)
来源:http://hllvm.group.iteye.com/group/wiki/2877-synchronized-volatile 最近想将java基础的一些东西都整理整理,写下来,这是对知识 ...