|
楼主 |
发表于 2012-12-30 01:03
|
显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
2.pywin32
优点:可以直接创建ms excel application,类似宏的方式来处理excel文件
打开工作簿:- workbook = xlsApp.Workbooks.Open(xls)
复制代码 打开工作表:- sheet = workbook.Worksheets(1)
复制代码 这里工作表索引是从1开始。
修改单元格值:- sheet.Cells(2,6).Value = '编号汇总'
复制代码 这里左上角是Cells(1,1)
合并单元格:- sheet.Range('A1:F1').MergeCells = True
复制代码 代码片段,参考如下:- from win32com.client import Dispatch
- '''
- 用WIN32调动Excel来处理
- '''
- xlsApp = Dispatch("Excel.Application")
- xlsApp.Visible = False
- xlsApp.DisplayAlerts = False
- print '共%d个Excel文件待处理,请稍后...' %len(xlss)
- for xls in xlss:
- ## print gettime(),'start ',xls
- workbook = xlsApp.Workbooks.Open(xls)
- sheet = workbook.Worksheets(1)
- rc = getrowcol(xls)
- ##写标题
- sheet.Cells(2,6).Value = '编号汇总'
- sheet.Range('F3:F'+str(rc[0])).NumberFormatLocal='@'
- sheet.Range('A1:F1').MergeCells = True
- for i in range(3,rc[0]+1):
- p_name = sheet.Cells(i,2).Value
- if p_name:
- p_name = ''.join(p_name.split())
- u_p_name = unicode(p_name)
- if p_bh.has_key(u_p_name):
- bhs = p_bh[u_p_name]
- sheet.Cells(i,6).Value = bhs
- else:
- print 'error... ',p_name
- del sheet
- workbook.Close(SaveChanges=1)
- del workbook
- ## print gettime(),'finish ',xls
-
- xlsApp.Quit()
- del xlsApp
复制代码 |
|