DayDayUP_Python自学教程[14]_python操作excel

参考链接:http://bookshadow.com/weblog/2014/10/19/python-xlwt-write-excel/?utm_source=tuicool&utm_medium=referral
感谢作者

安装包

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

pip install xlwt

未安装pip

# git clone https://github.com/python-excel/xlwt.git
# cd 解压目录
# python setup.py install

还是不行,来这下载吧:
下载吧。。。。

创建工作簿(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样式限制:

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

创建了一个缓存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://blog.csdn.net/erujo/article/details/51388615

欢迎点评

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值