win32com

win32com

import win32com.client

#打开excel(参数有 Excel,wps,et,ket 等)
excel = win32com.client.Dispatch("Excel.Application")

#excel True可见 False不可见
excel.Visible=True

#消息框 True可见 False不可见
xlApp.DisplayAlerts=False

#添加保存文件--桌面myfile.xlsx
wb = excel.Workbooks.Add ()
xlwb.Worksheets.Add(After=xlwb.Worksheets(1)).Name = "表名" #在后面加
wb.SaveAs(r'C:\Users\work\Desktop\myfile.xlsx')

#Workbooks.Open 参数说明
#FileName: 要打开的工作簿的路径
#UpdateLinks:指定更新文件中外部引用(链接)的方式
#0: 不更新任何引用
#1: 更新外部引用,但不更新远程引用
#2: 更新远程引用,但不更新外部引用
#3: 同时更新外部引用与远程引用
#ReadOnly:True 为只读模式打开工作簿
#Format:由此参数指定分隔符。如果省略此参数,则使用当前的			     分隔符
#Password:打开受保护工作簿所需的密码
#WriteResPassword:写入受保护工作簿所需的密码
xlwb=xlApp.Workbooks.Open(Filename=path,UpdateLinks=0,
    ReadOnly=False,Format=None,Password=open_password,WriteResPassword=write_password)

#获取某个Sheet页数据(页数从1开始)
sheet_data=xlwb.Worksheets(1).UsedRange.Value

#获取某个单元格数据 
    '''
    最好设置单元格格式为文本格式,默认格式读取
    全数字时,会在后面带上小数点:
    如单元格中为123,读取出来可能为123.0
    sheet_data[行][列]
    行,列都是从0开始计算
    '''
data=sheet_data[0][0]

'''获取行列数'''
#行数
rows = sheet_data.UsedRange.Rows.Count
rows = len(sheet_data.Rang(sheet_data.Cells(1,1),sheet_data.Cells(1,1).End(-4121)))	#获取第一个单元格整列行数
rows = sheet_data.Range("A1").CurrentRegion.Rows.Count #获取A1整列行数
print(rows)

#列数
cols = sheet_data.UsedRange.Columns.Count
//有几个方法同上(获取行数的方法)
print(cols)


'''获取单元格的值'''
cell_data=sheet_data.Cells(1,1).Value #行列序号从1开始
print(cell_data)

'''写入单元格'''
sheet_data.Cells(1,1).Value="名称"

'''写入区域单元格'''
sheet_data.Range("A1","G20").Value = data #写入单元格区域,data以二维元组格式

'''设置单元格格式'''
sheet_data.Cells(1, 1).Font.Size = 15   #字体大小
sheet_data.Cells(1, 1).Font.ColorIndex = 3   #字体颜色
sheet_data.Cells(1, 1).Font.Bold = True #是否粗体
sheet_data.Cells(1, 1).Name = "Arial"   #字体类型
sheet_data.Cells(1, 2).Interior.ColorIndex = 3 #单元格颜色
sheet_data.UsedRange.BorderAround(1,4)  #设置最外层边框
sheet_data.Columns.Borders.LineStyle = 1 #设置边框(1为实线,0为虚线)
sheet_data.Columns.HorizontalAlignment = 3   #设置全部水平居中
sheet_data.Range("","").VerticalAlignment = 2  #设置区域垂直居中
sheet_data.Cells.HorizontalAlignment = -4108  #居中显示
sheet_data.Columns.AutoFit()     #自动适应列宽
sheet_data.Range("A:A").NumberFormatLocal = "yyyy/m/d" #设置A列日期格式

'''设置行高'''
sheet_data.Rows(1).RowHeight = 50   #行高
'''获取某个区域的数据,返回为一个二维元组'''
range_data=sheet_data.Range("A1", "B3").Value
print(range_data)

'''获取sheet页名'''
for s in xlwb.Worksheets:
	s.Name
	
'''删除sheet页'''
xlApp.Worksheets(1).Delete()   #删除sheet页

'''删除行列,序号从1开始'''
sheet_data.Rows(1).Delete()#删除行
sheet_data.Columns(1).Delete()#删除列

'''插入单行'''
range_obj = sheet_data.Range('A2')
range_obj.EntireRow.Insert()

'''复制粘贴/剪切'''
sheet_data1.Range("A1:G20").Copy() #复制A1到G20的区域
sheet_data2.Paste(sheet_data2.Range("A1")) #从A1开始粘贴
sheet_data.Range("","").PasteSpecial(-4163)  #粘贴格式为 值

'''复制粘贴sheet页'''
sheet_data = xlwb.Workshhets(1)
sheet_data.Copy(None,new_data)  #new_data为粘贴到的sheet页


'''插入单元格'''
sheet_data1.Range("B:B").Copy() #复制B的区域
sheet_data2.Range("A:A").Insert() #插入A列

'''插入截图'''
#1,1为图片地址等插入,0,0为左上位置,400,400为图片大小
sheet_data.Shapes.Addpicture(图片名,1,1,0,0,400,400)

'''查找字符所在行列'''
sheet_data.Columns(1).Find("姓名").Row  #在第一列找到姓名字符返回行号
sheet_data.Rows(1).Find("姓名").Column  #在第一行找到姓名字符返回列号

#保存excel
xlwb.Save()
#关闭Excel
xlwb.Close()
xlApp.Quit()

你可能感兴趣的:(win32com/pandas,win32com操作)