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抓取Discuz!用户名脚本代码
Dec 30 Python
python多进程操作实例
Nov 21 Python
使用Python编写一个简单的tic-tac-toe游戏的教程
Apr 16 Python
在Python的web框架中配置app的教程
Apr 30 Python
python3 与python2 异常处理的区别与联系
Jun 19 Python
python 环境搭建 及python-3.4.4的下载和安装过程
Jul 20 Python
python多线程与多进程及其区别详解
Aug 08 Python
wxPython:python首选的GUI库实例分享
Oct 05 Python
tensorflow实现打印ckpt模型保存下的变量名称及变量值
Jan 04 Python
python和c语言哪个更适合初学者
Jun 22 Python
Python测试框架:pytest学习笔记
Oct 20 Python
详解Python中下划线的5种含义
Jul 15 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 修改、增加xml结点属性的实现代码
2013/10/22 PHP
PHP单例模式简单用法示例
2017/06/23 PHP
php装饰者模式简单应用案例分析
2019/10/23 PHP
Javascript操纵Cookie实现购物车程序
2006/11/23 Javascript
防止文件缓存的js代码
2013/01/10 Javascript
JavaScript解析URL参数示例代码
2013/08/12 Javascript
js函数内变量的作用域分析
2015/01/12 Javascript
JavaScript正则表达式中的ignoreCase属性使用详解
2015/06/16 Javascript
js获取表格的行数和列数的方法
2015/10/23 Javascript
深入分析Javascript事件代理
2016/01/30 Javascript
浅谈DOCTYPE对$(window).height()取值的影响
2016/07/21 Javascript
jQuery实现的图片轮播效果完整示例
2016/09/12 Javascript
jQuery flip插件实现的翻牌效果示例【附demo源码下载】
2016/09/20 Javascript
angular基于路由控制ui-router实现系统权限控制
2016/09/27 Javascript
JS实现自动阅读单词(有道单词本添加功能)
2016/11/14 Javascript
js经验分享 JavaScript反调试技巧
2018/03/10 Javascript
angular4中*ngFor不能对返回来的对象进行循环的解决方法
2018/09/12 Javascript
D3.js(v3)+react 实现带坐标与比例尺的散点图 (V3版本)
2019/05/09 Javascript
微信小程序图表插件wx-charts用法实例详解
2019/05/20 Javascript
vue组件传值的实现方式小结【三种方式】
2020/02/05 Javascript
js实现简单放大镜效果
2020/03/07 Javascript
JavaScript中的this基本问题实例小结
2020/03/09 Javascript
详细介绍Python函数中的默认参数
2015/03/30 Python
python如何将图片转换为字符图片
2020/08/19 Python
python复制文件到指定目录的实例
2018/04/27 Python
Python中IP地址处理IPy模块的方法
2019/08/16 Python
Python 实现的 Google 批量翻译功能
2019/08/26 Python
Django实现随机图形验证码的示例
2020/10/15 Python
Python GUI之tkinter窗口视窗教程大集合(推荐)
2020/10/20 Python
Space NK美国站:英国高端美妆护肤商城
2017/05/22 全球购物
投资合作协议书范本
2014/04/17 职场文书
学生偷窃检讨书
2014/09/25 职场文书
爱心募捐感谢信
2015/01/22 职场文书
逃课检讨书范文
2015/05/06 职场文书
PyTorch的Debug指南
2021/05/07 Python
Python批量解压&压缩文件夹的示例代码
2022/04/04 Python