学习用Python处理Excel文件,这里主要用xlrd和xlwt模块,用前需要安装!本文是来自几篇博客和官网tutorial的整理,主要是一个入门。更多的处理Excel的方法请到官网学习,链接为:http://www.simplistix.co.uk/presentations/python-excel.pdf

另外,几篇博客的参考资料:

http://syue.com/Software/Language/Python/21655.html

http://blog.csdn.net/wangxiaoyan1988/article/details/6562374

http://www.2cto.com/kf/201207/140006.html

安装xlrd模块:到python官网下载http://pypi.python.org/pypi/xlrd模块安装,前提是已经安装了python 环境。

解压后,打开cmd切换到对应目录,去执行:D:\dev_tools\python\excel\xlrd-1.0.0>setup.py install

安装成功!

安装xlutils模块: http://pypi.python.org/pypi/xlutils 去下载最新版本的,解压后,打开cmd切换到对应目录,去执行:D:\dev_tools\python\excel\xlutils-2.0.0>setup.py install,安装完成。

A:Excel数据的类型及组织方式

每一个Excel数据文件从上至下分为三个层级的对象:

workbook: 每一个Excel文件就是一个workbook。

sheet: 每一个workbook中可以包含多个sheet,具体就对应Excel中我们在左下脚所看到的“sheet1”,“sheet2”等。

cell: 每一个sheet就是我们通常所看到的一个表格,可以含有m行,n列,每个确定的行号,列号所对应的一个格子就是一个cell。

B: 从Excel中读取数据

从一个既有的xlsx文件中读取数据,按照Excel文件的三个层级,分别做以下三个步骤

1. 打开workbook:

import xlrd

book = xlrd.open_workbook("myfile.xls") #book就赋值为一个Excel文件了

注:

Book 类的方法、属性等:即就可以对上面的book进行操作了

book.nsheets: 在Book对象中的文件有多少个worksheet

book.sheet_by_index(sheetx): 根据提供的sheetx索引来获取我们需要的sheet表,返回的是一个Sheet类的实例。

book.sheet_by_name(sheet_name): 根据提供的sheet_name来获取对应名称的sheet类对象,返回的也是一个Sheet类的对象

book.sheet_names(): 在Book对象中的所有sheet表的名称列表

book.sheets(): 返回在Book对象中所有的Sheet对象实例列表

2. 打开所需的sheet:

sh = book.sheet_by_index(0) #获得一个sheet,也可以使名字获得

print sh.name, sh.nrows, sh.ncols

注:

Sheet类方法、属性等:

sh.cell(rowx, colx): 根据给出的行和列的参数获取得到cell类,返回一个Cell类实例对象

sh.cell_type(rowx, colx): 返回对应的cell对象的Type类型

sh.cell_value(rowx, colx): 返回对应的cell对象的value值

sh.col(colx): 返回指定列的所有cell类对象序列

sh.name: 返回sheet对象的名称

sh.ncols: 返回在sheet对象中的列的数目

sh.nrows: 返回在sheet对象中的行的数目

sh.row(rowx): 返回指定的行的所有cell对象的序列

3. 获取对应cell的值:

cell=sh.cell(rowx=29, colx=3) #根据给出的行和列的参数获取得到cell类,返回一个Cell类实例对象

sh.cell_value(rowx=29, colx=3)

Cell类的属性、方法如下:

Cell类对象有3种属性:ctype, value, xf_index

如果在excel文件打开的时候,formatting_info未启用的时候,xf_index是为None

下面列出了cell的类型,以及他们在python中所代表的值

type symbol type number python value

XL_CELL_EMPTY 0 空的字符串''

XL_CELL_TEXT 1 unicode字符串

XL_CELL_NUMBER 2 float

XL_CELL_DATE 3 float

XL_CELL_BOOLEAN 4 int;1 --- True,0 --- False

XL_CELL_ERROR 5 int代表是一个excel内部错误码;

XL_CELL_BLANK 6 空的字符串'', 注意:这个类型仅仅会出现,当函数open_workbook(..,formatting_info=True)这样设置的时候

4.一个读取Excel的例子

import xlrd

book = xlrd.open_workbook("myfile.xls")

print "The number of worksheets is", book.nsheets

print "Worksheet name(s):", book.sheet_names()

sh = book.sheet_by_index(0)

print sh.name, sh.nrows, sh.ncols

print "Cell D30 is", sh.cell_value(rowx=29, colx=3)

for rx in range(sh.nrows):

print sh.row(rx)

C: Writing Excel Files

All the examples shown below can be found in the xlwt directory of the course material.读Excel xlrd模块,写用xlwt模块

1. Creating elements within a Workbook创建一个Excel文件

Import xlwt

wb=xlwt.Workbook(“zc.xls”) #Workbook 首字母大写

2. Worksheets 添加Sheet

Worksheets are created with the add_sheet method of the Workbook class.

To retrieve an existing sheet from a Workbook, use its get_sheet method. This method is particularly useful when the Workbook has been instantiated by xlutils.copy.

Sheet1=wb.add_sheet(“sheetname”)

3. Rows and Columns 行与列的表示:

row1 = sheet1.row(1)

col0=sheet2.col(0)

4. Cells

Cells can be written using either the write method of either the Worksheet or Row class.

sheet1.write(0,1,'B1')

row1.write(0,'A2')

5. svave 保存文件:

wb.save(“zc.xls”)

6. Excel写入的一个简单的例子

from xlwt import Workbook

book = Workbook()

sheet1 = book.add_sheet('Sheet 1') #添加一个sheet

book.add_sheet('Sheet 2')

sheet1.write(0,0,'A1') #通过sheet添加cell值

sheet1.write(0,1,'B1')

row1 = sheet1.row(1)

row1.write(0,'A2') #还可以通过row属性添加cell值

row1.write(1,'B2')

sheet1.col(0).width = 10000

sheet2 = book.get_sheet(1)

sheet2.row(0).write(0,'Sheet 2 A1') #又一种添加

sheet2.row(0).write(1,'Sheet 2 B1')

sheet2.flush_row_data()

sheet2.write(1,0,'Sheet 2 A3')

sheet2.col(0).width = 5000

sheet2.col(0).hidden = True

book.save('simple.xls')

D: 稍微复杂的例子和巩固

Ex1:

import xlrd

fname = "sample.xls" #一个文件路径和文件名

bk = xlrd.open_workbook(fname) #打开一个workbook

shxrange = range(bk.nsheets) #各个sheet之间的转换?

try: #提取sheet1?

sh = bk.sheet_by_name("Sheet1")

except:

print "no sheet in %s named Sheet1" % fname

return None

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)

ex2:

1

2 import xlrd

3 import xlwt

4

5 class OperExcel():

6 #读取Excel表

7 def rExcel(self,inEfile,outfile):

8 rfile = xlrd.open_workbook(inEfile)

9 #创建索引顺序获取一个工作表

10 table = rfile.sheet_by_index(0)

11 #其他方式

12 #table = rfile.sheets()[0]

13 #table = rfile.sheet_by_name(u'Sheet1')

14

15 #获取整行,整列的值

16 table.row_values(0)

17 table.col_values(0)

18

19 #获取行数和列数

20 nrows = table.nrows - 1

21 ncols = table.ncols

22

23 #循环获取列表的数据

24 #for i in range(nrows):

25 # print table.row_values(i)

26 wfile = open(outfile,'w')

27 #获取第一列中的所有值

28 for i in range(nrows):

29 #table.cell(i,0).value获取某一单元格的值

30 wfile.write(table.cell(i,0).value.encode('utf8') + '\n')

31 wfile.close()

32

33 #将数据写入Excel表

34 def wExcel(self,infile,outEfile):

35 rfile = open(infile,'r')

36 buf = rfile.read().split('\n')

37 rfile.close()

38

39 w = xlwt.Workbook()

40 sheet = w.add_sheet('sheet1')

41 for i in range(len(buf)):

42 print buf[i]

43 sheet.write(i,0,buf[i].decode('utf8'))

44 w.save(outEfile)

45

46 if __name__ == '__main__':

47 t = OperExcel()

48 t.rExcel('test.xls','test')

49 t.wExcel('test','1.xls')

50 # 作者:sunrise

python把数据写入excel_Python读取和写入Excel文件(转)相关推荐

  1. python xlwt写入excel_python xlwt模块生成excel文件并写入数据 xlrd读取数据

    python中一般使用 xlwt (excel write)来生成Excel文件(可以控制单元格格式),用 xlrd 来读取Excel文件,用xlrd读取excel是不能对其进行操作的. 1.xlrd ...

  2. PYTHON循环读取多个excel文件并处理的代码

    这里有一段简单的Python代码,可以用来循环读取多个Excel文件,并处理它们: import pandas as pd 列出文件夹中所有Excel文件 excel_files = [f for f ...

  3. python读取excel内容和写入_Python读取和写入Excel文件

    制作Excel表 常用方法说明 Workbook类 Workbook类创建一个XlswWrite的Workbook对象,相当于创建一个excel表 And_worksheet()用来创建工作表,默认为 ...

  4. Python读取多个excel文件(删除字段、数据格式转换、dataframe多表合并)并写入ElasticSearch实战(自动创建索引、写入ElasticSearch、探索性数据分析)

    Python读取多个excel文件(删除字段.数据格式转换.dataframe多表合并)并写入ElasticSearch实战(自动创建索引.写入ElasticSearch.探索性数据分析) 目录

  5. Excel表格数据该怎么读取和写入之——xlsread函数和xlswrite函数

    Excel表格数据该怎么读取和写入之--xlsread函数和xlswrite函数 excel作为一种数据处理和管理软件,在使用MATLAB时,经常需要对Excel进行读取和写入数据操作. 新人小白,欢 ...

  6. 如何利用python整合excel_Python将多个excel文件合并为一个文件

    Python将多个excel文件合并为一个文件 这篇文章主要为大家详细介绍了Python将多个excel文件合并为一个文件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 思路 利用python x ...

  7. Python使用openpyxl和pandas处理学生成绩Excel文件实用案例

    推荐图书: <Python程序设计(第3版)>,(ISBN:978-7-302-55083-9),清华大学出版社,2020年6月第1次印刷 京东.天猫.当当均已上架,可以选择自己常用平台搜 ...

  8. java中mypoiexception_Java中使用POI读取大的Excel文件或者输入流时发生out of memory异常参考解决方案...

    注意:此参考解决方案只是针对xlsx格式的excel文件! 背景 前一段时间遇到一种情况,服务器经常宕机,而且没有规律性,查看GC日志发生了out of memory,是堆溢出导致的,分析了一下堆的d ...

  9. java 读excel 流_Java中使用POI读取大的Excel文件或者输入流时发生out of memory异常参考解决方案...

    原文:https://www.cnblogs.com/cksvsaaa/p/7280261.html 注意:此参考解决方案只是针对xlsx格式的excel文件! 背景 前一段时间遇到一种情况,服务器经 ...

最新文章

  1. java中图片和字节数组相互转化
  2. mysql 替换某个字段中的某个字符
  3. Java Socket 编程
  4. flink on yarn部分源码解析 (FLIP-6 new mode)
  5. mysql5.5.20安装图解_mysql5.5.20的安装步骤
  6. Java开发中文件读取方式总结
  7. c程序语言设计练习题,C语言程序设计练习题(含程序及参考答案)
  8. Live Maps中国更新-为北京增加实时交通信息
  9. linux-选择输入法
  10. mysql注入 xfkxfk_WSS最新版多处SQL注入直接获取数据三(官方demo演示及快速定位漏洞技巧)...
  11. [汇编学习笔记][第十六章直接定址表]
  12. pandas 作图 统计_pandas数据作图方法
  13. ueditor 编辑器增加css样式_Web入侵之利用编辑器漏洞入侵
  14. mysql表情存储报错问题
  15. SpringCloud-网关gateway-zuul
  16. poi 垂直、水平居中
  17. java寻秦 皇陵的诅咒_掌盟网游有一款游戏叫古墓寻秦,主角是个女的,她父亲是个教授...
  18. 命令提示符怎么以管理员方式打开
  19. 使用网站域名封装Web2App
  20. 为Exynos4412移植U-Boot-2017.11的步骤(一)——让U-Boot跑起来

热门文章

  1. boost::process::spawn相关的测试程序
  2. boost::hana::min用法的测试程序
  3. Boost::Exception提供的各种常用 error_info typedef的预期用途的测试
  4. boost::posix_time模块用时间构造和计算的一些简单例子
  5. Boost::context模块fiber的circle测试程序
  6. Boost:字符串替换的测试程序
  7. ITK:创建样本测量列表
  8. ITK:删除一个未连接到其边界的二进制图像中的孔
  9. OpenCV applyColorMap函数实现False color伪色彩的实例(附完整代码)
  10. OpenGL Gamma Correction伽马校正的实例