• 使用Python xlwt写excel文件


    如果需要使用Python写Excel文件,首先下载或者安装xlwt。

    pip install xlwt

    下面的这些demo应该可以帮助开发者快速上手使用xlwt写Excel文件:

    创建工作簿(workbook)和工作表(sheet):

    import xlwt
    workbook = xlwt.Workbook() 
    sheet = workbook.add_sheet("Sheet Name") 
    

    写单元格(cell):

    sheet.write(0, 0, 'foobar') # row, column, value
    

    对单元格应用样式(加粗为例):

    style = xlwt.easyxf('font: bold 1')
    sheet.write(0, 0, 'foobar', style)
    

    设置列宽:

    要设置列宽,你必须将宽度属性设为 256*NUM_CHARS,其中256等于0字符的宽度。

    sheet.col(0).width = 256 * (len(key) + 1) 
    # set width.. 256 = 1 width of 0 character
    

    对单元格应用多重样式:

    需要注意每一个文档的样式应该限制在4k以内,这意味着你不应该为每一个单元格初始化一个样式,而是应该复用它们(阅读后面的内容可以看到一个简单的缓存解决方案)

    style = xlwt.easyxf('font: bold 1, color red;'))
    sheet.write(0, 0, 'foobar', style)
    

    应用货币样式:

    要设置货币,在easyxf函数里添加关键词参数num_format_str,或者在返回的样式对象里设置属性。

    style = easyxf(num_format_str='$#,##0.00')
    # or set it directly on the style object
    style = easyxf('font: bold 1')
    style.num_format_str = '$#,##0.00'
    sheet.write(0, 0, '100.00', style)
    

    写Excel公式:

    使用xlwt.Formula可以很容易地写Excel公式。

    sheet.write(0, 0, xlwt.Formula('HYPERLINK("http://yujitomita.com"; "click me")'))
    

    保存:

    workbook.save("foobar.xls") 
    # done!
    

    使用陷阱(GOTCHAS):

    下面是一些常见的使用陷阱的解决方案。

    禁止覆盖单元格:

    我实际上非常喜欢这一特性—它防止了单元格被覆盖,所以我不止遇到过一次脚本运行失败的情况。话又说回来,你为什么要覆盖单元格呢?

    # to overwrite cells, create the sheet with kwarg cell_overwrite_ok
    workbook.add_sheet('foobar', cell_overwrite_ok=True) 
    

    有效的工作表命名:

    • 工作表的名称必须小于31个字符
    • 命名不应包含特殊字符,例如‘:’, ‘/’等

    每文档4k样式限制:

    如果你了解规则,应用单元格样式就是小菜一碟。

    由于文档中的样式内容不能超过4k,所以我创建了一个缓存easyxf函数,它在创建一个新样式之前,首先会尝试从缓存中拉取一个已有的样式。

    class MyClass(object):
      kwd_mark = object()
      def cached_easyxf(self, string='', **kwargs):
        if not hasattr(self, '_cached_easyxf'):
          self._cached_easyxf = {}
        key = (string,) + (self.kwd_mark,) + tuple(sorted(kwargs.items()))
        return self._cached_easyxf.setdefault(key, xlwt.easyxf(string, **kwargs))
    

    Easyxf 字符串格式:

    我做了一些小实验来找出通用格式。

    例如,接收一个空格分隔的键值对数组的字符串格式。

    ‘KEY: KEY-VALUE VALUE, KEY-VALUE VALUE; KEY2: KEY-VALUE2 VALUE2′

    sheet.write(0, 0, xlwt.easyxf('font: bold 1')) # bold
    sheet.write(0, 0, xlwt.easyxf('font: bold 1, color: blue, underline single')) 
    

    外文原文链接: http://yuji.wordpress.com/2012/04/19/python-xlwt-writing-excel-files/

  • 相关阅读:
    传统工业制造商Opto 22宣布加入Linux基金会
    Android Stack
    An Overview of the Android Architecture (Android Studio)
    基于嵌入式操作系统的物联网安全
    什么是雾计算?它与云计算有什么区别?
    《速度与激情8》中的信息安全技术
    专利驳回的三大基本原因
    专利
    【习题 4-2 Uva201】Squares
    【习题4-1 Uva1589】Xiangqi
  • 原文地址:https://www.cnblogs.com/jiangzhaowei/p/5857906.html
Copyright © 2020-2023  润新知