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在一个文件的头部插入数据的实例
May 02 Python
基于python绘制科赫雪花
Jun 22 Python
python实现旋转和水平翻转的方法
Oct 25 Python
pycharm 取消默认的右击运行unittest的方法
Nov 29 Python
Python实现的KMeans聚类算法实例分析
Dec 29 Python
python3 深浅copy对比详解
Aug 12 Python
python批量将excel内容进行翻译写入功能
Oct 10 Python
DJANGO-URL反向解析REVERSE实例讲解
Oct 25 Python
使用 django orm 写 exists 条件过滤实例
May 20 Python
tensorflow实现残差网络方式(mnist数据集)
May 26 Python
python mysql中in参数化说明
Jun 05 Python
Python爬虫进阶之爬取某视频并下载的实现
Dec 08 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购物网站支付paypal使用方法
2010/11/28 PHP
PHP时间戳 strtotime()使用方法和技巧
2013/10/29 PHP
php中Session的生成机制、回收机制和存储机制探究
2014/08/19 PHP
jquery 图片Silhouette Fadeins渐显效果
2010/02/07 Javascript
js精度溢出解决方案
2012/12/02 Javascript
网页前端优化之滚动延时加载图片示例
2013/07/13 Javascript
js实现页面跳转重定向的几种方式
2014/05/29 Javascript
仿淘宝TAB切换搜索框搜索切换的相关内容
2014/09/21 Javascript
jqueryMobile使用示例分享
2016/01/12 Javascript
Bootstrap Modal对话框如何在关闭时触发事件
2016/12/02 Javascript
JS传播事件、取消事件默认行为、阻止事件传播详解
2017/08/14 Javascript
webstorm和.vue中es6语法报错的解决方法
2018/05/08 Javascript
详解如何在vue项目中使用eslint+prettier格式化代码
2018/11/10 Javascript
vue 授权获取微信openId操作
2020/11/13 Javascript
[05:05]给小松五分钟系列 第二期介绍为什么打DOTA2
2014/07/02 DOTA
用Python编写一个国际象棋AI程序
2014/11/28 Python
Python遍历目录中的所有文件的方法
2016/07/08 Python
Python使用pymysql小技巧
2017/06/04 Python
关于Python中空格字符串处理的技巧总结
2017/08/10 Python
Mac中Python 3环境下安装scrapy的方法教程
2017/10/26 Python
PyQt5每天必学之弹出消息框
2018/04/19 Python
使用Anaconda3建立虚拟独立的python2.7环境方法
2018/06/11 Python
对python实现合并两个排序链表的方法详解
2019/01/23 Python
python 同时读取多个文件的例子
2019/07/16 Python
解决Windows下python和pip命令无法使用的问题
2020/08/31 Python
css3 按钮 利用css3实现超酷下载按钮
2013/03/18 HTML / CSS
贝嫂喜欢的婴儿品牌,个性化的婴儿礼物:My 1st Years
2017/11/19 全球购物
采用冷却技术的超自然舒适度:GhostBed床垫
2018/09/18 全球购物
linux比较文件内容的命令是什么
2013/03/04 面试题
《郑和远航》教学反思
2014/04/16 职场文书
法律专业自荐信
2014/06/03 职场文书
2014年财务经理工作总结
2014/12/08 职场文书
营销策划分析:怎么策划才能更好销量产品?
2019/09/04 职场文书
浅谈Python数学建模之线性规划
2021/06/23 Python
java设计模式--七大原则详解
2021/07/21 Java/Android
Java Lambda表达式常用的函数式接口
2022/04/07 Java/Android