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 18 Python
使用Python编写简单网络爬虫抓取视频下载资源
Nov 04 Python
python+Django+apache的配置方法详解
Jun 01 Python
python使用xlrd与xlwt对excel的读写和格式设定
Jan 21 Python
Python实现字典按照value进行排序的方法分析
Dec 23 Python
python利用高阶函数实现剪枝函数
Mar 20 Python
python 求一个列表中所有元素的乘积实例
Jun 11 Python
Flask框架学习笔记之消息提示与异常处理操作详解
Aug 15 Python
使用Pandas将inf, nan转化成特定的值
Dec 19 Python
关于python中的xpath解析定位
Mar 06 Python
Python 操作SQLite数据库的示例
Oct 16 Python
python神经网络 tf.name_scope 和 tf.variable_scope 的区别
May 04 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
教你IIS6的PHP最佳配置方法
2006/09/05 PHP
PHP5 字符串处理函数大全
2010/03/23 PHP
PHP常用特殊运算符号和函数总结(php新手入门必看)
2013/02/02 PHP
php ci框架中加载css和js文件失败的解决方法
2014/03/03 PHP
学习thinkphp5.0验证类使用方法
2017/11/16 PHP
php fread函数使用方法总结
2019/05/28 PHP
关于php开启错误提示的总结
2019/09/24 PHP
JavaScript delete 属性的使用
2009/10/08 Javascript
jquery.ui.draggable中文文档
2009/11/24 Javascript
jqgrid 简单学习笔记
2011/05/03 Javascript
JavaScript 原型继承
2011/12/26 Javascript
一个封装js代码-----展开收起效果示例
2013/07/03 Javascript
javascript和HTML5利用canvas构建猜牌游戏实现算法
2013/07/17 Javascript
javascript中使用正则计算中文长度的例子
2014/04/29 Javascript
jQuery学习笔记之回调函数
2016/08/15 Javascript
巧用数组制作图片切换js代码
2016/11/29 Javascript
NodeJs中express框架的send()方法简介
2017/06/20 NodeJs
使用OPENLAYERS3实现点选的方法
2020/09/24 Javascript
react-native-fs实现文件下载、文本存储的示例代码
2017/09/22 Javascript
在小程序中使用Echart图表的示例代码
2018/08/02 Javascript
JS一次前端面试经历记录
2020/03/19 Javascript
8个非常实用的Vue自定义指令
2020/12/15 Vue.js
简单的连接MySQL与Python的Bottle框架的方法
2015/04/30 Python
Python 修改列表中的元素方法
2018/06/26 Python
Python 实现域名解析为ip的方法
2019/02/14 Python
Django RBAC权限管理设计过程详解
2019/08/06 Python
python接口自动化如何封装获取常量的类
2019/12/24 Python
Python常用模块sys,os,time,random功能与用法实例分析
2020/01/07 Python
tensorflow dataset.shuffle、dataset.batch、dataset.repeat顺序区别详解
2020/06/03 Python
CSS3实现可关闭的下拉手风琴菜单效果
2015/08/31 HTML / CSS
密封类可以有虚函数吗
2014/08/11 面试题
影视制作岗位职责
2013/12/04 职场文书
2015秋季小学开学寄语
2015/05/27 职场文书
2016年党校科级干部培训班学习心得体会
2016/01/06 职场文书
详解使用 CSS prefers-* 规范提升网站的可访问性与健壮性
2021/05/25 HTML / CSS
php访问对象中的成员的实例方法
2021/11/17 PHP