我正在使用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
答案 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)
让它在关闭之前等待加载值