使用python处理Excel
2016-12-14 09:37
399 查看
如果需要使用Python写Excel文件,首先下载或者安装xlwt。
pip install xlwt
下面的这些demo应该可以帮助开发者快速上手使用xlwt写Excel文件:
2
3
2
2
2
2
3
4
5
2
2
命名不应包含特殊字符,例如‘:’, ‘/’等
由于文档中的样式内容不能超过4k,所以我创建了一个缓存easyxf函数,它在创建一个新样式之前,首先会尝试从缓存中拉取一个已有的样式。
2
3
4
5
6
7
例如,接收一个空格分隔的键值对数组的字符串格式。
‘KEY: KEY-VALUE VALUE, KEY-VALUE VALUE; KEY2: KEY-VALUE2 VALUE2′
pip install xlwt
下面的这些demo应该可以帮助开发者快速上手使用xlwt写Excel文件:
创建工作簿(workbook)和工作表(sheet):
import xlwt workbook = xlwt.Workbook() sheet = workbook.add_sheet("Sheet Name")1
2
3
写单元格(cell):
sheet.write(0, 0, 'foobar') # row, column, value1
对单元格应用样式(加粗为例):
style = xlwt.easyxf('font: bold 1') sheet.write(0, 0, 'foobar', style)1
2
设置列宽:
要设置列宽,你必须将宽度属性设为 256*NUM_CHARS,其中256等于0字符的宽度。sheet.col(0).width = 256 * (len(key) + 1) # set width.. 256 = 1 width of 0 character1
2
对单元格应用多重样式:
需要注意每一个文档的样式应该限制在4k以内,这意味着你不应该为每一个单元格初始化一个样式,而是应该复用它们(阅读后面的内容可以看到一个简单的缓存解决方案)style = xlwt.easyxf('font: bold 1, color red;')) sheet.write(0, 0, 'foobar', style)1
2
应用货币样式:
要设置货币,在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)1
2
3
4
5
写Excel公式:
使用xlwt.Formula可以很容易地写Excel公式。sheet.write(0, 0, xlwt.Formula('HYPERLINK("http://yujitomita.com"; "click me")'))1
保存:
workbook.save("foobar.xls") # done!1
2
使用陷阱(GOTCHAS):
下面是一些常见的使用陷阱的解决方案。禁止覆盖单元格:
我实际上非常喜欢这一特性—它防止了单元格被覆盖,所以我不止遇到过一次脚本运行失败的情况。话又说回来,你为什么要覆盖单元格呢?# to overwrite cells, create the sheet with kwarg cell_overwrite_ok workbook.add_sheet('foobar', cell_overwrite_ok=True)1
2
有效的工作表命名:
工作表的名称必须小于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))1
2
3
4
5
6
7
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'))
相关文章推荐
- 使用Python代码处理Excel
- 使用python处理中文csv文件,并让excel正确显示中文(避免乱码)
- 使用python处理中文csv文件,并让excel正确显示中文
- Python使用xlrd处理Excel
- 使用Python通过xlrd处理excel实战
- 使用python处理中文csv文件,并让excel正确显示中文(避免乱码)
- 用Python处理Excel——xlrd的简单使用
- python处理Excel xlrd的简单使用
- 在EasyJWeb中使用Java Excel API 处理电子表格
- 使用POI来处理Excel和Word文件格式
- Delphi中使用python脚本读取Excel数据
- 在EasyJWeb中使用Java Excel API 处理电子表格
- 在EasyJWeb中使用Java Excel API 处理电子表格
- 在EasyJWeb中使用Java Excel API 处理电子表格
- Python3.0 我的DailyReport 脚本(一) 使用COM操作Excel
- Python:使用getopt模块处理命令行参数[zt]
- 如何在 Visual Basic 或 VBA 中使用 ADO 来处理 Excel 数据
- 使用Python的Command Line操作Excel的Macro
- 在EasyJWeb中使用Java Excel API 处理电子表格
- 使用POI处理Excel文档 -