将数据从Excel发送到网站
我被要求制作一个宏,将Excel数据发送到一个网站。不应涉及任何数据库。在阅读了这个网站上的示例之后,我一直在尝试使用HTTPPOST。我制作了一个在localserver上运行的ASP.NET网页。在调试宏时,控件确实到达网页页面加载事件,但我无法看到那里的数据 有人能帮我找到我的错误吗 Excel代码:将数据从Excel发送到网站,excel,vba,Excel,Vba,我被要求制作一个宏,将Excel数据发送到一个网站。不应涉及任何数据库。在阅读了这个网站上的示例之后,我一直在尝试使用HTTPPOST。我制作了一个在localserver上运行的ASP.NET网页。在调试宏时,控件确实到达网页页面加载事件,但我无法看到那里的数据 有人能帮我找到我的错误吗 Excel代码: Sub SendData() ' ' SendData Macro ' Dim sdata As String sdata = "Abhh" ' Set objHTTP = Cre
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..)
}
}
}
谢谢
Abi网站必须是标准网页吗?您不能将其发送到运行ASP.NET Web服务的“网站”吗
请参阅&关于如何编写webservice,然后阅读&关于如何通过VBA调用webservice 虽然我不能在Excel中给出一个确切的例子,但我非常确定Excel有一两个函数,可以使用GET请求从任何网站查找值。GET和POST请求之间的区别在于,在前者中,传递的所有数据都是URL字符串的一部分。假设Excel中的HTTP支持是基本的,我想使用GET请求,通过简单的字符串操作仔细地用数据构建URL,您的运气会更好。尽管我不知道确切的语法,但想象一下在单元格中的一个公式,如=lookuphtml(“&B2&”&var2=“&B3”),其中单元格B2和B3将包含您的变量值(您希望传递给脚本的值)。这假设接收端能够通过GET请求(而不仅仅是POST请求)接收数据。大多数体面的服务器端库都允许通过GET和POST请求传递数据,尽管YMMV。我不是.NET的家伙,但它看起来非常像
URI。查询只显示GET数据,因为POST数据不是URI的一部分
您可能希望在sData
字符串中使用标准格式语法name1=value1&name2=value2&…
,然后在服务器上使用Request.form
根据示例可以发布任何代码吗?您应该查看页面Init()而不是页面加载()Excel部分代码:-Sub-SendData()“”SendData Macro“Dim sdata As String sdata=“Abhh”'Set objHTTP=CreateObject(“MSXML2.ServerXMLHTTP”)URL=“?”+sdata objHTTP.Open“POST”、URL、False objHTTP.setRequestHeader“用户代理”、“Mozilla/4.0(兼容;MSIE 6.0;Windows NT 5.0)”objHTTP.send(“”)结束SubC#代码的一部分:-使用系统;使用系统数据;使用系统配置;使用系统集合;使用System.Web;使用System.Web.Security;使用System.Web.UI;使用System.Web.UI.WebControl;使用System.Web.UI.WebControl.WebParts;使用System.Web.UI.HTMLControl;namespace Fetch{public partial class\u Default:System.Web.UI.Page{protected void Page\u Load(object sender,EventArgs e){Label1.Text=Request.Url.Query;//我不知道数据在Request对象中的什么位置。(如果有..)},我不能发送附加到URL的数据,因为数据可能是巨大的,也可能是敏感的。。。感谢您抽出时间,但我无法通过将数据附加到URL(该URL正在工作)来发送数据,因为数据可能是巨大而敏感的。