简单试了下python下excel的操作,使用了xlrd、xlwt和xlutil3;xlrd可以实现excel的读取操作,xlwt则是写入excel操作,xlutils3主要是为了修改excel,简单理解可以拷贝已有excel进行修改,生成新的excel表格。
安装包下载地址
http://pypi.python.org/pypi/xlrd
http://pypi.python.org/pypi/xlwt
参考文档地址
简单程序实例
  1. import xlrd
  2. import xlwt
  3. import xlutils3
  4. from xlutils3 import copy
  5. #测试xlwt
  6. #创建新的excel文件
  7. newfile = xlwt.Workbook()
  8. #创建新的表单
  9. #addsheet的格式add_sheet(sheetname, cell_overwrite_ok=False)
  10. newsheet = newfile.add_sheet('test1',cell_overwrite_ok=True)
  11. #索引从0,0开始
  12. newsheet.write(0,0,'aaa')
  13. newsheet.write(0,0,10)
  14. newfile.save('firsttest.xls')
  15. #打开相应的excel文件
  16. workbook = xlrd.open_workbook(r'firsttest.xls')
  17. #找到相应的sheet
  18. #可以通过index,index从0开始计算
  19. #也可以通过sheet的名字
  20. rdsheet = workbook.sheet_by_index(0)
  21. rdsheet = workbook.sheet_by_name('test1')
  22. print(rdsheet.cell(0,0))
  23. #cell函数返回的是Cell 对象)包含ctype value xf_index
  24. #输出number:10.0
  25. print(rdsheet.cell(0,0).ctype)
  26. #输出2?使用type查询结果为:<type 'member_descriptor'>具体含义?
  27. print(rdsheet.cell(0,0).value)
  28. #输出10.0
  29. print(rdsheet.cell(0,0).xf_index)
  30. #输出None
  31. rdbook = xlrd.open_workbook(r'firsttest.xls')
  32. wtbook = copy.copy(rdbook)
  33. wtsheet = wtbook.get_sheet(0)
  34. type(wtsheet)
  35. wtsheet.write(0,0,'aaaaa')
  36. wtbook.save('bb.xls')
  37. newrdbook = xlrd.open_workbook(r'bb.xls')
  38. print(newrdbook.sheet_by_name('test1').cell(0,0))
  39. #输出text:'aaaaa'
  40. print(rdbook.sheet_by_index(0).cell(0,0))
  41. #输出number:10.0
关于cell_overwrite_ok参数使用
  1. newsheet = newfile.add_sheet('test1')
  2. #索引从0,0开始
  3. newsheet.write(0,0,'aaa')
  4. newsheet.write(0,0,10)
  5. newfile.save('firsttest.xls')
弹出错误:Exception: Attempt to overwrite cell: sheetname=u'test1' rowx=0 colx=0
修改为不覆盖已经有赋值的单元格是可以操作的:
  1. newsheet = newfile.add_sheet('test1')
  2. #索引从0,0开始
  3. newsheet.write(0,0,'aaa')
  4. newsheet.write(0,1,10)
如果需要覆盖已经操作的单元格,需要设置cell_overwrite_ok=True:
  1. newsheet = newfile.add_sheet('test1',cell_overwrite_ok=True)
  2. #索引从0,0开始
  3. newsheet.write(0,0,'aaa')
  4. newsheet.write(0,0,10)

运行成功

如何在python扩展查询需要的信息

如:当最初只知道使用newfile = xlwt.Workbook();创建一个新的文件时;

后续操作查询:

可以通过type(newfile)得到类型<class 'xlwt.Workbook.Workbook'>;

然后时候使用help(xlwt.Workbook)查询Workbook对应的接口,当然使用help(newfile)也是可以的;

如此往复找到需要的细节信息;

 
 

python中使用xlrd、xlwt和xlutils3操作Excel的更多相关文章

  1. Python中对 文件 的各种骚操作

    Python中对 文件 的各种骚操作 python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块. 得到当前工作目录,即当前Python脚本工作的目录路径: os.getc ...

  2. Python中实现对list做减法操作介绍

    Python中实现对list做减法操作介绍 这篇文章主要介绍了Python中实现对list做减法操作介绍,需要的朋友可以参考下 问题描述:假设我有这样两个list, 一个是list1,list1 = ...

  3. 【转】经典!python中使用xlrd、xlwt操作excel表格详解

    最近遇到一个情景,就是定期生成并发送服务器使用情况报表,按照不同维度统计,涉及python对excel的操作,上网搜罗了一番,大多大同小异,而且不太能满足需求,不过经过一番对源码的"研究&q ...

  4. python中使用xlrd读excel使用xlwt写excel

    原文地址 :http://www.bugingcode.com/blog/python_xlrd_read_excel_xlwt_write_excel.html 在数据分析和运营的过程中,有非常多的 ...

  5. Python -- xlrd,xlwt,xlutils 读写同一个Excel

    最近开始学习python,想做做简单的自动化测试,需要读写excel,然后就找到了xlrd来读取Excel文件,使用xlwt来生成Excel文件(可以控制Excel中单元格的格式),需要注意的是,用x ...

  6. python中的xlrd模块学习

    1.xlrd模块主要用于excel表格的读取,支持xlsx和xls:xlwt主要用于excel的写,库的读取 2.常用单元格中的数据类型 0.empty(空的):1.string(text):2.nu ...

  7. python模块之xlrd,xlwt,读写execl(xls,xlsx)

    安装xlrd,xlwt pip install xlrd xlwt xlrd读取execl [环境ipython python2.7.5] import xlrd book = xlrd.open_w ...

  8. python中的字符串(str)操作

    字符串是python中数据类型.一般就单引号(‘’)或双引号(“”)引起来的内容就是字符串. 例如:下面两个都是定义字符串 str1 = "hello world" str2 = ...

  9. python学习笔记(十):操作excel

    一.python操作excel,python操作excel使用xlrd.xlwt和xlutils模块,xlrd模块是读取excel的,xlwt模块是写excel的,xlutils是用来修改excel的 ...

随机推荐

  1. 如何选择合适的PHP版本

    PHP版本很多,包括32位64位以及线程安全与非线程安全在内的php版本多达几百个,应该如何选择PHP版本呢 PHP32和64的选择和区别 32bit的php的整型数据最大最小正负2GB左右(0x7F ...

  2. P3398 仓鼠找sugar (一道LCA的裸题)

    https://www.luogu.org/problemnew/show/P3398 题意简单概括一下就是求树上两条路径是否相交; 有这样一个性质: if相交,则必有lca(a,b) 在路径c &l ...

  3. (28)A practical way to help the homeless find work and safety

    https://www.ted.com/talks/richard_j_berry_a_practical_way_to_help_the_homeless_find_work_and_safety/ ...

  4. C#运行时通过字符串实例化类对象

    备忘,记个C#版本. using System; using System.Collections.Generic; using System.Linq; using System.Text; usi ...

  5. CentOS 7 rabbitmq 安装

    OS版本:CentOS 7.2Rrlang:19.2RabbitMQ:3.6.6 1.1 erlang安装 1. http://www.erlang.org/下载erlang,解压缩,进入目录,检查环 ...

  6. Note on Preliminary Introduction to Distributed System

    今天读了几篇分布式相关的内容,记录一下.非经典论文,非系统化阅读,非严谨思考和总结.主要的着眼点在于分布式存储:好处是,跨越单台物理机器的计算和存储能力的限制,防止单点故障(single point ...

  7. Ado.Net 注意事项

    Ado.Net同一个connection创建sqlCommand时,如果command要执行多个sql及其 params,这是如果某2个params中存在重名的话会报错, 例如sql1和params1 ...

  8. Strusts2

    Strusts2的原理很简单,首先,地址栏输入http://xxxx/xxxx/webapp/xx.action首先,请求会通过httpservlet发送给tomcat容器,tomcat发现这个请求是 ...

  9. C语言fprintf, fwrite, fscanf, fread混用问题

    int main(int argc, const char * argv[]) { // insert code here... FILE * fp = fopen("test.txt&qu ...

  10. jquery向Django后台发送数组

    在$.ajax中加入 traditional:true, //加上此项可以传数组 后端用 array = request.POST.getlist('ids') #django接收数组 来接收数组