首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

python可以象vba一样方便的操作 excel吗?有经验的说说!该如何处理

2012-02-04 
python可以象vba一样方便的操作 excel吗?有经验的说说!python可以象vba一样方便的操作 excel吗?有经验的说

python可以象vba一样方便的操作 excel吗?有经验的说说!
python可以象vba一样方便的操作 excel吗?有经验的说说!
工作中,经常要通过程序处理excel,
因为我知道,python的长处就是文本处理,不是对 excel 的处理能力如何。
可以象vba那样方便吗?


[解决办法]
原帖地址:http://cocobear.info/blog/2009/01/16/use-python-deal-with-excel/
使用Python处理Excel表格使用Python处理Excel表格 
2009年01月16日 给俺的boss写的一个小工具,使用Python对Excel进行统计,然后把结束生成一个新的Excel表格,使用到了xlrd和pyExcelerator两个库。
简单的介绍一下这两个库,先说xlrd,这个库读Excel比较方便,各种方法使用起来也挺方便:
bk = xlrd.open_workbook('your.xls')
sh = bk.sheets()[-1]
上面两句就可以打开Excel表格中的一个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),第一行第一列。
从上面的分析中可以得出要访问Excel中第一个sheet的第一行第一列元素需要:
sheets[0][1][(0,0)]
pyExcelerator也不能得到行列数。
写文件也比较简单:
wb = Workbook()
ws = wb.add_sheet('result')
ws.write(0,0,“hello”)
wb.save('result.xls')
就不解释了:-)
写文件时需要注意直接写Unicode内容进去,而不要写编码过的内容。
本文来源于可可熊的窝 http://cocobear.info/blog , 原文地址: http://cocobear.info/blog/2009/01/16/use-python-deal-with-excel/ 

[解决办法]
原帖地址:http://cocobear.info/blog/2009/01/16/use-python-deal-with-excel/
使用Python处理Excel表格使用Python处理Excel表格 
2009年01月16日 给俺的boss写的一个小工具,使用Python对Excel进行统计,然后把结束生成一个新的Excel表格,使用到了xlrd和pyExcelerator两个库。
简单的介绍一下这两个库,先说xlrd,这个库读Excel比较方便,各种方法使用起来也挺方便:
bk = xlrd.open_workbook('your.xls')
sh = bk.sheets()[-1]
上面两句就可以打开Excel表格中的一个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),第一行第一列。
从上面的分析中可以得出要访问Excel中第一个sheet的第一行第一列元素需要:
sheets[0][1][(0,0)]
pyExcelerator也不能得到行列数。
写文件也比较简单:
wb = Workbook()
ws = wb.add_sheet('result')
ws.write(0,0,“hello”)
wb.save('result.xls')
就不解释了:-)
写文件时需要注意直接写Unicode内容进去,而不要写编码过的内容。
本文来源于可可熊的窝 http://cocobear.info/blog , 原文地址: http://cocobear.info/blog/2009/01/16/use-python-deal-with-excel/ 

[解决办法]
当然可以了,伟大的Mark Hammond将COM完美地绑定到了Python中。

详细请参看《Python Programming on Win32》(网上有的下,但没有中文版)的第9章:Integration with Excel

简单地给个例子:

Python code
>>> from win32com.client import Dispatch>>> xlApp = Dispatch("Excel.Application") >>> xlApp.Visible = 1>>> xlApp.Workbooks.Add()<win32com.gen_py.Microsoft Excel 8.0 Object Library.Workbook>>>>>>> xlApp.ActiveSheet.Cells(1,1).Value = 'Python Rules!'>>> xlApp.ActiveWorkbook.ActiveSheet.Cells(1,1).Value = 'Python Rules!'>>> xlApp.Workbooks("Book1").Sheets("Sheet1").Cells(1,1).Value = "Python Rules!">>> xlApp.Workbooks(1).Sheets(1).Cells(1,1).Value = "Python Rules!"  >>> xlApp.Workbooks(1).Sheets(1).Cells(1,1).Value = "Python Rules!"  >>> >>> xlBook = xlApp.Workbooks(1)>>> xlSheet = xlApp.Sheets(1)>>> xlSheet.Cells(1,1).Value = "Python Rules!">>>>>> xlBook.SaveAs(Filename=r'C:\temp\mysheet.xls')>>>
[解决办法]
xlrd的话支持到python2.6,到现在还不支持python3.0
使用com方案的话要求你机器上必须装有Microsoft Excel而且, 呵呵, 有:不能装WPS(冲突),不能有FrontPage程序运行(不稳定)等限制

热点排行