从Excel宏更新我的wiki

时间:2016-07-22 10:05:09

标签: python excel-vba xml-rpc confluence vba

我目前能够使用脚本更新我的 wiki页面,如下所示:

import sys
from xmlrpclib import Server
s = Server("https://my.wiki.root/rpc/xmlrpc")
token = s.confluence2.login("user", "passwd")
page = s.confluence2.getPage(token, "WIKI SPACE", "page")

page["content"] = '<xml content>'
s.confluence2.storePage(token, page)

[credits to Atlassian's Confluence XML-RPC and SOAP APIs]

但是我无法在我的电脑上安装Python(我不太了解这种优秀的语言),我想知道我是否能够(几乎)轻松地用Excel实现 。我试过这个:

Sub updatePage()    
    Dim URL As String, myXML As String
    Dim xmlHttp As Variant    
    Set xmlHttp = CreateObject("MSXML2.ServerXMLHTTP.6.0")

    myXML = "<my xml>"

    URL = "https://my.wiki.root/rpc/xmlrpc"
    xmlHttp.Open "POST", URL, False

    #' I specify my content type
    xmlHttp.SetRequestHeader "Content-Type", "text/xml"

    #' Here I'm less and less sure
    xmlHttp.send "pageId=248091993&editorFormat=" + myXML

    #' This is void...
    MsgBox xmlHttp.responseText

End Sub

我在responseText中得不到任何结果。我不知道在哪里看。

  • 我怎样才能模仿&#34;这些python命令(无需安装像pyxll这样的怪异软件)?如果我没有解决方案,我会(很容易?)修复一些事情,通过将命令发送到python可以运行的服务器......但是我可以确定可以用Excel完成。
  • 如果我知道如何使用s在python中返回此Server("xmlrpc URL")结构,我将赢得胜利!但它是什么?如何使用Excel获取它?

1 个答案:

答案 0 :(得分:1)

您应该尝试登录您的VBA代码。

你是在Python中完成的,但为什么不在VBA中呢?

e.g。

URL = "my.wiki.root/rpc/xmlrpc?id=user&pwd=passwd"; 

这可以解决您的问题。