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怎么学好python?
Oct 07 Python
Python2.5/2.6实用教程 入门基础篇
Nov 29 Python
Python读写txt文本文件的操作方法全解析
Jun 26 Python
python如何让类支持比较运算
Mar 20 Python
python之从文件读取数据到list的实例讲解
Apr 19 Python
Django urls.py重构及参数传递详解
Jul 23 Python
python实现屏保程序(适用于背单词)
Jul 30 Python
flask 实现上传图片并缩放作为头像的例子
Jan 09 Python
如何基于Python实现数字类型转换
Feb 07 Python
Python 读取有公式cell的结果内容实例方法
Feb 17 Python
Python yield的用法实例分析
Mar 06 Python
Python基础之数据类型知识汇总
May 18 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
一个改进的UBB类
2006/10/09 PHP
php array_walk() 数组函数
2011/07/12 PHP
PHP实现模仿socket请求返回页面的方法
2014/11/04 PHP
Laravel 5框架学习之向视图传送数据(进阶篇)
2015/04/08 PHP
WIFI万能钥匙密码查询接口实例
2015/09/28 PHP
yii2 页面底部加载css和js的技巧
2016/04/21 PHP
php实现基于PDO的预处理示例
2017/03/28 PHP
PHP魔术方法之__call与__callStatic使用方法
2017/07/23 PHP
对xmlHttp对象方法和属性的理解
2011/01/17 Javascript
DOM_window对象属性之--clipboardData对象操作代码
2011/02/03 Javascript
关于Javascript 对象(object)的prototype
2014/05/09 Javascript
js获取当前页面的url网址信息
2014/06/12 Javascript
JavaScript实现三阶幻方算法谜题解答
2014/12/29 Javascript
jQuery实现文件上传进度条特效
2015/08/12 Javascript
浅析jQuery Mobile的初始化事件
2015/12/03 Javascript
深入理解JavaScript 函数
2016/06/06 Javascript
jQuery通过ajax请求php遍历json数组到table中的代码(推荐)
2016/06/12 Javascript
详解EasyUi控件中的Datagrid
2017/08/23 Javascript
使用puppeteer爬取网站并抓出404无效链接
2018/12/20 Javascript
微信小程序开发(一):服务器获取数据列表渲染操作示例
2020/06/01 Javascript
vue中的.$mount('#app')手动挂载操作
2020/09/02 Javascript
JavaScript实现点击图片换背景
2020/11/20 Javascript
Vue router传递参数并解决刷新页面参数丢失问题
2020/12/02 Vue.js
[35:34]Liquid vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python分布式环境下的限流器的示例
2017/10/26 Python
解决出现Incorrect integer value: '' for column 'id' at row 1的问题
2017/10/29 Python
Python实战之制作天气查询软件
2019/05/14 Python
Django中ORM找出内容不为空的数据实例
2020/05/20 Python
借助HTML5 Canvas来绘制三角形和矩形等多边形的方法
2016/03/14 HTML / CSS
HTML5使用ApplicationCache接口实现离线缓存技术解决离线难题
2012/12/13 HTML / CSS
用html5实现语音搜索框的方法
2014/03/18 HTML / CSS
中层干部竞聘演讲稿
2014/05/15 职场文书
2014年保育员工作总结
2014/12/02 职场文书
写给老婆的保证书
2015/02/27 职场文书
2015年初中教师个人工作总结
2015/07/21 职场文书
Android Flutter实现3D动画效果示例详解
2022/04/07 Java/Android