操作 excel 写 xlwt

安装相关模块 pip install xlwt

import xlwt

# 简单的写入

# write_merge(x, x + m, y, w + n, string, sytle)
# x表示行,y表示列,m表示跨行个数,n表示跨列个数,string表示要写入的单元格内容,style表示单元格样式。其中,x,y,w,h,都是以0开始计算的。
# 这个和xlrd中的读合并单元格的不太一样。
# 如上述:sheet1.write_merge(21,21,0,1,u'合计',set_style('Times New Roman',220,True))
# 即在22行合并第1,2列,合并后的单元格内容为"合计",并设置了style。
# 如果需要创建多个sheet,则只要f.add_sheet即可。

'''
设置单元格样式
'''
def set_style(name, height, bold=False):
    # 初始化样式
    style = xlwt.XFStyle()
    # 为样式创建字体
    font = xlwt.Font()
    font.name = name
    font.bold = bold
    font.color_index = 4
    font.height = height

    style.font = font

    return style

def write_excel():
    f = xlwt.Workbook()

    '''
    创建第一个 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

    '''
        创建第二个 sheet:
            sheet2
    '''
    sheet2 = f.add_sheet(u'sheet2', cell_overwrite_ok=True)
    row0 = [u'姓名', u'年龄', u'出生日期', u'爱好', u'关系']
    column0 = [u'小杰', u'小胖', u'小明', u'大神', u'大仙', u'小敏', u'无名']

    #生成第一行
    for i in range(0, len(row0)):
        sheet2.write(0, i, row0[i], set_style('Times New Roman',220,True))
    #生成第一列
    for i in range(0, len(column0)):
        sheet2.write(i+1, 0, column0[i], set_style('Times New Roman',220))

    sheet2.write(1, 2, '1991/11/11')
    sheet2.write_merge(7, 7, 2, 4, u'暂无')
    sheet2.write_merge(1, 2, 4, 4, u'好朋友')

    f.save('demo1.xlsx')

if __name__ == '__main__':
    write_excel()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值