代码参考自zhoujie。函数接口可参考该blog

基本的write函数接口很简单:

新建一个excel文件

file = xlwt.Workbook() (注意这里的Workbook首字母是大写)

新建一个sheet

table = file.add_sheet('sheet_name')

写入数据table.write(行,列,value)

table.write(0,0,'test')

如果是写入中文,则要用u'汉字'的形式。比如

table.write(0,0, u'汉字')

合并单元格:

table.write_merge(x, x + m, y, y + n, string, style)

x表示行,y表示列,m表示跨行个数,n表示跨列个数,string表示要写入的单元格内容,style表示单元格样式。

  1. #coding=utf8
  2. '''
  3. 设置单元格样式
  4. '''
  5. import xlwt, xlrd
  6.  
  7. def set_style(name,height,bold=False):
  8. style = xlwt.XFStyle() # 初始化样式
  9.  
  10. font = xlwt.Font() # 为样式创建字体
  11. font.name = name # 'Times New Roman'
  12. font.bold = bold
  13. font.color_index = 4
  14. font.height = height
  15.  
  16. # borders= xlwt.Borders()
  17. # borders.left= 6
  18. # borders.right= 6
  19. # borders.top= 6
  20. # borders.bottom= 6
  21.  
  22. style.font = font
  23. # style.borders = borders
  24.  
  25. return style
  26.  
  27. #写excel
  28. def write_excel():
  29. f = xlwt.Workbook() #创建工作簿
  30.  
  31. '''
  32. 创建第一个sheet:
  33. sheet1
  34. '''
  35. sheet1 = f.add_sheet(u'sheet1',cell_overwrite_ok=True) #创建sheet
  36. row0 = [u'业务',u'状态',u'北京',u'上海',u'广州',u'深圳',u'状态小计',u'合计']
  37. column0 = [u'机票',u'船票',u'火车票',u'汽车票',u'其它']
  38. status = [u'预订',u'出票',u'退票',u'业务小计']
  39.  
  40. #生成第一行
  41. for i in range(0,len(row0)):
  42. sheet1.write(0,i,row0[i],set_style('Times New Roman',220,True))
  43.  
  44. #生成第一列和最后一列(合并4行)
  45. i, j = 1, 0
  46. while i < 4*len(column0) and j < len(column0):
  47. sheet1.write_merge(i,i+3,0,0,column0[j],set_style('Arial',220,True)) #第一列
  48. sheet1.write_merge(i,i+3,7,7) #最后一列"合计"
  49. i += 4
  50. j += 1
  51.  
  52. sheet1.write_merge(21,21,0,1,u'合计',set_style('Times New Roman',220,True))
  53.  
  54. #生成第二列
  55. i = 0
  56. while i < 4*len(column0):
  57. for j in range(0,len(status)):
  58. sheet1.write(j+i+1,1,status[j])
  59. i += 4
  60.  
  61. f.save('demo1.xls') #保存文件.这里如果是.xlsx的话会打不开。
  62.  
  63. if __name__ == '__main__':
  64. #generate_workbook()
  65. #read_excel()
  66. write_excel()

注意:最终生成的文件如果是demo1.xlsx的话打不开,.xls就没问题。

如果对一个单元格重复操作,会引发error。所以在打开时加cell_overwrite_ok=True解决

table = file.add_sheet('sheet name',cell_overwrite_ok=True)

生成的demo1.xls效果如下。

python处理excel(二):写的更多相关文章

  1. Python导出Excel为Lua/Json/Xml实例教程(二):xlrd初体验

    Python导出Excel为Lua/Json/Xml实例教程(二):xlrd初体验 相关链接: Python导出Excel为Lua/Json/Xml实例教程(一):初识Python Python导出E ...

  2. 【Python数据分析】Python3操作Excel(二) 一些问题的解决与优化

    继上一篇[Python数据分析]Python3操作Excel-以豆瓣图书Top250为例 对豆瓣图书Top250进行爬取以后,鉴于还有一些问题没有解决,所以进行了进一步的交流讨论,这期间得到了一只尼玛 ...

  3. python操作excel(xlwt写,xlrd读)基本方法

    python操作excle在测试工作中还是很有用的,比如读取测试数据,回写测试结果到excel. 1.安装 pip install xlwt pip install xlrd 2.写excel # 导 ...

  4. Python|读、写Excel文件(三种模块三种方式)

    python读写excel的方式有很多,不同的模块在读写的讲法上稍有区别: 用xlrd和xlwt进行excel读写: 用openpyxl进行excel读写: 用pandas进行excel读写: imp ...

  5. Python导出Excel为Lua/Json/Xml实例教程(三):终极需求

    相关链接: Python导出Excel为Lua/Json/Xml实例教程(一):初识Python Python导出Excel为Lua/Json/Xml实例教程(二):xlrd初体验 Python导出E ...

  6. Python导出Excel为Lua/Json/Xml实例教程(一):初识Python

    Python导出Excel为Lua/Json/Xml实例教程(一):初识Python 相关链接: Python导出Excel为Lua/Json/Xml实例教程(一):初识Python Python导出 ...

  7. [转]用Python读写Excel文件

    [转]用Python读写Excel文件   转自:http://www.gocalf.com/blog/python-read-write-excel.html#xlrd-xlwt 虽然天天跟数据打交 ...

  8. python 处理 Excel 表格

    see: http://www.cnblogs.com/sunada2005/p/3193300.html 一.可使用的第三方库 python中处理excel表格,常用的库有xlrd(读excel)表 ...

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

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

  10. Python处理Excel(转载)

    1. Python 操作 Excel 的函数库 我主要尝试了 3 种读写 Excel 的方法: 1> xlrd, xlwt, xlutils: 这三个库的好处是不需要其它支持,在任何操作系统上都 ...

随机推荐

  1. 快速切题 hdu2416 Treasure of the Chimp Island 搜索 解题报告

    Treasure of the Chimp Island Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K ( ...

  2. iis 7 asp.net ajax post 请求字节过大报错问题解决办法

    遇到一个ajax post 提交新闻资讯类的文章,报 {"Message":"There was an error processing the request.&quo ...

  3. Oracle sqlloader

    一.SQL*LOADER简介 SQL*Loader是oracle提供的可以从多种平面文件中向数据库中加载数据的工具,使用sqlldr工具可以在很短的时间内向数据库中加载大量的数据,像把制作好的exce ...

  4. 宇宙最帅叉叉——第五周博客 for 测试与发布(Alpha版本)

    Alpha版本测试报告 1.在测试过程中总共发现了多少Bug?每个类别的Bug分别为多少个? a.修复的BUG UDP传输 recvfrom 当没有消息来的时候一直循环等待因其阻塞 ,时间戳无效了. ...

  5. 如何提升ACTION_SIM_STATE_CHANGED的接收速度?

    在Android中,BroadcastReceiver分动态注册和静态注册. 静态注册的一个优势就是:当你的BroadcastReceiver可以接受系统中 某个broadcast时,系统会自动启动你 ...

  6. Win10玩游戏时听歌音量忽大忽小

    问题原因是你的声卡被识别成了5.1声道,解决方法: 1.右键桌面右下角小喇叭选择“声音” 2.右键当前的播放设备选择“配置扬声器” 3.选择“立体声”,可以测试一下,然后点击下一步退出,可能会中断当前 ...

  7. Influxdb简单实用操作

    新的infludb版本已经取消了页面的访问方式,只能使用客户端来查看数据 一.influxdb与传统数据库的比较 库.表等比较: influxDB 传统数据库中的概念 database 数据库 mea ...

  8. kafka知识点整理总结

    kafka知识点整理总结 只不过是敷衍 2017-11-22 21:39:59 kafka知识点整理总结,以备不时之需. 为什么要使用消息系统: 解耦 并行 异步通信:想向队列中放入多少消息就放多少, ...

  9. nginx -s stop and -s quit 有什么区别?

    Quit is a graceful shutdown. Nginx finishes serving the open connections before shutdown Quit 是一个优雅的 ...

  10. 3.3 shell控制流结构

    shell中的控制流包括if then else语句,case语句,for循环,until循环,while循环,break控制,continue控制. 条件测试: 有时判断字符串是否相等或检查文件状态 ...