python Win32保存

时间:2012-07-24 01:08:34

标签: python win32com

我正在使用python打开excel文件并进行一些更改,然后我需要保存它。除了保存部分,我可以完成所有工作。如何让python保存文件。如果我保存手动,我会弹出框,我可以点击保存,但我不想手动点击保存。我希望python只保存它并关闭excel。我需要帮助,这就是我所拥有的。但它不会起作用。我可以把它保存但不能关闭????

 import win32com.client
 import os


 xl = win32com.client.DispatchEx("Excel.Application")
 xl.workbooks.open("C:\file.xlsm")
 xl.run("file.xlsm!macro")
 xl.Visible = True
 xl.save = true
 xl.close

2 个答案:

答案 0 :(得分:4)

您需要获取工作簿对象的挂钩并将save作为参数应用于close方法:

xl = win32com.client.DispatchEx("Excel.Application")
wb = xl.workbooks.open("C:\file.xlsm")
xl.run("file.xlsm!macro")
xl.Visible = True
wb.Close(savechanges=1)
xl.Quit()

答案 1 :(得分:0)

有同样的问题,加上获取公式的值, 这就是我做的 (这部分是在我从不同的地方放入公式并保存excel电子表格之后):

     import win32com.client as win

     xl=win.Dispatch('Excel.Application') 
     wb = xl.Workbooks.Open('filepath')
     xl.Visible = True
     wb.Close(SAVE_ATTRIBUTE_VALUES)
     xl.Quit()

然后当您打开电子表格或致电:

     wb = openpyxl.load_workbook('filepath', data_only=True)
     ws = wb.get_sheet_by_name('Sheet1')
     print ws['A1'].value

它为您提供使用公式加载的任何值,但您可能需要添加一些

    time.sleep(sek) 

让它在关闭之前等待加载值