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列表生成器的循环技巧分享
Mar 06 Python
使用Python抓取模板之家的CSS模板
Mar 16 Python
收藏整理的一些Python常用方法和技巧
May 18 Python
Python实现求一个集合所有子集的示例
May 04 Python
浅谈python的dataframe与series的创建方法
Nov 12 Python
Python转换时间的图文方法
Jul 01 Python
PyCharm2018 安装及破解方法实现步骤
Sep 09 Python
Python2与Python3的区别点整理
Dec 12 Python
Python3将jpg转为pdf文件的方法示例
Dec 13 Python
ansible动态Inventory主机清单配置遇到的坑
Jan 19 Python
Transpose 数组行列转置的限制方式
Feb 11 Python
python3 实现口罩抽签的功能
Mar 11 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
SSO单点登录的PHP实现方法(Laravel框架)
2016/03/23 PHP
PHP+Mysql无刷新问答评论系统(源码)
2016/12/20 PHP
简单实现php上传文件功能
2017/09/21 PHP
JS关键字球状旋转效果的实例代码
2013/11/29 Javascript
js中的caller和callee属性介绍和例子
2014/06/07 Javascript
解析javascript中鼠标滚轮事件
2015/05/26 Javascript
thinkphp实现无限分类(使用递归)
2015/12/19 Javascript
jQuery Form 表单提交插件之formSerialize,fieldSerialize,fieldValue,resetForm,clearForm,clearFields的应用
2016/01/23 Javascript
javascript实现的上下无缝滚动效果
2016/09/19 Javascript
JavaScript中常用的验证reg
2016/10/13 Javascript
vue实现ajax滚动下拉加载,同时具有loading效果(推荐)
2017/01/11 Javascript
BootStrap 获得轮播中的索引和当前活动的焦点对象
2017/05/11 Javascript
angularjs实现天气预报功能
2020/06/16 Javascript
深入理解react 组件类型及使用场景
2019/03/07 Javascript
Vuejs学习笔记之使用指令v-model完成表单的数据双向绑定
2019/04/29 Javascript
使用js实现一个简单的滚动条过程解析
2019/09/10 Javascript
详解jQuery中的prop()使用方法
2020/01/05 jQuery
javascript实现简单留言板案例
2021/02/09 Javascript
[02:33]2014DOTA2 TI每日综述 LGD涉险晋级DK闯入胜者组
2014/07/14 DOTA
Python使用googletrans报错的解决方法
2018/09/25 Python
Django模板导入母版继承和自定义返回Html片段过程解析
2019/09/18 Python
python 计算积分图和haar特征的实例代码
2019/11/20 Python
Python生成器常见问题及解决方案
2020/03/21 Python
Pycharm连接gitlab实现过程图解
2020/09/01 Python
Django使用django-simple-captcha做验证码的实现示例
2021/01/07 Python
法警的竞聘演讲稿
2014/01/02 职场文书
《黄山奇石》教学反思
2014/04/19 职场文书
2014年9.18纪念日演讲稿
2014/09/14 职场文书
承兑汇票转让证明怎么写?
2014/11/30 职场文书
2015新年寄语大全
2014/12/08 职场文书
会议主持词通用版
2019/04/02 职场文书
logback 实现给变量指定默认值
2021/08/30 Java/Android
浅析Python中的随机采样和概率分布
2021/12/06 Python
mysql的单列多值存储实例详解
2022/04/05 MySQL
kubernetes集群搭建Zabbix监控平台的详细过程
2022/07/07 Servers
vue实现简易音乐播放器
2022/08/14 Vue.js