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数据的更多相关文章

  1. Python 写入和读取Excel数据

    写数据到csv文件里 一. 在本地盘符里新建一个Excel文档,然后另存为csv文件 二.打开PyCharm,新建一个Python File  ,写入以下代码 import randomimport ...

  2. Python用xlrd读取Excel数据到list中再用xlwt把数据写入到新的Excel中

    一.先用xlrd读取Excel数据到list列表中(存入列表中的数据如下图所示) import xlrd as xd #导入需要的包 import xlwt data =xd.open_workboo ...

  3. python使用xlrd读取excel数据时,整数变小数的解决办法

    python使用xlrd读取excel数据时,整数变小数: 解决方法: 1.有个比较简单的就是在数字和日期的单元格内容前加上一个英文的逗号即可.如果数据比较多,也可以批量加英文逗号的前缀(网上都有方法 ...

  4. 【python-excel】Selenium+python自动化之读取Excel数据(xlrd)

    Selenium2+python自动化之读取Excel数据(xlrd) 转载地址:http://www.cnblogs.com/lingzeng86/p/6793398.html ·········· ...

  5. Python 读取Excel数据 xlrd

    #导入相关模块 from xlrd import open_workbook #打开excel file = open_workbook("test.xlsx") #获取sheet ...

  6. python接口自动化(三十七)-封装与调用--读取excel 数据(详解)

    简介 在进行软件接口测试或设计自动化测试框架时,一个不比可避免的过程就是: 参数化,在利用python进行自动化测试开发时,通常会使用excel来做数据管理,利用xlrd.xlwt开源包来读写exce ...

  7. Python读取Excel数据并根据列名取值

    一直想将自己接触到的东西梳理一遍,可就是迈不出第一步,希望从这篇总结开始不要再做行动的矮人了. 最近测试过程中需要用到python读取excel用例数据,于是去了解和学习了下xlrd库,这里只记录使用 ...

  8. Delphi中使用python脚本读取Excel数据

    Delphi中使用python脚本读取Excel数据2007-10-18 17:28:22标签:Delphi Excel python原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 . ...

  9. python 读取excel数据并将测试结果填入Excel

    python 读取excel数据并将测试结果填入Excel 读取一个Excel中的一条数据用例,请求接口,然后返回结果并反填到excel中.过程中会生成请求回来的文本,当然还会生成一个xml文件.具体 ...

随机推荐

  1. iOS学习笔记9 - 组件库介绍1

    总算成功开发完了第一个较大的功能(即时通信).毕竟不可能什么东西都从轮子开始造,于是用到了一些组件,这里简单列举一下吧. 1. FMDB 作为一种文件型的数据存储方式,SQLite在iOS开发中自然也 ...

  2. Azkaban安装配置

    描述: azkaban主要用于离线计算任务的调度 说明: 此处Azkaban选择版本为:3.52.0,部署方式为Cluster模式,即支持多Executor计算节点,目前默认安装方式选择在同一台机器上 ...

  3. improve deep learning network 课程笔记

    公开课笔记 Bias & variance bias: 1. more epoch 2. deeper network 3.hyperparameters variance : larger ...

  4. Java反射基础(二)

    获取域   1. 通过反射API可以获取到类中公开的静态域和对象中的实例域.得到表示域的java.lang.reflect.Field类的对象之后,就可以获取和设置域的值. 与获取构造方法类似,Cla ...

  5. http协议详解(2)

    HTTP报文是面向文本的,报文中的每一个字段都是一些ASCII码串,各个字段的长度是不确定的.HTTP有两类报文:请求报文和响应报文. HTTP请求报文 一个HTTP请求报文由请求行(request ...

  6. java was started but returned exit code=1

    将eclipse.ini文件删掉, 重启eclipse 会自动生成一个eclipse.ini就可以了~

  7. nginx默认访问目录时显示403错误

    author :headsen chen date: 2018-04-25  17:17:25 nginx安装完成后默认的http页面里访问目录的话会报403的错误: 和Apache进行比较,Apac ...

  8. resin配置

    第一种方式:      在本机调试Resin服务,一般是在Eclipse IDE中进行,这样即可以快速的在开发环境中启动/终止Resin,又可以很方便的Debug程序.跟踪异常栈.    在任何版本的 ...

  9. activeMQ "HelloWorld"实现

    本文主要介绍activeMQ在应用程序中是如何使用的,同个两个实例进行说明,这两个实例分别针对P2P模式和Pub/Sub模式. 开发环境 操作系统:Ubuntu 16.10 开发平台:Eclipse  ...

  10. coreldraw X6 cdrX6下载激活工具

    coreldraw X6 cdrX6下载激活工具 百度网盘 CDRX6下载 激活教程什么的请参考 低吟浅唱 博客