zoukankan      html  css  js  c++  java
  • python的xlwt模块的常用方法

    工作中需要导出数据为excel格式,使用了xlwt模块,在此记录一下用到的内容。

    1. 创建一个表,设置一个sheet

    1 import xlwt
    2 
    3 workbook = xlwt.Workbook(encoding='utf8')
    4 worksheet = workbook.add_sheet(u'sheet1')

    2. 设置列宽,cols_num是列的数目,可以通过修改12这个值,修改列的宽度

    1 for c in range(cols_num):
    2     worksheet.col(c).width = 256 * 12

    3.设置行高,修改800为别的值,可以修改行的高度

    1 worksheet.row(0).height_mismatch = True
    2 worksheet.row(0).height = 800  # 设置行高

    4.设置单元格风格,写成了一个函数。如注释所示,Font()用来设置单元格字体内容,如字体类型、大小等;borders()设置单元格边框线粗细;partern()设置单元格背景颜色;XFStyle()设置风格类型;alignment()用来设置了字体水平居中、垂直居中、自动换行。

     1 def body_style(pattern=None):
     2     # 设置excel单元格风格
     3     font = xlwt.Font()  # Create Font
     4     font.name = "SimSun"  # 宋体
     5     font.height = 20 * 12  # 字体大小
     6     style = xlwt.XFStyle()  # Create Style
     7     style.alignment.horz = 2  # 字体居中
     8     style.alignment.vert = 1
     9     style.alignment.wrap = 1
    10     if pattern:
    11         pat = xlwt.Pattern()
    12         pat.pattern = xlwt.Pattern.SOLID_PATTERN  # 设置背景颜色
    13         pat.pattern_fore_colour = pattern
    14         style.pattern = pat
    15     borders = xlwt.Borders()
    16     borders.left = 1
    17     borders.right = 1
    18     borders.top = 1
    19     borders.bottom = 1
    20     style.font = font
    21     style.borders = borders
    22     return style

    5. falsk导出excel

    1 def down():
    2         excel = excel()
    3         sio = StringIO.StringIO()
    4         excel.save(sio)
    5         resp = make_response(sio.getvalue())
    6         filename = (u'表hh-' + u'-' + time.strftime("%Y-%m-%d", time.localtime(time.time())))
    7         resp.headers["Content-Disposition"] = "attachment; filename={}.xls".format(filename)
    8         resp.headers['Content-Type'] = 'application/x-xls'
    9         return resp

    6. 往单元格内写入数据,合并单元格

    1 worksheet.write(m_row, m_col, u'内容', body_style())
    2 # 合并单元格,前四个参数分别是起止的行列位置
    3 worksheet.write_merge(1, 2, m_col, m_col+3, u'还好', body_style())

    7. 在设置字体颜色或者单元格背景颜色的时候,可以使用源码中0x0D参数来代表不同的颜色,也可以用0-127来表示不同的颜色,写了以下代码来测试了一下,方便之后使用

     1 # coding=utf-8
     2 import xlwt
     3 
     4 workbook = xlwt.Workbook(encoding='utf-8')
     5 worksheet = workbook.add_sheet('sheet1')
     6 
     7 for i in range(0, 128):
     8         stylei = xlwt.XFStyle()
     9         patterni = xlwt.Pattern()
    10         patterni.pattern = 1
    11         # 设置底纹的图案索引,1为实心,2为50%灰色,对应为excel文件单元格格式中填充中的图案样式
    12         patterni.pattern_fore_colour = i    # 设置底纹的前景色,对应为excel文件单元格格式中填充中的背景色
    13         patterni.pattern_back_colour = 35   # 设置底纹的背景色,对应为excel文件单元格格式中填充中的图案颜色
    14         stylei.pattern = patterni           # 为样式设置图案
    15         worksheet.write(i, 0, i, stylei)
    16 
    17 workbook.save('file.xls')

    8. 待续,后面根据一些使用的属性进行补充,此外,目前对于wookbook类的属性还没有搞明白怎么使用。

  • 相关阅读:
    关于共享单车的胡言乱语
    pyspark 编写 UDF函数
    mysql load本地文件失败,提示access denied
    如何去掉文件里的^M
    我错了一半?
    Spark-shell引入第三方包
    Fiddler如何抓取使用了SSL或TLS传输的Android App流量
    Burpsuite如何抓取使用了SSL或TLS传输的Android App流量
    Linux内核通杀提权漏洞CVE-2016-5195验证
    IOS APP安全评估工具 Snoop-it
  • 原文地址:https://www.cnblogs.com/qiaojushuang/p/7486723.html
Copyright © 2011-2022 走看看