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中使用PDB库调试程序
Apr 05 Python
python统计文本文件内单词数量的方法
May 30 Python
利用python求相邻数的方法示例
Aug 18 Python
python实现简单遗传算法
Mar 19 Python
对python3中的RE(正则表达式)-详细总结
Jul 23 Python
扩展Django admin的list_filter()可使用范围方法
Aug 21 Python
python 实现turtle画图并导出图片格式的文件
Dec 07 Python
基于Python计算圆周率pi代码实例
Mar 25 Python
基于python计算并显示日间、星期客流高峰
May 07 Python
Pandas实现一列数据分隔为两列
May 18 Python
Python应用自动化部署工具Fabric原理及使用解析
Nov 30 Python
Django前后端分离csrf token获取方式
Dec 25 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
盘点被央视点名过的日本动画电影 一部比一部强
2020/03/08 日漫
PHP过滤★等特殊符号的正则
2014/01/27 PHP
ThinkPHP表单自动提交验证实例教程
2014/07/18 PHP
thinkphp利用模型通用数据编辑添加和删除的实例代码
2016/11/20 PHP
redis+php实现微博(三)微博列表功能详解
2019/09/23 PHP
javaScript 判断字符串是否为数字的简单方法
2009/07/25 Javascript
jQuery学习笔记之Helloworld
2010/12/22 Javascript
JS特权方法定义作用以及与公有方法的区别
2013/03/18 Javascript
jQuery随机切换图片的小例子
2013/04/18 Javascript
使用JS+plupload直接批量上传图片到又拍云
2014/12/01 Javascript
浅谈jQuery页面的滚动位置scrollTop、scrollLeft
2015/05/19 Javascript
JavaScript中函数声明与函数表达式的区别详解
2016/08/18 Javascript
jquery validation验证表单插件
2017/01/07 Javascript
js实现楼层导航功能
2017/02/23 Javascript
Javascript实现跨域后台设置拦截的方法详解
2017/08/04 Javascript
利用jquery如何从json中读取数据追加到html中
2017/12/01 jQuery
vue router动态路由设置参数可选问题
2019/08/21 Javascript
js 递归json树实现根据子id查父id的方法分析
2019/11/08 Javascript
JavaScript对象原型链原理详解
2020/02/05 Javascript
vue引入静态js文件的方法
2020/06/20 Javascript
vue 监听窗口变化对页面部分元素重新渲染操作
2020/07/28 Javascript
ES6字符串的扩展实例
2020/12/21 Javascript
python实现时间o(1)的最小栈的实例代码
2018/07/23 Python
如何运行.ipynb文件的图文讲解
2019/06/27 Python
python3 自动识别usb连接状态,即对usb重连的判断方法
2019/07/03 Python
python opencv 简单阈值算法的实现
2019/08/04 Python
python网络编程socket实现服务端、客户端操作详解
2020/03/24 Python
Django创建一个后台的基本步骤记录
2020/10/02 Python
python装饰器代码深入讲解
2021/03/01 Python
在HTML5 Canvas中放入图片和保存为图片的方法
2014/05/03 HTML / CSS
无畏的旅行:Intrepid Travel
2017/12/20 全球购物
教师自查自纠材料
2014/10/14 职场文书
2015年党建工作目标责任书
2015/05/08 职场文书
金陵十三钗观后感
2015/06/04 职场文书
创业项目大全(适合在家创业的项目)
2019/08/15 职场文书
TypeScript中条件类型精读与实践记录
2021/10/05 Javascript