#coding:utf-8
from win32com.client import Dispatch
import os
class Excel:
'''
def __init__(self): 这里只定义,以及是否可见,是否显示警告
初始化属性 xls
def __open_new(self, filename = None) 私有函数,打开一个文件,或新建
def get_workbooks(self, filename ='') 获得工作薄 目标文件已打开切 换到 目标文件,未打开则 新建 目标文件,无目标文件则 新建 空文件
初始化属性 xlBook filename rows cols xlbk_name
def close(self): 退出
def save(self, newfilename=None): 保存
'''
xlBook = '' #this is the cur workbook
filename = '' #the full path of the file
sht_name = '' # the name of the current worksheet
xlbk_name = '' #the name of the workbook
rows = '' #the row number is
cols = '' #the col number is
# 初始化excel应用程序对象,和变量
# 无参数
def __init__(self):
self.xls = Dispatch("Excel.Application")
self.xls.Visible = 1
self.xls.DisplayAlerts = 0 # 后台运行,不显示,不警告
# 打开文件或者新建文件(如果不存在的话)
def __open_new(self, filename = None):
if os.path.isfile(str(filename)) is True:
self.filename = filename
xlBook = self.xls.Workbooks.Open(filename)
else:
xlBook = self.xls.Workbooks.Add()
self.xlBook = xlBook
self.xlbk_name = xlBook.name.split('.')[0]
self.get_cols()
self.get_rows()
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.xls
def get_workbooks(self, filename =''):
if os.path.isfile(filename): #如果输入的是正确的文件路径则:
#获得文件名带csv后缀
name = os.path.split(filename)[1]
for i in self.xls.workbooks: #获得已打开的工作薄
if i.name == name: #如果当中有打开的
xlBook = i
xlbk_name = i.name.split('.')[0]
else: #检测是否已设置xlBook变量,不存在则打开文件
exists = 'xlBook' in locals().keys()
if exists:
pass #print(locals().keys())
else:
self.__open_new(filename)
else: #不是文件的情况
if filename == '': #如果没有输入,则只显示当前打开的文件和路径
for i in self.xls.workbooks:
print(i.name)
print(i.fullname)
self.__open_new()
else: #不是空
for i in self.xls.workbooks: #检测是否已打开
if i.name == filename:
xlBook = i
xlbk_name = i.name.split('.')[0]
else: #检测是否找到文件名,没有则提示出错
exists = 'xlBook' in locals().keys()
if exists:
pass #print(locals().keys())
else:
print('the name is Error, retry again')
exists = 'xlBook' in locals().keys()
if exists:
self.xlBook = xlBook
self.filename = xlBook.fullname
self.xlbk_name = xlbk_name
self.get_cols()
self.get_rows()
# *****************************************************************************
excel
最新推荐文章于 2025-04-27 17:00:19 发布