Python win32com 操作Exce的l简单方法(必看)


Posted in Python onMay 25, 2017

实例如下:

from win32com.client import Dispatch  
import win32com.client  
class easyExcel:  
   """A utility to make it easier to get at Excel.  Remembering 
   to save the data is your problem, as is  error handling. 
   Operates on one workbook at a time."""  
   def __init__(self, filename=None): #打开文件或者新建文件(如果不存在的话) 
     self.xlApp = win32com.client.Dispatch('Excel.Application')  
     if filename:  
       self.filename = filename  
       self.xlBook = self.xlApp.Workbooks.Open(filename)  
     else:  
       self.xlBook = self.xlApp.Workbooks.Add()  
       self.filename = '' 
    
   def save(self, newfilename=None): #保存文件 
     if newfilename:  
       self.filename = newfilename  
       self.xlBook.SaveAs(newfilename)  
     else:  
       self.xlBook.Save()    
   def close(self): #关闭文件 
     self.xlBook.Close(SaveChanges=0)  
     del self.xlApp  
   def getCell(self, sheet, row, col): #获取单元格的数据 
     "Get value of one cell"  
     sht = self.xlBook.Worksheets(sheet)  
     return sht.Cells(row, col).Value  
   def setCell(self, sheet, row, col, value): #设置单元格的数据 
     "set value of one cell"  
     sht = self.xlBook.Worksheets(sheet)  
     sht.Cells(row, col).Value = value 
   def setCellformat(self, sheet, row, col): #设置单元格的数据 
     "set value of one cell"  
     sht = self.xlBook.Worksheets(sheet)  
     sht.Cells(row, col).Font.Size = 15#字体大小 
     sht.Cells(row, col).Font.Bold = True#是否黑体 
     sht.Cells(row, col).Name = "Arial"#字体类型 
     sht.Cells(row, col).Interior.ColorIndex = 3#表格背景 
     #sht.Range("A1").Borders.LineStyle = xlDouble 
     sht.Cells(row, col).BorderAround(1,4)#表格边框 
     sht.Rows(3).RowHeight = 30#行高 
     sht.Cells(row, col).HorizontalAlignment = -4131 #水平居中xlCenter 
     sht.Cells(row, col).VerticalAlignment = -4160 # 
   def deleteRow(self, sheet, row): 
     sht = self.xlBook.Worksheets(sheet) 
     sht.Rows(row).Delete()#删除行 
     sht.Columns(row).Delete()#删除列
   def getRange(self, sheet, row1, col1, row2, col2): #获得一块区域的数据,返回为一个二维元组 
     "return a 2d array (i.e. tuple of tuples)"  
     sht = self.xlBook.Worksheets(sheet) 
     return sht.Range(sht.Cells(row1, col1), sht.Cells(row2, col2)).Value  
   def addPicture(self, sheet, pictureName, Left, Top, Width, Height): #插入图片 
     "Insert a picture in sheet"  
     sht = self.xlBook.Worksheets(sheet)  
     sht.Shapes.AddPicture(pictureName, 1, 1, Left, Top, Width, Height)  
   
   def cpSheet(self, before): #复制工作表 
     "copy sheet"  
     shts = self.xlBook.Worksheets  
     shts(1).Copy(None,shts(1))

   def inserRow(self,sheet,row):
     sht = self.xlBook.Worksheets(sheet)
     sht.Rows(row).Insert(1)

   #下面是一些测试代码。
if __name__ == "__main__":  
   #PNFILE = r'c:/screenshot.bmp' 
   xls = easyExcel(r'd:\jason.li\Desktop\empty_book.xlsx')   
   #xls.addPicture('Sheet1', PNFILE, 20,20,1000,1000)  
   #xls.cpSheet('Sheet1') 
   xls.setCell('sheet1',2,'A',88) 
   row=1 
   col=1 
   print("*******beginsetCellformat********") 
   # while(row<5):
   #  while(col<5):
   #    xls.setCellformat('sheet1',row,col)
   #    col += 1
   #    print("row=%s,col=%s" %(row,col))
   #  row += 1
   #  col=1
   #  print("*******row********")
   # print("*******endsetCellformat********")
   # print("*******deleteRow********")
   # xls.deleteRow('sheet1',5)
   xls.inserRow('sheet1',7)
   xls.save()  
   xls.close()

以上这篇Python win32com 操作Exce的l简单方法(必看)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python的unittest测试类代码实例
Dec 07 Python
一些Centos Python 生产环境的部署命令(推荐)
May 07 Python
Redis使用watch完成秒杀抢购功能的代码
May 07 Python
python 利用for循环 保存多个图像或者文件的实例
Nov 09 Python
学习python的前途 python挣钱
Feb 27 Python
选择python进行数据分析的理由和优势
Jun 25 Python
Anconda环境下Vscode安装Python的方法详解
Mar 29 Python
浅谈Python中的模块
Jun 10 Python
简单了解Django项目应用创建过程
Jul 06 Python
Python将字典转换为XML的方法
Aug 01 Python
Python 内置函数速查表一览
Jun 02 Python
python pandas 解析(读取、写入)CSV 文件的操作方法
Dec 24 Python
python win32 简单操作方法
May 25 #Python
python爬虫入门教程--利用requests构建知乎API(三)
May 25 #Python
Python正则表达式完全指南
May 25 #Python
Tensorflow简单验证码识别应用
May 25 #Python
Python 编码Basic Auth使用方法简单实例
May 25 #Python
Python 含参构造函数实例详解
May 25 #Python
Python爬虫之模拟知乎登录的方法教程
May 25 #Python
You might like
PHP中用header图片地址 简单隐藏图片源地址
2008/04/09 PHP
Yii2.0 Basic代码中路由链接被转义的处理方法
2016/09/21 PHP
关于ThinkPHP中的异常处理详解
2018/05/11 PHP
PHP Include文件实例讲解
2019/02/15 PHP
[原创]保存的js无法执行的解决办法
2007/02/25 Javascript
JavaScript单元测试ABC
2012/04/12 Javascript
jqTransform form表单美化插件使用方法
2012/07/05 Javascript
Underscore.js 的模板功能介绍与应用
2012/12/24 Javascript
前端轻量级MVC框架CanJS详解
2014/09/26 Javascript
AngularJS中如何使用$http对MongoLab数据表进行增删改查
2016/01/23 Javascript
JavaScript Math 对象常用方法总结
2016/04/28 Javascript
prototype与__proto__区别详细介绍
2017/01/09 Javascript
Bootstarp基本模版学习教程
2017/02/01 Javascript
javascript简单链式调用案例分析
2017/05/10 Javascript
Javascript中将变量转换为字符串的三种方法
2017/09/19 Javascript
VSCode配置react开发环境的步骤
2017/12/27 Javascript
Vux+Axios拦截器增加loading的问题及实现方法
2018/11/08 Javascript
js回文数的4种判断方法示例
2019/06/04 Javascript
用vue设计一个日历表
2020/12/03 Vue.js
js实现随机点名功能
2020/12/23 Javascript
[05:16]《大圣!大圣》——DOTA2新英雄齐天大圣配音李世宏老师专访
2016/12/13 DOTA
python使用循环打印所有三位数水仙花数的实例
2018/11/13 Python
python3利用ctypes传入一个字符串类型的列表方法
2019/02/12 Python
python二进制读写及特殊码同步实现详解
2019/10/11 Python
浅谈matplotlib.pyplot与axes的关系
2020/03/06 Python
在keras中model.fit_generator()和model.fit()的区别说明
2020/06/17 Python
利用CSS3的transition属性实现滑动效果
2015/08/05 HTML / CSS
HTML5 Canvas中使用路径描画二阶、三阶贝塞尔曲线
2015/01/01 HTML / CSS
canvas之自定义头像功能实现代码示例
2017/09/29 HTML / CSS
一套带网友答案的.NET笔试题
2016/12/06 面试题
船舶专业个人求职信范文
2014/01/02 职场文书
会计专业自我评价
2014/02/12 职场文书
学校标语大全
2014/06/19 职场文书
项目申请汇报材料
2014/08/16 职场文书
2015年劳动部工作总结
2015/05/23 职场文书
煤矿隐患排查制度
2015/08/05 职场文书