前面有写一篇是用xlrd操作excel的,这一篇是使用win32com来进行操作excel,个人推荐使用win32com。

要使用win32com组件,也需要先导入win32com包。

# -*- coding:utf-8 -*-
__author__ = u'harry' import win32com
from win32com.client import Dispatch,constants
import sys
import os
sys.path.append(os.path.dirname(os.path.dirname(__file__)))# Excel表格中测试结果底色
OK_COLOR = 0xffffff
False_COLOR = 0xff
# NT_COLOR=0xffff
NT_COLOR = 0xC0C0C0 # Excel表格中测试结果汇总显示位置
TESTTIME = [1, 14]
TESTRESULT = [2, 14] # Excel模版设置
# self.titleindex=3 #Excel中测试用例标题行索引
# self.casebegin =4 #Excel中测试用例开始行索引
# self.argbegin =3 #Excel中参数开始列索引
# self.argcount =8 #Excel中支持的参数个数
class excel():
# def __init__(self, sFile, dtitleindex=3, dcasebegin=4, dargbegin=3, dargcount=8):
def __init__(self, sFile):
self.xlApp = win32com.client.Dispatch('Excel.Application') # MS:Excel WPS:et
try:
self.book = self.xlApp.Workbooks.Open(sFile)
except:
print(u"打开文件失败")
exit() def close(self):
# self.book.Close(SaveChanges=0)
#self.book.Save()
self.book.Close(SaveChanges=0)
# self.xlApp.Quit()
del self.xlApp def read(self, iSheet, iRow, iCol):
try:
sht = self.book.Worksheets(iSheet)
sValue = str(sht.Cells(iRow, iCol).Value)
except:
self.close()
print(u'读取数据失败')
exit()
# 去除'.0'
if sValue[-2:] == '.0':
sValue = sValue[0:-2]
return sValue def write(self, iSheet, iRow, iCol, sData):
try:
sht = self.book.Worksheets(iSheet)
sht.Cells(iRow, iCol).Value = sData # .decode("utf-8")
if sData == "Failed":
sht.Cells(iRow, iCol).Interior.Color = False_COLOR
self.book.Save()
else:
sht.Cells(iRow, iCol).Interior.Color = OK_COLOR
self.book.Save()
except Exception:
self.close(SaveChanges=0)
print(u'写入数据失败:'+Exception)
exit() '''
excelpath = 'D:\\python\\DATA\\TestCase1.xls'
test = excel(excelpath)
test.write(2, 11, 7,"aaa")
test.close()
'''

python3 读取写入excel操作-win32com的更多相关文章

  1. 使用C#实现读取/写入Excel表

    C#实现写入Excel表 using System; using System.Reflection; using System.IO; using Microsoft.Office.Interop. ...

  2. JXL读取写入excel表格数据

    问题描述: 使用java的jxl包创建.写入excel表格数据 问题解决: (1)说明 (2)写入execel数据 注: 以上是写入数据需要调用的函数接口 注: 具体接口调用过程,如上所示 (3)读取 ...

  3. JXL读取,写入Excel

    JXL读取,写入Excel2003 相关阅读:poi 读写excel2003:http://www.cnblogs.com/gavinYang/p/3576739.htmlpoi 读写excel200 ...

  4. python(写入excel操作-xlwt模块)

    一.安装xlwt模块 pip install xlwt 二.excel写入操作 这种方式只能新增或者覆盖文件写入 import xlwt # 创建一个workbook 设置编码 workbook = ...

  5. python(写入 excel 操作 xlwt 模块)

    一.安装 xlwt 模块 pip install xlwt 二.excel 写入操作 这种方式只能新增或者覆盖文件写入 import xlwt # 创建一个workbook 设置编码 workbook ...

  6. POI读取/写入Excel文件

    import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io ...

  7. python xlwt写入excel操作

    引用https://www.cnblogs.com/python-robot/p/9958352.html 安装 $ pip install xlwt 例子: import xlwt # 创建一个wo ...

  8. Python xlrd xlwt 读取写入Excel.

    import xlrd import xlwt #读取 xlrd.Book.encoding = "gbk" wb = xlrd.open_workbook(filename='s ...

  9. sql sever读取写入Excel总结

    主要用到openrowset,opendatasource系统函数,这两个函数任意一个都能完成任务 用这种方法可以实现Excel和sqlserver表之间的相互导入导出. 如果使用openrowset ...

随机推荐

  1. Android开发之清除缓存功能实现方法,可以集成在自己的app中,增加一个新功能。

    作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985 Android开发之清除缓存功能实现方法,可以集成在自己的app中,增加一个新功能. 下面是一个效果图 ...

  2. gcd(a,b) 复杂度证明

    (b,a%b) a%b<=min(b,a%b)/2 a>=b时每次至少缩减一半 a<b时下次a>b 所以复杂度最多2log(max(a,b)) 证明:a%b<=min(a ...

  3. Spine学习三 - 同时播放两个动画

    这个效果和 Unity的动画分层有点儿像,比如 一个人有一个跑的动画,还有一个站在原地挥手的动画,Unity可以通过动画分层,让人物只需要使用这两个动画实现边跑边挥手的动画效果. 首先介绍一下Spin ...

  4. HDU-4417-Super Mario(主席树解法)

    Mario is world-famous plumber. His “burly” figure and amazing jumping ability reminded in our memory ...

  5. 深入了解Redis【一】源码下载与参考资料准备

    引言 一直在使用redis,但是却没有系统的了解过它的底层实现,准备边学习边记录,深入了解redis. 打算分析以下几个方面: redis的基本类型及底层原理与java对比,每种数据类型的使用场景 r ...

  6. java初探(1)之秒杀的业务简单实现

    前言 秒杀的业务场景广泛存在于电商当中,即有一个倒计时的时间限制,当倒计时为0时,秒杀开始,秒杀之后持续很小的一段时间,而且秒杀的商品很少,因此会有大量的顾客进行购买,会产生很大的并发量,从而创造技术 ...

  7. servlet web项目连接数据库报错

    报错信息类似这样: Wed May 27 14:15:54 CST 2020 WARN: Establishing SSL connection without server's identity v ...

  8. Count(*) 与 count(field) 一样吗?

    有这么个表: 执行 select count(*) from hy_test select count(deptno) from hy_test 都得到 5 但执行 select count(name ...

  9. JavaScript五中迭代方法小解

    ECMAScript 为数组定义了五个迭代方法.每个方法都接收两个参数:要在每一项上运行的函数和(可选的)运行该函数的作用域对象——影响this的值.传入这些方法中的函数会接收三个参数:数组项的值.该 ...

  10. Cloudera Manager和CDH安装部署

    本次安装采用离线安装的方式,需要提前下载好需要的包. 1. 准备工作 1.1 环境说明 操作系统:RedHat企业级Linux6.5 64-bit Cloudera Manager:5.8.4 CDH ...