利用 Python 操作 Excel文档

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

利用Python操作Excel在Excel2010中打开VBA编辑器,请按Alt+F11打开;以下代码在Excel2007,Excel2010中测试通过;importwin32com.client#导入脚本模块ExcelApp=win32com.client.Dispatch(Excel.Application)#载入EXCEL模块ExcelApp.Visible=True#显示EXCEL应用程序1、新建xls文件wBook=ExcelApp.Workbooks.Add()#新建空文件,每个文件系统默认建立3个空表nSheet=wBook.Worksheets.Count#获取文件的表格数,缺省为3wSheet=wBook.Worksheets(1)#打开指定工作表(注意序号从1开始)wSheet=wBook.Worksheets.Add()#增加新表,新表为第4个表,相当与wBook.Worksheets(4)wSheet.Name=新建表格#修改新建表格名称,或者wBook.Worksheets(4).Name=新建表格……中间操作……wBook.SaveAs(strName)#另存文件,注意直接保存用:wBook.Save()wBook.Close()#关闭文件(账本)2、打开和关闭xls文件xlsPathName=rE:\000.xls#指定路径名wBook=ExcelApp.Workbooks.Open(xlsPathName)#打开指定文件(账本)wSheet=wBook.Worksheets(1)#打开指定工作表(注意序号从1开始)或者wSheet=wBook.Worksheets(Sheet1)#必须使用准确的工作表名称字符串……中间操作……wBook.Close()#关闭文件(账本)3、页面设置wSheet.PageSetup.PaperSize=9#设置纸张大小,A3=8,A4=9(与Word不同)wSheet.PageSetup.Orientation=1#设置页面方向,纵向=1,横向=2(与Word不同)wSheet.PageSetup.TopMargin=3*28.35#页边距上=3cm,1cm=28.35ptwSheet.PageSetup.BottomMargin=3*28.35#页边距下=3cmwSheet.PageSetup.LeftMargin=2.5*28.35#页边距左=2.5cmwSheet.PageSetup.RightMargin=2.5*28.35#页边距右=2.5cmwSheet.PageSetup.CenterHorizontally=True#表格打印位置水平居中wSheet.PageSetup.CenterVertically=False#表格打印位置垂直不居中(最后一页不好看)wSheet.PageSetup.HeaderMargin=2*28.35#设置页眉位置=2cm(距上边)wSheet.PageSetup.FooterMargin=1*28.35#设置页脚位置=1cm(距下边)wSheet.PageSetup.PrintTitleRows=$1:$2#设置表格标题行wSheet.PageSetup.CenterHeader=&\黑体\&15表格名称#中央页眉作为表格名称wSheet.PageSetup.CenterFooter=第&P页,共&N页#中央页脚显示打印页数wSheet.Rows(5).PageBreak=-4135#在第5行之前插入分页符注意:表格名称的文本格式设置,详情查询“页眉和页脚的格式代码”&黑体&15#设置字体,字大,颜色&B&I&U#设置字体加黑、加粗、下划线&L&C&R#设置左中右对齐4、单元格操作cv=wSheet.Cells(1,1).Value#获取单元格数值wSheet.Cells(1,1).Interior.Color=0xff00ff#设置单元格背景色cel=wSheet.Cells(2,2)#获取单元格对象cv=cel.Offset(3,3).Value#获取偏移后的单元格,即(4,4)#Offset以当前单元格为(1,1),偏移之后的单元格为(a1+a2-1,b1+b2-1)注:range与Cells,Rows,Columns的绝大多数属性类似,但是后三者后面可以接序号(2,3)表示具体单元格或行列,不接序号指所有单元格或行列。5、行列操作wSheet.Rows.AutoFit()#自动适合行wSheet.Rows(1).Delete()#删除第1行wSheet.Columns.Autofit()#自动适合列wSheet.Columns(1).Delete()#删除第1列wSheet.Columns(1).Columnwidth=30#设置列宽wSheet.Columns(1).NumberFormatLocal=000000#设置数值格式wSheet.Rows(2:2).Select()#必须选择第2行,才能冻结第1行!!ExcelApp.ActiveWindow.FreezePanes=True#冻结第1行6、遍历工作表的所有单元格nRow=wSheet.usedrange.rows.count#获取指定工作表的行数nCol=wSheet.usedrange.columns.count#获取指定工作表的列数foriinrange(1,nRow+1):forjinrange(1,nCol+1):……中间操作……breakbreak#注意必须分别退出7、搜索指定数值cel=wSheet.Columns(2).Find(123)#在第2列查找某整数值123if(cel):adr=cel.Address#获取该单元格首地址,以便退出循环while(True):#注意系统的FindNext()是个死循环,会反复搜索……中间操作……cel=wSheet.Columns(2).FindNext(cel)#注意FindNext()参数为celif(cel.Address==adr):break#返回到单元格首地址时,就退出7、格式设置wSheet.Cells.Font.Name=Arial#设置字体wSheet.Cells.Font.Size=10#设置字大wSheet.Cells.Font.Bold=True#设置粗体wSheet.Cells.Font.Italic=True#设置斜体wSheet.usedrange.Columns.AutoFit#设置所有列自动调整宽度wSheet.Cells.HorizontalAlignment=2#设置左对齐(1=两端,2=左,3=中,4=右)ran=wSheet.Range(wSheet.Cells(1,1),wSheet.Cells(nRow,nCol))ran.Hyperlinks.Delete()#删除指定范围的链接ran.Font.Name=宋体#设置字体ran.Font.Size=10#设置字大ran.Font.Bold=False#设置黑体ran.Font.Italic=True#设置斜体ran.HorizontalAlignment=-4108#水平对齐ran.VerticalAlignment=-4108#垂直对其8、绘制表格线ran=wSheet.Range(A1:D5)#设置处理范围ran.Borders.LineStyle=1#设置线型为实线(1=实线,4=点划线,-4142=无线条,-4119=双线,-4115虚线)ran.Borders(11).LineStyle=-4142#去除范围内中间竖线(8=上边线,9=下边线,7=左框线,10=右框线,11=竖框线,12=横框线)9、行列宽度设置wSheet.Rows(1).RowHeight=20#设置第1行的行高wSheet.Columns(1).ColumnWidth=10#设置第1列的列宽10、使用公式进行统计ran=wSheet.Range(A1:A10)#设置计算范围a=ExcelApp.WorksheetFunction.Sum(ran)#范围数值求和b=ExcelApp.WorksheetFunction.Max(ran)#范围最大值注:常用函数可以在插入函数对话框中查找,包括Average,Max,Min,Sum,StDev等;

1 / 5
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功