python 的两个模块xlwt,xlrd,写入和读取Excel数据
http://www.cnblogs.com/fireme/p/3887284.html
这上面写的很全,不过我只需要简单的读和写的操作就ok了,下面是我写的读和写入Excel操作
读取Excel数据
#coding:utf-8
import xlrd
goods = xlrd.open_workbook('goods_test.xlsx')#打开文件
sh = goods.sheet_by_index(3)#返回第几页的对象
#这个对象包含有我们需要的Excel信息
for rx in range(sh.nrows):
print sh.row(rx) #返回每一行的数据
for cl in range(sh.ncols):
print sh.col(cl) #返回每一列的数据
print sh.col(2)
print sh.col_values(2)
print 'Goods name:',goods.sheet_names()
print sh.cell(2.2).ctypeprint sh.name,sh.nrows,sh.ncols#返回对象页的名称,行数和列数
print "Cell D30 is",sh.cell_value(rowx=20,colx=3)#返回特定数值
print 'The number of goodssheets is:', goods.nsheets#返回有几页
写几次就清楚了,sh.col()和sh.col_values()等等不同
向Excel写入数据
定义字体的样式还真是麻烦,所以我就只进行简单的写入操作,有兴趣的自己研究吧
#coding:utf-8
import xlwt
wb = xlwt.Workbook(encoding='utf-8')#创建工作簿,设置字符编码
ws = wb.add_sheet('A TEST Sheet')#创建sheet
ws.write(2, 1, 1)#写入数据,2,1,1分别为,行row,列col,数据
wb.save('example3.xls')#保存数据,创建example3.xls
#from datetime import datetime
#style0 = xlwt.easyxf('font: name Times New Roman,color-index red, bold on',num_format_str='#,##0.00')
#style1 = xlwt.easyxf(num_format_str='D-MMM-YY')
# style = xlwt.XFStyle() #初始化样式
# font = xlwt.Font() #为样式创建字体
实例
#coding:utf-8
import xlrd
import xlwt
import os
path_list = []
goods_list = []
#picture1-picture7里面含有大量的excel文件,但是还含有其它文件,我需要把这些excel文件里面的
#内容整合到一个excel文件里面并把这些处理过的excel文件都删除
#先打开picture1-picture7文件夹,循环遍历每个文件,将后缀名为.xlsx文件路径添加到path_list里面
for i in range(1,8):
startdir = 'picture'+str(i)#这里路径不完整,不过我是将程序写在操作目录下所以没关系
for dirpath,dirnames,filenames in os.walk(startdir):#dirpath为父目录,dirnames为所有文件夹的名字,filenames为所有文件的名字
for file in filenames:
if os.path.splitext(file)[1] == '.xlsx':#还有菏泽杨file.split(".")[1]=='.xlsx'也可以
filepath = os.path.join(dirpath,file)#将文件名与父目录连接起来,形成一个路径,就可以访问了
path_list.append(filepath)
#打开文件,
for path in path_list:
goods = xlrd.open_workbook(path)#打开文件
sh = goods.sheet_by_index(3)#返回第几页的对象
for rx in range(sh.nrows):
if rx:
goods_list.append(sh.row_values(rx))#将打开的excel文件的第三页对象的每一行的数据添加到goods_list当中保存
wb = xlwt.Workbook()#创建工作簿,设置字符编码
ws = wb.add_sheet('Sheet1')#创建sheet
r = 0
for goods in goods_list:
for i in range(len(goods)):
#我的2,3,4列的数字是厘米需要改成毫米
if i in (1,2,3):
ws.write(r,i,goods[i]*10) #可以直接写入行信息
else:
ws.write(r,i,goods[i])
r += 1
wb.save('finish.xls')#保存文件,这个是在这个程序所在所在目录,也可以写详细路径
#删除操作过的文件
for path in path_list:
os.remove(path)
python对中文支持不好,所以经常出现一些错误,注意编码的问题
#goods = xlrd.open_workbook('picture2/picture2/HG商品-051.xlsx'),直接这么写会出错
# inpath = 'picture2/HG商品-051.xlsx'
# uipath = unicode(inpath , "utf8")
# goods = xlrd.open_workbook(uipath)
python 的两个模块xlwt,xlrd,写入和读取Excel数据的更多相关文章
- Python 写入和读取Excel数据
写数据到csv文件里 一. 在本地盘符里新建一个Excel文档,然后另存为csv文件 二.打开PyCharm,新建一个Python File ,写入以下代码 import randomimport ...
- Python用xlrd读取Excel数据到list中再用xlwt把数据写入到新的Excel中
一.先用xlrd读取Excel数据到list列表中(存入列表中的数据如下图所示) import xlrd as xd #导入需要的包 import xlwt data =xd.open_workboo ...
- python使用xlrd读取excel数据时,整数变小数的解决办法
python使用xlrd读取excel数据时,整数变小数: 解决方法: 1.有个比较简单的就是在数字和日期的单元格内容前加上一个英文的逗号即可.如果数据比较多,也可以批量加英文逗号的前缀(网上都有方法 ...
- 【python-excel】Selenium+python自动化之读取Excel数据(xlrd)
Selenium2+python自动化之读取Excel数据(xlrd) 转载地址:http://www.cnblogs.com/lingzeng86/p/6793398.html ·········· ...
- Python 读取Excel数据 xlrd
#导入相关模块 from xlrd import open_workbook #打开excel file = open_workbook("test.xlsx") #获取sheet ...
- python接口自动化(三十七)-封装与调用--读取excel 数据(详解)
简介 在进行软件接口测试或设计自动化测试框架时,一个不比可避免的过程就是: 参数化,在利用python进行自动化测试开发时,通常会使用excel来做数据管理,利用xlrd.xlwt开源包来读写exce ...
- Python读取Excel数据并根据列名取值
一直想将自己接触到的东西梳理一遍,可就是迈不出第一步,希望从这篇总结开始不要再做行动的矮人了. 最近测试过程中需要用到python读取excel用例数据,于是去了解和学习了下xlrd库,这里只记录使用 ...
- Delphi中使用python脚本读取Excel数据
Delphi中使用python脚本读取Excel数据2007-10-18 17:28:22标签:Delphi Excel python原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 . ...
- python 读取excel数据并将测试结果填入Excel
python 读取excel数据并将测试结果填入Excel 读取一个Excel中的一条数据用例,请求接口,然后返回结果并反填到excel中.过程中会生成请求回来的文本,当然还会生成一个xml文件.具体 ...
随机推荐
- flutter datatable
最后,还是用到了 PaginatedDataTable 我把header改成了最终条件显示. 主要是要有listview之类的scrollview容器,否则会报错. 切换页的时候,记得加入空行,否则会 ...
- Servlet Servlet是Java平台上的CGI技术
Servlet Servlet是Java平台上的CGI技术.Servlet在服务器端运行,动态地生成Web页面.与传统的CGI和许多其它类似CGI的技术相比,Java Servlet具有更高的效率并更 ...
- Mysql8.0.16 only_full_group_by
[1]Mysql8.0.16 关于only_full_group_by问题 应公司业务的需求,安装了Mysql8.0.16版本,原来在Mysql5.6版本执行无恙的SQL语句: SELECT prod ...
- 路由器port触发与转发---Port Forwarding & Port Triggering
What is Port Triggering? If you have not read my explanation of port forwarding do so now. You can f ...
- hadoop入门学习整理
技术性网站 1.http://dongxicheng.org/ 2.http://www.iteblog.com/ 3.http://www.cnblogs.com/shishanyuan/p/414 ...
- Amazon Virtual Private Cloud(虚拟专有网络)官方文档通读
一.什么是Amazon VPC? 参考资料: 官网文档 https://docs.aws.amazon.com/zh_cn/AmazonVPC/latest/UserGuide/VPC_Introdu ...
- vue-infinite-scroll 自动加载
初次上手vue开发 笑话百出,各种麻爪 在实现上拉加载的时候用的是mint-ui里面的 infinite-scroll 结果在使用的时候不停的自动加载,后来查询了相关资料 原来是控件识别只要没有铺满全 ...
- Http服务器实现文件上传与下载(四)
一.引言 欢迎大家来到和我一起编写Http服务器实现文件的上传和下载,现在我稍微回顾一下之前我说的,第一.二章说明说明了整体的HTTP走向,第三章实现底层的网络编程.接着这一章我想给大家讲的是请求获取 ...
- css3动画效果:3 3D动画
立方体旋转动画效果 css #container{ width: 400px; height: 400px; ; ; -webkit-perspective-origin:50% 225px; per ...
- CodeFores 665D Simple Subset(贪心)
D. Simple Subset time limit per test 1 second memory limit per test 256 megabytes input standard inp ...