我制作了一个vbscript来打开一个excel doc,然后运行一个python程序,从文档表中提取数据并将其打印到文本文件中。该脚本应该等到python程序完成后创建文本doc然后关闭excel doc,但无论出于何种原因我的python程序在它甚至有机会制作该文本doc之前关闭。
我甚至更改了python代码,只是将一个简单的“Hello World”打印到一个新的文本文档中,以防从excel中提取数据导致问题但文本文档仍未创建。
这是我正在运行的脚本:
Set xl = CreateObject("Excel.application")
xl.Application.Workbooks.Open "C:\Users\V\Documents\_PROGRAMS_\TEST.xlsx"
xl.Application.Visible = True
Dim oshell
Set oshell = WScript.CreateObject("WScript.Shell")
oshell.CurrentDirectory = "C:\Users\V\Documents\_PROGRAMS_\"
windowStyle = 1
waitUntilFinished = True
oshell.run "python table.py", windowStyle, waitUntilFinished
xl.Application.Quit
我不认为添加python程序很重要,因为这不是真正的问题。虽然我会说我试图在python程序中加入延迟,看看是否会改变任何东西(它没有)。
我虽然将两个额外的参数添加到.run会让它等到进程完成但是我想我一定错过了什么?
我刚刚开始学习如何使用vbscript,所以欢迎任何代码解释!
谢谢!
编辑:所以经过更多的测试后,似乎它确实与访问excel文档有关,因为只是将“Hello World”打印到文件确实有效并且文件已创建(我在错误的目录中创建了文件)偶然所以我在错误的地方看。但是尝试使用excel文档中的数据没有创建文件,程序就结束了所以这是我写的python代码:
#!/usr/bin/python27
import pandas as pd
table = pd.read_excel("TEST.xlsx") #Get excel doc
file = open("text.txt", "w") #Open new file
file.write(table.columns.values) #Print out column headers
file.write("Hello!")
file.close()