利用 pywin32 操作 excel

 from win32com.client import Dispatch
import win32com.client
import time # 获取excel 对象 excel = win32com.client.Dispatch('Excel.Application') """
0代表隐藏对象,但可以通过菜单再显示
-1代表显示对象
2代表隐藏对象,但不可以通过菜单显示,只能通过VBA修改为显示状态
"""
excel.Visible = -1 # 打开excel myBook = excel.Workbooks.Open("e:/接口测试用例.xlsx") # sheet页,可以是序号,也可以是名称
mySheet = myBook.Worksheets("过程结果")
#excel的下标都是从1开始的
#mySheet = myBook.Worksheets(1) time.sleep(2) # 删除行,清除历史数据
mySheet.Rows("2:500").delete
#mySheet.Columns("1").delete # 获取当前sheet页有效的行数
LastRow = mySheet.usedrange.rows.count
print("该sheet页目前已经存在", LastRow, "行") # 获取当前sheet页有效的列数
LastColumn = mySheet.usedrange.columns.count
print(LastColumn) # 焦点转移到sheet页
mySheet.Activate
# 给单元格赋值 Cells(行,列)
mySheet.Cells(2, 2).Value = "使用win32com"
# 设置单元格字体位红色
mySheet.Cells(2, 2).Font.Color = -16776961
# 设置单元格字体为粗体
mySheet.Cells(2, 2).Font.Bold = True
# 设置单元格字体
mySheet.Cells(2, 2).Font.Name = "微软雅黑" time.sleep(1) mySheet.Activate
mySheet.Cells(2, 3).Value = "使用win32com"
# 设置单元格字体位绿色
mySheet.Cells(2, 3).Font.Color = -11489280
mySheet.Cells(2, 3).Font.Bold = True # 获取一个单元格的值
aCellValue=mySheet.Cells(2, 3).Value
print(aCellValue) # 获取一个范围的值,类型为嵌套的list
range_list=mySheet.Range(mySheet.Cells(1, 1), mySheet.Cells(5, 5)).Value # 给一个范围赋值,输入的值应该为嵌套的list
mySheet.Range(mySheet.Cells(6, 1), mySheet.Cells(10, 10)).Value = range_list
# 改变一个范围的属性值
mySheet.Range(mySheet.Cells(6, 1), mySheet.Cells(10, 10)).Font.Color = -11489280 # 如果范围是一行的话,赋值应该使用非嵌套的list,例如:
row_v=(1,2,3,4)
mySheet.Range(mySheet.Cells(11, 1), mySheet.Cells(11, 4)).Value = row_v # 给整个一行赋值,慎用。。。
mySheet.Rows(12).Value = row_v
print(range_list) #单元格添加颜色
WinSheet.Cells(1, 1).Interior.ColorIndex = 3
#或者Range("A1")
WinSheet.Range("A1").Interior.ColorIndex = 3
#3=红色,不同的值代表不同的颜色,可以去查看msdn vba 文档,这就不详细说了 #再是RGB调色方式#Cells 和 Range都可以,Range可以选择一大片区域
WinSheet.Cells(1, 1).Interior.Color = RGB(0, 0, 255)
#或
WinSheet.Range("A1").Interior.Color = RGB(255, 0, 255)
#字体的颜色也是一样
WinSheet.Cells(1, 1).Font.ColorIndex = 3
WinSheet.Cells(1, 1).Font.Color = RGB(0, 0, 255) # 保存
myBook.save # 退出
myBook.close
上一篇:spring上传文件


下一篇:在Java中谈尾递归--尾递归和垃圾回收的比较