zoukankan      html  css  js  c++  java
  • 使用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/

  • 相关阅读:
    ios 数据类型转换 UIImage转换为NSData NSData转换为NSString
    iOS UI 12 block传值
    iOS UI 11 单例
    iOS UI 08 uitableview 自定义cell
    iOS UI 07 uitableviewi3
    iOS UI 07 uitableviewi2
    iOS UI 07 uitableview
    iOS UI 05 传值
    iOS UI 04 轨道和动画
    iOS UI 03 事件和手势
  • 原文地址:https://www.cnblogs.com/jiangzhaowei/p/5857906.html
Copyright © 2011-2022 走看看