Python 写Excel文件

1.Python 读Excel文件
2.Python 写Excel文件

1.环境

  • Mac
  • Python 2.7

第三方模块

  • xlwt (写excel模块)

2.脚本

脚本说明:尽在注释中

# -*- coding: utf-8 -*-

#导入xlwt (excel write) 模块
import xlwt

"""
多行注释,可以是三对单引号,也可以是三对双引号
"""
'''
设置单元格样式
'''
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
    '''
    #创建sheet
    sheet1 = f.add_sheet(u'sheet1',cell_overwrite_ok=True)
    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
    #保存文件,注意经测试只能支持生成xls文件,不支持xlsx文件
    f.save('test2.xls')

#main程序入口
if __name__ == '__main__':
    #执行写excel方法
    write_excel()

write_merge方法:

write_merge(x, x + m, y, w + n, string, sytle)

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

其中,x,y,w,h,都是以0开始计算的。

3.测试结果

3.1执行脚本:

➜ python ./writeExcel.py

3.2生成结果:

这里写图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值