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程序员鲜为人知但你应该知道的17个问题
Jun 04 Python
Python正则表达式匹配HTML页面编码
Apr 08 Python
python对html代码进行escape编码的方法
May 04 Python
Python 详解基本语法_函数_返回值
Jan 22 Python
用Python写一个模拟qq聊天小程序的代码实例
Mar 06 Python
python3人脸识别的两种方法
Apr 25 Python
python django model联合主键的例子
Aug 06 Python
基于Python实现船舶的MMSI的获取(推荐)
Oct 21 Python
pytorch实现mnist数据集的图像可视化及保存
Jan 14 Python
Python制作数据预测集成工具(值得收藏)
Aug 21 Python
Python+OpenCV检测灯光亮点的实现方法
Nov 02 Python
Python爬虫之Selenium实现窗口截图
Dec 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
PHP限制页面只能在微信自带浏览器访问的代码
2014/01/15 PHP
跟我学Laravel之配置Laravel
2014/10/15 PHP
PHP配置把错误日志以邮件方式发送方法(Windows系统)
2015/06/23 PHP
Yii2实现UploadedFile上传文件示例
2017/02/15 PHP
利用PHP_XLSXWriter代替PHPExcel的方法示例
2017/07/16 PHP
PHP实现的装箱算法示例
2018/06/23 PHP
通过实例解析PHP数据类型转换方法
2020/07/11 PHP
用jscript启动sqlserver
2007/06/21 Javascript
JavaScript读取中文cookie时的乱码问题的解决方法
2009/10/14 Javascript
javascript 窗口加载蒙板 内嵌网页内容
2010/11/19 Javascript
Javascript获取当前日期的农历日期代码
2014/10/08 Javascript
再分享70+免费的jquery 图片滑块效果插件和教程
2014/12/15 Javascript
Bootstrap 组件之按钮(二)
2016/05/11 Javascript
原生js仿jquery一些常用方法(必看篇)
2016/09/20 Javascript
js实现带进度条提示的多视频上传功能
2020/12/13 Javascript
jQuery Datatable 多个查询条件自定义提交事件(推荐)
2017/08/24 jQuery
JS实现简单的表格增删
2020/01/16 Javascript
vue 动态组件(component :is) 和 dom元素限制(is)用法说明
2020/09/04 Javascript
[00:17]游戏风云独家报道:DD赛后说出数字秘密 吓死你们啊!
2014/07/13 DOTA
[01:09]DOTAPLUS——DOTA2的新时代
2018/04/04 DOTA
Python开发的实用计算器完整实例
2017/05/10 Python
Python爬虫实现全国失信被执行人名单查询功能示例
2018/05/03 Python
python破解zip加密文件的方法
2018/05/31 Python
pandas 数据归一化以及行删除例程的方法
2018/11/10 Python
Cython编译python为so 代码加密示例
2019/12/23 Python
Python发送邮件封装实现过程详解
2020/05/09 Python
css背景图片的背景裁切、背景透明度、背景变换等效果运用
2012/12/24 HTML / CSS
Jones Bootmaker官网:优质靴子和鞋子在线
2020/11/30 全球购物
三字经教学反思
2014/04/26 职场文书
法制宣传月活动总结
2014/04/29 职场文书
电视节目策划方案
2014/05/16 职场文书
党员公开承诺书内容
2014/05/20 职场文书
出差报告格式模板
2014/11/06 职场文书
PHP获取学生成绩的方法
2021/11/17 PHP
Python Pandas读取Excel日期数据的异常处理方法
2022/02/28 Python
如何基于python实现单目三维重建详解
2022/06/25 Python