2009年01月16日

给俺的boss写的一个小工具,使用进行统计,然后把结束生成一个新的表格,使用到了xlrdpyExcelerator两个库。

简单的介绍一下这两个库,先说xlrd,这个库读比较方便,各种方法使用起来也挺方便:

bk = xlrd.open_workbook('your.xls')
sh = bk.sheets()[-1]
上面两句就可以打开表格中的一个sheet,sheets得到的是一个list,存放所有的sheet。
sh.nrows是该sheet中的行数,知道这个后就可以使用for循环来读所有的单元格了:
sh.row(i)[3]这个就代表第i行的第4列。

再看看pyExcelerator,这个用起来有点别扭:

sheets = parse_xls('result.xls')
先打开一个表格,sheets是一个list,包含了所有表格的内容,每一项就是一个sheet,而每个sheet是二元tuple,第一个是该sheet的名字,第二个是一个dict,dict的key是一个二元组,表示单元格的坐标,如(0,0),第一行第一列。
从上面的分析中可以得出要访问中第一个sheet的第一行第一列元素需要:
sheets[0][1][(0,0)]
pyExcelerator也不能得到行列数。

写文件也比较简单:
wb = Workbook()
ws = wb.add_sheet('result')
ws.write(0,0,“hello”)
wb.save('result.xls')
就不解释了:-)

写文件时需要注意直接写Unicode内容进去,而不要写编码过的内容。

给boss的代码:

标签 :

随机日志

10 楼了已经

  • Amankwah写于09年01月16日

    Excel格式是公开的?

  • wind写于09年01月17日

    看不明白,等我能看明白了再来瞅瞅

  • vvoody写于09年01月17日

    只用过 pyExcelerator 写过一个转课表的,还好用。
    嗯,编码问题当时确实我好搞了一番。

  • 刘鑫写于09年01月17日

    你比我早,嘿嘿,我正要拿Python处理Excel呢,前几天刚研究了下Excel的COM接口

  • 草儿写于09年01月23日

    靠,干嘛把地址写那么清楚啊~

  • Kermit.Mei写于09年02月03日

    这个很有用,我要好好学习一下,呵呵。

  • Python 处理 Excel | QQRSS写于09年05月01日

    [...] 转载于:可可熊的窝 [...]

  • 小慧写于09年12月15日

    这个文章不错!我刚好需要了解python操作Excel的知识。
    希望可以发更多关于python的帖子出来。

  • 可可熊写于09年12月15日

    To:小慧
    可以看看PyFetion

  • 9命怪猫写于10年06月18日

    其实,类似功能,用Excel内置的宏或者函数库就可以搞定了。
    Excel比想象中强大得多,只是大家不愿意去发掘!

发表评论

在下面加入你的评论,或者 trackback 从你的博客站点。 订阅本文的评论。

:

:

:

«
»