데이터를 수신하는 단계를 포함한다. 현재 (Windows에서 작업 중) 통화는 다음과 같습니다. 내가 OSX에서 같은 통화를 사용하는 경우, 나는 오류 429가 "ActiveX 구성 요소는 개체를 만들 수 없습니다"라는받을 수 있습니다.보내기 및 I 포트에 우리가 방정식 이미지를 생성하는 웹 사이트를 사용하여 문서에 삽입하는 이미지를 돌려줍니다 Windows에서 MS Word 용 작업 한 매크로를 시도하고 OSX
' Create an xmlhttp object.
Set w_page = CreateObject("Microsoft.XMLHTTP")
' Open the connection to the remote server.
w_page.Open "POST", WebAdd, False
' Indicate that the body of the request contains form data
w_page.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
' Actually send the request and return the data:
Font_Size = ComboFontSize.Value
w_page.Send "formula=" & Font_Size & "." & Latex_Str
오류는 Set w_page = CreateObject("Microsoft.XMLHTTP")
문에 생성됩니다.
Set w_page = CreateObject("MSXML2.ServerXMLHTTP")
및
Set w_page = CreateObject("WinHttp.WinHttpRequest.5.1")
그러나 같은 오류가 생성됩니다 : I는 다음과 같은 대체 방법 중 몇 가지를 시도했습니다. 나에게 관심이 사람을 위해 OSX 말씀 2011 년
의 게시물을 전송하는 올바른 방법을 찾아 도와주세요,이 프로젝트는 GitHub 볼 수 있습니다.
고맙습니다.
편집 : 나는 OSX Excel에서 사용하기위한 옵션을 자세히 this post을 발견,하지만 난 OSX 말씀에 대한 아날로그를 찾을 수 없습니다. 사람은 워드 해당하는 OSX의 게시물을 보내기 위해 일하는 것이 엑셀 ActiveSheet.QueryTables
을 알고 있나요?
편집 : 나는 일부 진전을 만들었습니다. VBA를 통해 외부 프로그램을 호출 할 수 있고 모든 Mac에 Python이 설치되어있는 것처럼 보입니다. 따라서 urllib
및 urllib2
을 사용하여 서버에 요청을 보내는 Python 스크립트를 작성했습니다. 파이썬 파일은 명령 줄에서 수식 문자열, 글꼴 크기 및 웹 주소를 구문 분석 argparse
를 사용합니다. ,
sCmd = "python " & pyPath & "getURL.py --formula " & Latex_Str & " --fontsize "_
& Font_Size & " " & WebAdd
sResult = Shell(sCmd, vbNormalFocus)
Latex_Str
이 응용 프로그램을 통해 사용자가 입력
Font_Size
가 마찬가지로 사용자가 정의되어
및 WebAdd
은 두 개의 주소 중 하나입니다
지금 내 매크로 같은 내 파이썬 스크립트를 호출 할 수 있습니다 방정식을 생성하는지 아니면 임시 파일을 정리하는지에 따라 다릅니다.
내가 알아낼 수없는 것은 VBA에서 내 파이썬 스크립트 (나중에 이미지 파일을 검색하는 데 필요한 내 서버의 반환 값이있는 문자열)에서 반환되는 값을 읽는 방법입니다. Shell
명령은 PID 번호 만 반환합니다. 아무도 도와 줄 수 있니?
해결 방법 : 알아 냈습니다! 서버에 POST 요청을 처리하고 stdout에 대한 응답을 인쇄하는 Python 스크립트를 작성할 수있었습니다. 커뮤니티와 많은 문서를 온라인으로 도우면서 VBA의 AppleScript를 사용하여 result = vba.MacScript(command)
메서드를 사용하여이 Python 스크립트를 호출 할 수있었습니다. 이것은 내가 파이썬 스크립트에서 stdout을 VBA의 문자열 변수로 읽을 수있게 해주었습니다. 내가 시작
# Import the required libraries
from urllib import urlencode
from urllib2 import Request, urlopen, URLError, ProxyHandler, build_opener, install_opener
import argparse
# Set up our argument parser
parser = argparse.ArgumentParser(description='Sends LaTeX string to web server and returns meta data used by LaTeX in Word project')
parser.add_argument('webAddr', type=str, help='Web address of LaTeX in Word server')
parser.add_argument('--formula', metavar='FRML', type=str, help='A LaTeX formula string')
parser.add_argument('--fontsize', metavar='SIZE', type=int, default=10, help='Integer representing font size (can be 10, 11, or 12. Default 10)')
parser.add_argument('--proxServ', metavar='SERV', type=str, help='Web address of proxy server, i.e. http://proxy.server.com:80')
parser.add_argument('--proxType', metavar='TYPE', type=str, default='http', help='Type of proxy server, i.e. http')
# Get the arguments from the parser
args = parser.parse_args()
# Define formula string if input
if args.formula:
values = {'formula': str(args.fontsize) + '.' + args.formula} # generate formula from args
else:
values = {}
# Define proxy settings if proxy server is input.
if args.proxServ: # set up the proxy server support
proxySupport = ProxyHandler({args.proxType: args.proxServ})
opener = build_opener(proxySupport)
install_opener(opener)
# Set up the data object
data = urlencode(values)
data = data.encode('utf-8')
# Send request to the server and receive response, with error handling!
try:
req = Request(args.webAddr, data)
# Read the response and print to a file
response = urlopen(req)
print response.read()
except URLError, e:
if hasattr(e, 'reason'): # URL error case
# a tuple containing error code and text error message
print 'Error: Failed to reach a server.'
print 'Reason: ', e.reason
elif hasattr(e, 'code'): # HTTP error case
# HTTP error code, see section 10 of RFC 2616 for details
print 'Error: The server could not fulfill the request.'
print 'Error code: ', e.code
# print e.read()
This related thread는 최근 문자열 수익을 내 함수를 호출하고 얻기위한 MacScript
명령의 방향으로 날을 지적하고, @CuberChase 나 쓰기에 길을 시작있어 다음과 같이 내 파이썬 스크립트이었다 서버에 대한 호출을 처리하는 외부 함수. 고마워요!
오우 와우, 그럴듯 해 보이지만 조금 더 솔직 해지기를 기대했습니다. 나는 이것을 구현하기 위해 노력할 것이고, 그것이 작동하도록 할 수 있다면 그에 따라 당신의 대답을 표시 할 것입니다. 감사! – Engineero
좋은 물건. 결과가 나오면 반드시 게시하십시오. – CuberChase
솔직히 외부 함수를 호출 할 생각은 없었지만, 그 점을 알기에 파이썬을 호출하여 요청을 처리하도록 할 수 있습니다. 나는 파이썬이 OSX에 설치되었다고 믿는다. 그래서 의존성 문제가 없어야한다. 나는 그것에 대해 연구하고 그에 따라 업데이트 할 것이지만, 당신의 대답은 그것이 작동 할 것처럼 보인다. 고마워요! – Engineero