zoukankan      html  css  js  c++  java
  • python 之 处理excel表的xlwt模块学习记录

    python 操作excel表的常用模块主要有2个:

    1:xlrd:读取excel表

    2:xlwt:创建并写入excel表

    安装方法:

    可以直接下载安装:https://pypi.python.org/pypi    也可以使用pip3安装

    以下以实例记录xlwt模块的使用方法

    # 创建一个基本的excel表格
    book = xlwt.Workbook(encoding='utf-8'# 生成excel文件并设置编码为utf8
    sheet = book.add_sheet('sheet_name'# 创建第一个sheet 表单
    sheet.write(2, 3, label='test data'# 一个表单里起始行和列都是从0开始计算,2表示:表单第二行, 3表示:第二行第三列,label表示这个表格的值
    book.save('boot.xls'# 保持名为 boot.xls的表

    # 进行自定义字体样式的excel表
    book = xlwt.Workbook(encoding='utf-8')
    sheet = book.add_sheet('sheet1')
    style = xlwt.XFStyle()  # 初始化样式
    font = xlwt.Font()  # 初始化字体
    font.name = 'Times New Roman'  # 使用字体的名称
    font.bold = True  # 字体加粗
    font.underline = True  # 字体加下划线
    font.italic = True  # 斜体字
    style.font = font  # 设定样式使用的字体
    sheet.write(0,0, 'unformated'# 不带样式的表单内容
    sheet.write(0,1, 'formated', style)  # 带样式的表单内容
    book.save('boot.xls')
    # 设置单元格的宽度
    book = xlwt.Workbook(encoding='utf-8')
    sheet = book.add_sheet('sheet1')
    sheet.write(0, 0, '测试用例')
    sheet.col(0).width = 3333  # 设置表单:sheet1 的第一列所有单元格的宽度
    book.save('boot.xls')
    # 输入一个日期到单元格
    import datetime
    book = xlwt.Workbook()
    sheet = book.add_sheet('sheet1')
    style = xlwt.XFStyle()  # 凡是设置表格属性,都需要初始化一个样式
    style.num_format_str = 'M/D/YY'  # 设置当前表格的日期格式,以下为其他可选的格式
    # D: 表示日期, M:表示月份,Y:表示年,h:表示小时,m:表示分钟,s:表示秒
    # Other options: D-MMM-YY, D-MMM, MMM-YY, h:mm, h:mm:ss, h:mm, h:mm:ss, M/D/YY h:mm, mm:ss, [h]:mm:ss, mm:ss.0
    sheet.col(1).width = 3333  # 设定日期表格宽度
    sheet.write(0,1, datetime.datetime.today(), style)  # 设定当前表格日期采用style样式显示
    book.save('boot.xls')
    # 向表格添加一个公式
    book = xlwt.Workbook()
    sheet = book.add_sheet('sheet')
    sheet.write(0, 0, 5)
    sheet.write(0, 1, 2)
    sheet.write(1, 0, xlwt.Formula(('A1*B1')))  # 实现第一行第一个字段和第二个字段值相乘,写入到第二行第一个表格内
    sheet.write(1, 1, xlwt.Formula('SUM(A1,B1)'))  # 实现第一行第一个字段和第二个字段值相加,写入到第二行第二个表格内
    book.save('boot.xls')
    # 向一个表格添加一个超链接
    book = xlwt.Workbook()
    sheet = book.add_sheet('sheet_link')
    sheet.write(0, 1, xlwt.Formula('HYPERLINK("http://www.baidu.com";"baidu")'))  # 在表格里创建一个超链接,名称为:baidu
    book.save('boot.xls')
    # 合并列和行
    # 关于write_merge(x,m,y,n)参数说明:x 表示行数,m表示跨行个数, y表示列, n表示跨列个数,行和列的开始计数都为0
    book = xlwt.Workbook()
    sheet = book.add_sheet('sheet')
    sheet.write_merge(0, 0, 1, 3, 'First merge'#
    font = xlwt.Font()
    font.bold = True
    style = xlwt.XFStyle()
    style.font = font
    sheet.write_merge(1, 2, 0, 3, 'second merge', style)
    book.save('boot.xls')
    # 设置单元格内容的对其方式,
    workbook = xlwt.Workbook()
    worksheet = workbook.add_sheet('My Sheet')
    alignment = xlwt.Alignment() # Create Alignment
    alignment.horz = xlwt.Alignment.HORZ_CENTER # May be: HORZ_GENERAL, HORZ_LEFT, HORZ_CENTER, HORZ_RIGHT, HORZ_FILLED, HORZ_JUSTIFIED, HORZ_CENTER_ACROSS_SEL, HORZ_DISTRIBUTED
    alignment.vert = xlwt.Alignment.VERT_CENTER # May be: VERT_TOP, VERT_CENTER, VERT_BOTTOM, VERT_JUSTIFIED, VERT_DISTRIBUTED
    style = xlwt.XFStyle() # Create Style
    style.alignment = alignment # Add Alignment to Style
    worksheet.write(0, 0, 'Cell Contents', style)
    workbook.save('boot.xls')
    # 为单元格设置背景色
    book = xlwt.Workbook()
    sheet = book.add_sheet('sheet')
    pattern = xlwt.Pattern()  # 初始化一个图案
    pattern.pattern = xlwt.Pattern.SOLID_PATTERN  # 可选:NO_PATTERN, SOLID_PATTERN, or 0x00 through 0x12
    pattern.pattern_fore_colour = 5  # 背景颜色为黄色
    # 可选: 0 = Black, 1 = White, 2 = Red, 3 = Green, 4 = Blue, 5 = Yellow, 6 = Magenta, 7 = Cyan, 16 = Maroon, 17 = Dark Green, 18 = Dark Blue, 19 = Dark Yellow , almost brown), 20 = Dark Magenta, 21 = Teal, 22 = Light Gray, 23 = Dark Gray, the list goes on...
    style = xlwt.XFStyle()
    style.pattern = pattern  # 添加样式
    sheet.write(0, 0, 'Cell content', style)
    book.save('boot.xls')
  • 相关阅读:
    频繁FGC解决方案
    ThreadLocal
    Session与Cookie
    Socket通信流程
    SpringBoot面试题
    面向对象3大特性:封装、继承、多态——继承(继承方法的重写和初始化顺序、final & super关键字、Object类)
    面向对象3大特性:封装、继承、多态——封装(this 、访问修饰符、内部类)
    java类和对象、构造方法、静态变量、静态方法、静态初始化块
    数组的使用、eclipse调试程序、练习小demo以及方法的定义和重载
    java中的条件语句if...else... switch 和循环语句while do...while for
  • 原文地址:https://www.cnblogs.com/zy6103/p/10177694.html
Copyright © 2011-2022 走看看