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定时采集摄像头图像上传ftp服务器功能实现
Dec 23 Python
Python之PyUnit单元测试实例
Oct 11 Python
使用Python编写提取日志中的中文的脚本的方法
Apr 30 Python
详解Swift中属性的声明与作用
Jun 30 Python
简单谈谈Python中的元祖(Tuple)和字典(Dict)
Apr 21 Python
python中字符串数组逆序排列方法总结
Jun 23 Python
关于python中密码加盐的学习体会小结
Jul 15 Python
python如何实现不可变字典inmutabledict
Jan 08 Python
Python3.9 beta2版本发布了,看看这7个新的PEP都是什么
Jun 10 Python
pytorch随机采样操作SubsetRandomSampler()
Jul 07 Python
Python从MySQL数据库中面抽取试题,生成试卷
Jan 14 Python
python tkinter实现定时关机
Apr 21 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
现磨咖啡骗局!现磨咖啡=新鲜咖啡?现磨咖啡背后的猫腻你不懂!
2019/03/28 冲泡冲煮
用PHP制作静态网站的模板框架
2006/10/09 PHP
php数组函数序列 之array_count_values() 统计数组中所有值出现的次数函数
2011/10/29 PHP
php多功能图片处理类分享(php图片缩放类)
2014/03/14 PHP
PHP-Java-Bridge使用笔记
2014/09/22 PHP
Yii2使用$this-&gt;context获取当前的Module、Controller(控制器)、Action等
2017/03/29 PHP
PHP getDocNamespaces()函数讲解
2019/02/03 PHP
php实现将数组或对象写入到文件的方法小结【三种方法】
2020/04/22 PHP
JSON 数字排序多字段排序介绍
2013/09/18 Javascript
JQueryiframe页面操作父页面中的元素与方法(实例讲解)
2013/11/19 Javascript
NODE.JS加密模块CRYPTO常用方法介绍
2014/06/05 Javascript
Node.js中的缓冲与流模块详细介绍
2015/02/11 Javascript
jQuery简单实现QQ空间点赞已经取消点赞
2015/04/02 Javascript
Javascript通过overflow控制列表闭合与展开的方法
2015/05/15 Javascript
Easyui Treegrid改变默认图标的方法
2016/04/29 Javascript
JavaScript实现九九乘法表的简单实例
2016/06/07 Javascript
JS动态给对象添加属性和值的实现方法
2016/10/21 Javascript
浅析Javascript中双等号(==)隐性转换机制
2017/10/27 Javascript
React styled-components设置组件属性的方法
2018/08/07 Javascript
JS pushlet XMLAdapter适配器用法案例解析
2020/10/16 Javascript
[42:04]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#3Secret VS OG第一局
2016/03/03 DOTA
Python多线程下载文件的方法
2015/07/10 Python
Python 读写文件和file对象的方法(推荐)
2016/09/12 Python
深入理解python中的atexit模块
2017/03/07 Python
基于python+selenium的二次封装的实现
2020/01/06 Python
pytorch梯度剪裁方式
2020/02/04 Python
pytorch简介
2020/11/11 Python
python绘制汉诺塔
2021/03/01 Python
Tessabit美国:集世界奢侈品和设计师品牌的意大利精品买手店
2020/06/29 全球购物
初中生学习的自我评价
2013/11/14 职场文书
写给女朋友的道歉信
2014/01/12 职场文书
上课玩手机检讨书
2014/02/08 职场文书
放假通知范文
2015/04/14 职场文书
2016年安全月活动总结
2016/04/06 职场文书
创业计划书之冷饮店
2019/09/27 职场文书
如何用H5实现好玩的2048小游戏
2022/07/23 HTML / CSS