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之一个免费的实验室
Sep 14 Python
纯Python开发的nosql数据库CodernityDB介绍和使用实例
Oct 23 Python
Python实现豆瓣图片下载的方法
May 25 Python
Python的Socket编程过程中实现UDP端口复用的实例分享
Mar 19 Python
TensorFlow安装及jupyter notebook配置方法
Sep 08 Python
python如何制作缩略图
Apr 30 Python
8段用于数据清洗Python代码(小结)
Oct 31 Python
Python面向对象程序设计之类和对象、实例变量、类变量用法分析
Mar 23 Python
详解Python多线程下的list
Jul 03 Python
Kmeans均值聚类算法原理以及Python如何实现
Sep 26 Python
详解vscode实现远程linux服务器上Python开发
Nov 10 Python
Python requests库参数提交的注意事项总结
Mar 29 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 zlib压缩和解压缩swf文件的代码
2008/12/30 PHP
Zend Framework创建自己的动作助手详解
2016/03/05 PHP
详解Laravel视图间共享数据与视图Composer
2016/08/04 PHP
PHP的反射机制实例详解
2017/03/29 PHP
laravel实现批量更新多条记录的方法示例
2017/10/22 PHP
PHP+百度AI OCR文字识别实现了图片的文字识别功能
2019/05/08 PHP
基于PHP实现发微博动态代码实例
2020/12/11 PHP
[原创]IE view-source 无法查看看源码 JavaScript看网页源码
2009/07/19 Javascript
JavaScript中getUTCSeconds()方法的使用详解
2015/06/11 Javascript
iscroll.js的上拉下拉刷新时无法回弹的解决方法
2016/02/18 Javascript
以WordPress为例讲解jQuery美化页面Title的方法
2016/05/23 Javascript
div中文字内容溢出常见的解决方法
2017/03/16 Javascript
Bootstrap弹出框(Popover)被挤压的问题小结
2017/07/11 Javascript
以BootStrap Tab为例写一个前端组件
2017/07/25 Javascript
Vue Cli与BootStrap结合实现表格分页功能
2017/08/18 Javascript
js中this的指向问题归纳总结
2018/11/28 Javascript
微信小程序提取公用函数到util.js及使用方法示例
2019/01/10 Javascript
微信小程序实现简易table表格
2020/06/19 Javascript
Vue computed 计算属性代码实例
2020/04/22 Javascript
微信小程序实现简单的select下拉框
2020/11/23 Javascript
vue 实现基础组件的自动化全局注册
2020/12/25 Vue.js
ptyhon实现sitemap生成示例
2014/03/30 Python
粗略分析Python中的内存泄漏
2015/04/23 Python
解决Python3 控制台输出InsecureRequestWarning问题
2019/07/15 Python
PYcharm 激活方法(推荐)
2020/03/23 Python
python中封包建立过程实例
2021/02/18 Python
音乐专业自荐信
2014/02/07 职场文书
初中班主任评语大全
2014/04/24 职场文书
青年志愿者活动总结
2014/04/26 职场文书
土建施工员岗位职责
2014/07/16 职场文书
房产授权委托书范本
2014/09/22 职场文书
2015新员工试用期工作总结
2014/12/12 职场文书
交通事故被告答辩状
2015/05/22 职场文书
Pyhton模块和包相关知识总结
2021/05/12 Python
Redis基本数据类型哈希Hash常用操作命令
2022/06/01 Redis
ubuntu开机后ROS程序自启动问题
2022/12/24 Servers