#coding=utf-8

from win32com.client importDispatchimportpywintypes'''查看excel最大行数和列数

打开一个空白新建EXCEL表格,按CTRL+下箭头,可以查看到最大行数;按CTRL+右箭头,

可以查看到最大列标(若想显示列数,可在最右一列的某单元格中输入=column()回车,出现数字就是最大列数)。'''

classExcel:def __init__(self, filename=None):

self.excel= Dispatch('Excel.Application') #打开excel应用程序

self.excel.DisplayAlerts =0

self.excel.Visible=0if filename is notNone:

self.filename=filename

self.workBook=self.excel.Workbooks.Open(filename)else:

self.filename= ''self.workBook= self.excel.Workbooks.Add() #新建excel

#保存excel文件

def save(self, save_path=None):if notsave_path:

self.filename=save_path

self.workBook.SaveAs(save_path)else:

self.workBook.Save()#关闭excel文件

defclose(self):

self.workBook.Close(SaveChanges=0)#添加工作表

def addSheet(self, sheetName=None):

sheet=self.workBook.Sheets.Add()if sheetName is notNone:

sheet.Name=sheetNamedef copySheet(self, srcSheetName, destSheetName=None, before=None):

sheet=self.workBook.WorkSheets(srcSheetName)#在指定工作表的后面插入新的工作表

if before isNone:

sheet.Copy(None, sheet)

newSheet=sheet.Nextif destSheetName is notNone:

newSheet.Name=destSheetName#在指定工作表的前面插入新的工作表

else:

sheet.Copy(before, None)if destSheetName is notNone:

index= before.Index - 1 #所获新插入的工作表所在的位置(工作表的index从1开始)

self.workBook.Sheets(index).Name =destSheetName#删除工作表

defdeleteSheet(self, sheetName):try:

sheet=self.workBook.WorkSheets(sheetName)if sheet is notNone:

sheet.Delete()exceptpywintypes.com_error:pass

#获取指定单元格的内容

defgetCell(self, sheet, row, col):

workSheet=self.workBook.WorkSheets(sheet)returnworkSheet.Cells(row, col).Value#设置单元格内容

defsetCell(self, sheet, row, col, val):

workSheet=self.workBook.WorkSheets(sheet)

workSheet.Cells(row, col).Value=val#获取一块区域的内容

defgetRange(self, sheet, row1, col1, row2, col2):

workSheet=self.workBook.WorkSheets(sheet)returnworkSheet.Range(workSheet.Cells(

row1, col1), workSheet.Cells(row2, col2)).Value#拷贝一块区域

defcopyRange(self, sheet, row1, col1, row2, col2, targetRow, targetCol):

workSheet=self.workBook.WorkSheets(sheet)

srcRange=workSheet.Range(

workSheet.Cells(

row1, col1), workSheet.Cells(

row2, col2))

targetRange=workSheet.Range(

workSheet.Cells(

targetRow, targetCol), workSheet.Cells(

targetRow+ row2 - row1, targetCol + col2 -col1))#targetRange.Value = srcRange.Value

srcRange.Copy(targetRange) #与targetRange.Value = srcRange.Value效果相同

#移动一块区域

defcutRange(self, sheet, row1, col1, row2, col2, targetRow, targetCol):

workSheet=self.workBook.WorkSheets(sheet)

srcRange=workSheet.Range(

workSheet.Cells(

row1, col1), workSheet.Cells(

row2, col2))#方案1

#targetRange = workSheet.Range(workSheet.Cells(targetRow, targetCol), workSheet.Cells(targetRow + row2 - row1, targetCol + col2 - col1))

#targetRange.Value = srcRange.Value

#srcRange.Clear() #清空原区域的值

#方案2

#targetRange = workSheet.Range(workSheet.Cells(targetRow, targetCol), workSheet.Cells(targetRow + row2 - row1, targetCol + col2 - col1))

#srcRange.Cut(targetRange) #直接调用系统函数

#方案3与方案2类似

srcRange.Cut(workSheet.Cells(targetRow, targetCol))#清空指定区域内容

defclearRange(self, sheet, row1, col1, row2, col2):

workSheet=self.workBook.WorkSheets(sheet)

srcRange=workSheet.Range(

workSheet.Cells(

row1, col1), workSheet.Cells(

row2, col2))

srcRange.Clear()#添加图片

defaddPicture(self, sheet, pictureName, left, top, width, height):

workSheet=self.workBook.WorkSheets(sheet)''',

AddPicture(self, Filename=, LinkToFile=,

>, Left=, Top=, Width=

hod of win32com.client.CDispatch instance'''workSheet.Shapes.AddPicture(

pictureName,1, 1, left, top, width, height)#删除指定行

defdeletRow(self, sheet, row):if row < 1 or row > 1048576:returndeleteRow=self.workBook.WorkSheets(sheet).Rows(row)

deleteRow.Delete()#删除指定列

defdeleteCol(self, sheet, col):if col < 1 or col > 16384:returndeleteCol=self.workBook.WorkSheets(sheet).Columns(col)

deleteCol.Delete()

python 删除sheet_python操作excel相关推荐

  1. python 删除sheet_Python操作Excel删除一个Sheet

    在使用Python进行数据分析处理,操作Excel,有时需要删除某个Excel里的某个sheet,这里记录一个我测试成功的一个办法 软件环境: 1.OS:Win 10 64位 2.Python 3.7 ...

  2. Python读取和操作Excel(.xlsx)文件

    Python读取和操作Excel(.xlsx)文件 使用openpyxl库来控制excel文件(即.xlsx为后缀的文件).这里介绍一下excel数据的结构. 打开excel文件后生成一个workbo ...

  3. Python中xlrd操作excel单元格

    学习目标 Python中xlrd操作excel单元格 学习内容 1.获取工作表 sheet=data.sheet_by_index(0) 2.返回单元格对象 sheet.cell(1,2) #返回第二 ...

  4. 【Python基础】python使用openpyxl操作excel

    1.openpyxl库介绍 openpyxl最好用的python操作excel表格库,不接受反驳: openpyxl官网链接:openpyxl官网 openpyxl只支持[.xlsx / .xlsm ...

  5. Python通过pywin32操作Excel

    欢迎关注微信公众号"Python小灶,和我一起每天学习Python新知识" 我的Github地址 需求 Excel现在已经成为生活工作中不可缺少的软件之一,如果你经常使用此软件,或 ...

  6. python—openpyxl自动化操作Excel格式文件(6~10课)

    我有点懒直接截图的 仅个人笔记 复习需要 !!!!!! 文章目录 前言 一.安装库openpyxl 二.python打开及读取Excel表格内容 1.Excel表格基本术语 2.打开及读取表格数据 2 ...

  7. python连接excel_Python操作Excel

    使用python来操作Excel需要用到xlrd和xlwt这两个库,作用是在python中读取和写入excel数据,使用前需要安装和import导入: 1.Python 读 excel数据 使用Pyt ...

  8. python提取excel-Python操作Excel之数据提取

    最近发现excel数据量极大,并且通过简单的数据操作不能提取到我需要的数据,如果单独操作,数据量太大耗时太长. 想着通过简单的方式,并且快速提取数据,就想到了Python. python操作Excel ...

  9. python使用openpyxl操作excel

    目录 1 Excel表格 1.1 表格述语 1.2 表格示例 2 python打开及读取表格内容 2.1打开Excel表格并获取表格名称 2.2 通过sheet名称获取表格 2.3 获取表格的尺寸大小 ...

最新文章

  1. HDU(1856),裸的带权并查集
  2. [转]图解APP的商业模式
  3. nginx限制请求之四:目录进行IP限制
  4. - -(我最近的开发..)
  5. iOS---A valid provisioning profile for this executable was not found
  6. mvn导入jar到库命令
  7. SpringMVC执行流程源码分析
  8. python2.7.15安装步骤_升级到python2.7.15后安装pip
  9. setInterval,setTimeout,clearInterval
  10. MySql联合查询Union
  11. 程序员相亲图鉴,太真实了!
  12. 译DevExpress v16.1更新说明(WinForms篇)
  13. 用PHP抓取淘宝商品的用户晒单评论+图片实例
  14. 怎么使用biopython_使用biopython解析Fasta文件描述
  15. 【深度分析】汽车零部件供应商管理+采购体系
  16. 【neusoft】 Linux 的学习与使用
  17. YC创始合伙人Jessica Livingston七年经验总结:创业路上如何避开这八只拦路虎
  18. 如何自建obs服务器,使用 Nginx+OBS 搭建rmtp直播服务器并进行直播
  19. GC详解---JVM(三)
  20. leetcode17 Sum of Two Integers

热门文章

  1. android电视怎么升级失败,智能电视升级失败,原因都在这里!
  2. 堆载预压弹性变形怎样计算公式_一种风洞洞体堆载预压变形测量工艺的制作方法...
  3. 【codevs30521022】多米诺覆盖,二分图
  4. 11.频域里的卷积——平滑和模糊,2D例子,低通和高通滤波器_2
  5. mysql 空字符串_NULL与MySQL空字符串的区别
  6. msmq 发送到远程专用队列不存在_不知道消息中间件是什么?RabbitMQ从头到尾详解介绍...
  7. matlab时频分析工具箱安装_科研小班 | 加州大学伯克利分校 | 物理、电子工程:MATLAB信号和数据处理课题...
  8. 2017.9.19 Gcd 思考记录
  9. startActivity流程(上)
  10. group by很多字段是不是会很慢_3分钟短文 | MySQL在分组时,把多列合并为一个字段!