利用 PYTHON 操作 EXCEL文档
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
利用Python操作Excel
在Excel2010中打开VBA编辑器,请按Alt+F11打开;
以下代码在Excel2007,Excel2010中测试通过;
import win32com.client#导入脚本模块
ExcelApp=win32com.client.Dispatch("Excel.Application")#载入EXCEL模块
ExcelApp.Visible=True#显示EXCEL应用程序
1、新建xls文件
wBook=ExcelApp.Workbooks.Add()#新建空文件,每个文件系统默认建立3个空表
nSheet=wBook.Worksheets.Count#获取文件的表格数,缺省为3
wSheet=wBook.Worksheets(1)#打开指定工作表(注意序号从1开始)wSheet=wBook.Worksheets.Add()#增加新表,新表为第4个表,相当与wBook.Worksheets(4)
="新建表格"#修改新建表格名称,
或者wBook.Worksheets(4).Name="新建表格"
……中间操作……
wBook.SaveAs(strName)#另存文件,注意直接保存用:
wBook.Save()
wBook.Close()#关闭文件(账本)
2、打开和关闭xls文件
xlsPathName=r"E:\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.35pt
wSheet.PageSetup.BottomMargin=3*28.35#页边距下=3cm
wSheet.PageSetup.LeftMargin= 2.5*28.35#页边距左=2.5cm
wSheet.PageSetup.RightMargin=2.5*28.35#页边距右=2.5cm
wSheet.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=edrange.rows.count#获取指定工作表的行数
nCol=edrange.columns.count#获取指定工作表的列数
for i in range(1,nRow+1):
for j in range(1,nCol+1):
……中间操作……