python处理excel(二):写
2016-05-14 16:29
471 查看
代码参考自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表示单元格样式。
注意:最终生成的文件如果是demo1.xlsx的话打不开,.xls就没问题。
如果对一个单元格重复操作,会引发error。所以在打开时加cell_overwrite_ok=True解决
table = file.add_sheet('sheet name',cell_overwrite_ok=True)
生成的demo1.xls效果如下。
基本的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表示单元格样式。
#coding=utf8 ''' 设置单元格样式 ''' import xlwt, xlrd def set_style(name,height,bold=False): style = xlwt.XFStyle() # 初始化样式 font = xlwt.Font() # 为样式创建字体 font.name = name # 'Times New Roman' font.bold = bold font.color_index = 4 font.height = height # borders= xlwt.Borders() # borders.left= 6 # borders.right= 6 # borders.top= 6 # borders.bottom= 6 style.font = font # style.borders = borders return style #写excel def write_excel(): f = xlwt.Workbook() #创建工作簿 ''' 创建第一个sheet: sheet1 ''' sheet1 = f.add_sheet(u'sheet1',cell_overwrite_ok=True) #创建sheet row0 = [u'业务',u'状态',u'北京',u'上海',u'广州',u'深圳',u'状态小计',u'合计'] column0 = [u'机票',u'船票',u'火车票',u'汽车票',u'其它'] status = [u'预订',u'出票',u'退票',u'业务小计'] #生成第一行 for i in range(0,len(row0)): sheet1.write(0,i,row0[i],set_style('Times New Roman',220,True)) #生成第一列和最后一列(合并4行) i, j = 1, 0 while i < 4*len(column0) and j < len(column0): sheet1.write_merge(i,i+3,0,0,column0[j],set_style('Arial',220,True)) #第一列 sheet1.write_merge(i,i+3,7,7) #最后一列"合计" i += 4 j += 1 sheet1.write_merge(21,21,0,1,u'合计',set_style('Times New Roman',220,True)) #生成第二列 i = 0 while i < 4*len(column0): for j in range(0,len(status)): sheet1.write(j+i+1,1,status[j]) i += 4 f.save('demo1.xls') #保存文件.这里如果是.xlsx的话会打不开。 if __name__ == '__main__': #generate_workbook() #read_excel() write_excel()
注意:最终生成的文件如果是demo1.xlsx的话打不开,.xls就没问题。
如果对一个单元格重复操作,会引发error。所以在打开时加cell_overwrite_ok=True解决
table = file.add_sheet('sheet name',cell_overwrite_ok=True)
生成的demo1.xls效果如下。
相关文章推荐
- python基础之模块之sys模块
- 168. Excel Sheet Column Title [easy] (Python)
- python爬取51job中hr的邮箱
- 171. Excel Sheet Column Number [easy] (Python)
- Python函数作用域的查找顺序
- 242. Valid Anagram [easy] (Python)
- python02-数据类型与字符串编码
- python程序生成平均脸
- 第二章 Python简介
- Python基础——准备工作
- 判断一个数是不是3的幂——Power of three?
- python学习笔记(arange函数与linspace函数)
- python eval()
- python中如果函数后面有多于一个括号是怎么回事?
- 第三节,入门知识和windows系统安装python环境
- Python实战_0_第一周_第一节练习项目:动手做自己的网页
- python添加django插件
- Python:递归和装饰器
- Guido von Rossum - i wrote python
- Python六大开源框架对比:Web2py略胜一筹