3

我正在使用 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
4

2 回答 2

6

您需要获取工作簿对象的挂钩并将 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()
于 2012-07-24T01:44:35.960 回答
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) 

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

于 2016-09-07T14:35:05.123 回答