我被要求制作一个将Excel数据发送到网站的宏。不应该涉及任何数据库。在阅读本网站上的示例后,我一直在尝试使用HTTP Post。我创建了一个在localserver上运行的ASP.NET网页。在调试宏时,控件确实到达了网页Page_load事件,但我无法在那里看到数据。
有人能帮助我找到我的错误吗?
Excel代码:
Sub SendData()
'
' SendData Macro
'
Dim sdata As String
sdata = "Abhh"
'
Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
URL = "localhost:2782/Default.aspx?"; + sdata
objHTTP.Open "POST", URL, False objHTTP.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
objHTTP.send ("")
End Sub
C#代码
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
namespace Fetch
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Label1.Text = Request.Url.Query;
// I dont know where the data is in the Request object.(If it is there at all..)
}
}
}
由于
阿比
答案 0 :(得分:1)
“网站”必须是标准网页吗?您是否可以将其发送到运行ASP.NET WebService的“网站”?
见here& here关于如何撰写网络服务,然后阅读here& here关于如何通过VBA调用WebService。
答案 1 :(得分:0)
虽然我无法在Excel中给出一个确切的示例,但我非常确定Excel有一两个功能可以使用GET请求从任何网站查找值。 GET和POST请求之间的区别在于,前者传递的所有数据都是URL字符串的一部分。假设Excel中的HTTP支持是基本的,我怀疑使用GET请求会有更好的运气,使用简单的字符串操作仔细构建URL。虽然我不知道确切的语法,但想象一个单元格中的公式,如= lookuphtml(“http://some.url.com/send?var1=”& B2&“& var2 =”& B3),其中单元格B2和B3将包含您的变量值(要传递给脚本的值)。这假设接收端能够通过GET请求(不仅是POST请求)接收数据。大多数体面的服务器端库允许通过GET和POST请求传递数据,尽管是YMMV。
答案 2 :(得分:0)
我不是.NET人,但它看起来非常像URI.Query
只显示GET数据,因为POST数据不是URI的一部分。
您可能希望在name1=value1&name2=value2&...
字符串中使用sData
的标准格式语法,然后根据示例here在服务器上使用Request.Form