我有一个使用win32修改,刷新源代码,保存并通过电子邮件发送Excel工作簿的Python脚本。我想在保存和发送之前禁用或删除工作簿中使用的查询和连接。
我尝试通过win32引用QueryTables和Connections,但是都说我正在引用的对象(下面的eomrng工作表)没有Delete或Remove属性。下面的代码被严重截断以专注于相关区域;我需要的代码段将放在“ ##保存并关闭”部分之前。
from win32com.client import constants
from datetime import datetime, timedelta
from dateutil.relativedelta import relativedelta
##Launch Excel
Xlsx = win32com.gencache.EnsureDispatch('Excel.Application')
##Variables
last_month = datetime.now() - relativedelta(months=1)
mo_yr = format(last_month, '%B %Y')
src_book = str(r'Filepath')
new_book = str(r'Filepath ' + mo_yr + '.xlsx')
book = Xlsx.Workbooks.Open(src_book)
s1 = 'Month End Report'
##Open and update workbook
book.RefreshAll()
Xlsx.CalculateUntilAsyncQueriesDone()
eomrng = book.Worksheets(s1)
eomrng.Activate()
eomrng.Range("C8").Select()
##Save and close workbook
book.SaveAs(Filename=new_book, FileFormat=51)
book.Close()
Xlsx.Quit()
##Cleanup win32 task
del book
del Xlsx
##Email stuff here
我想要的是发送带有查询结果的工作簿,但不带查询和连接,因为该文件将与我们的组织成员共享,而这些成员没有凭据可以连接到我们的DW。