将数据从Excel发送到网站

时间:2009-06-05 02:58:01

标签: excel-vba vba excel

我被要求制作一个将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..) 
           } 
      } 
 }

由于

阿比

3 个答案:

答案 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