使用Python运行宏后如何保存Excel工作簿?

时间:2018-05-31 11:06:55

标签: python excel

python的代码工作,除了它运行后我仍然从excel得到一个框,询问“想要将更改保存到工作簿”我的代码中似乎缺少的是添加一些将保存工作簿的内容最后。我在工作簿中使用RTD函数,这可能是弹出窗口的原因。

这是我使用的python代码。

from __future__ import print_function
import unittest
import os.path
import win32com.client

class ExcelMacro(unittest.TestCase):
    def test_excel_macro(self):
        try:
            xlApp = win32com.client.DispatchEx('Excel.Application')
            xlsPath = os.path.expanduser('C:\Magic Samsung\Watch Samsung\Workbook.xlsm')
            wb = xlApp.Workbooks.Open(Filename=xlsPath)
            xlApp.Run('ArchiveMaster')
            wb.Save()
            xlApp.Quit()
            print("Macro ran successfully!")
        except:
            print("Error found while running the excel macro!")
            xlApp.Quit()
            if __name__ == "__main__":
            unittest.main()

1 个答案:

答案 0 :(得分:0)

根据这个Link class ExcelMacro(unittest.TestCase): def test_excel_macro(self): try: xlApp = win32com.client.DispatchEx('Excel.Application') xlapp.DisplayAlerts=False xlsPath = os.path.expanduser('C:\Magic Samsung\Watch Samsung\Workbook.xlsm') wb = xlApp.Workbooks.Open(Filename=xlsPath) xlApp.Run('ArchiveMaster') wb.SaveAs(Filename=path_here, FileFormat=52) xlApp.Quit() print("Macro ran successfully!") except: print("Error found while running the excel macro!") xlApp.Quit() if __name__ == "__main__": unittest.main() 是52.所以,保存只是给出参数FileFormat = 52,如下面的代码所示

 function openCateg(id){
     window.location.assign('categoriasSentenciasAJAX.php?id='+id);
 }

注意:使用saveAs时会出现弹出窗口。此SO questionThis So Post回答了此问题