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实现生成简单的Makefile文件代码示例
Mar 10 Python
Python的装饰器用法学习笔记
Jun 24 Python
Python3安装Pymongo详细步骤
May 26 Python
python3 读写文件换行符的方法
Apr 09 Python
Python使用sorted对字典的key或value排序
Nov 15 Python
Python开发网站目录扫描器的实现
Feb 21 Python
Python学习笔记之Break和Continue用法分析
Aug 14 Python
pyqt5 QScrollArea设置在自定义侧(任何位置)
Sep 25 Python
python Event事件、进程池与线程池、协程解析
Oct 25 Python
pyqt5中动画的使用详解
Apr 01 Python
利用Python如何画一颗心、小人发射爱心
Feb 21 Python
Python页面加载的等待方式总结
Feb 28 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遍历文件夹所有文件子文件夹函数代码
2013/11/27 PHP
PHP时间戳格式全部汇总 (获取时间、时间戳)
2016/06/13 PHP
PHP实现表单提交时去除斜杠的方法
2016/12/26 PHP
简单实现php上传文件功能
2017/09/21 PHP
在PHP中输出JS语句以及乱码问题的解决方案
2019/02/13 PHP
javascript add event remove event
2008/04/07 Javascript
JavaScript高级程序设计阅读笔记(五) ECMAScript中的运算符(一)
2012/02/27 Javascript
Jquery easyui 下loaing效果示例代码
2013/08/12 Javascript
javascript实现 百度翻译 可折叠的分享按钮列表
2015/03/12 Javascript
基于Jquery代码实现支持PC端手机端幻灯片代码
2015/11/17 Javascript
AngularJS 日期格式化详解
2015/12/23 Javascript
基于jQuery Ajax实现上传文件
2016/03/24 Javascript
Javascript将数值转换为金额格式(分隔千分位和自动增加小数点)
2016/06/22 Javascript
AngularJS表单基本操作
2017/01/09 Javascript
BootStrap表单验证 FormValidation 调整反馈图标位置的实例代码
2017/05/17 Javascript
详解vuejs几种不同组件(页面)间传值的方式
2017/06/01 Javascript
Avalonjs双向数据绑定与监听的实例代码
2017/06/23 Javascript
jQuery实现的点击按钮改变样式功能示例
2018/07/21 jQuery
vue prop属性传值与传引用示例
2019/11/13 Javascript
详解Django通用视图中的函数包装
2015/07/21 Python
python魔法方法-属性访问控制详解
2016/07/25 Python
python分析作业提交情况
2017/11/22 Python
Python找出最小的K个数实例代码
2018/01/04 Python
Python绘制热力图示例
2019/09/27 Python
Python使用Paramiko控制liunx第三方库
2020/05/20 Python
Python操作PostgreSql数据库的方法(基本的增删改查)
2020/12/29 Python
瑞典手机壳品牌:Richmond & Finch
2018/04/28 全球购物
豪华床上用品 :Jennifer Adams
2019/09/15 全球购物
有个性的自我评价范文
2013/11/15 职场文书
应届生的求职推荐信范文
2013/11/30 职场文书
物流创业计划书
2014/02/01 职场文书
保护环境建议书
2014/03/12 职场文书
民事起诉书范本
2015/05/19 职场文书
Nginx服务器添加Systemd自定义服务过程解析
2021/03/31 Servers
my.ini优化mysql数据库性能的十个参数(推荐)
2021/05/26 MySQL
详解Mysql数据库平滑扩容解决高并发和大数据量问题
2022/05/25 MySQL