码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2016-05-12 18:09:52      阅读:235      评论:0      收藏:0      [点我收藏+]

标签:

参考链接: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‘)) 

还没有学习完,好困,睡觉了。。。
未完待续

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

标签:

原文地址:http://blog.csdn.net/erujo/article/details/51357262

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!