Отправка данных из Excel на веб-сайт - PullRequest
2 голосов
/ 05 июня 2009

Меня попросили создать макрос, который отправляет данные Excel на веб-сайт. Там не должно быть никакой базы данных. Я пытался использовать HTTP Post после прочтения примеров на этом сайте. Я сделал веб-страницу 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..) 
           } 
      } 
 }

Спасибо

Abi

Ответы [ 3 ]

1 голос
/ 05 июня 2009

Должен ли «веб-сайт» быть стандартной веб-страницей? Разве вы не можете отправить его на «веб-сайт», на котором вместо этого работает ASP.NET WebService?

См. здесь & здесь о том, как написать веб-сервис, а затем прочитайте здесь & здесь о том, как вызвать веб-сервис через VBA.

0 голосов
/ 06 июня 2009

Я не парень .NET, но похоже, что URI.Query будет показывать только данные GET, потому что данные POST не являются частью URI.

Возможно, вы захотите использовать стандартный синтаксис формы name1=value1&name2=value2&... в строке sData, а затем на сервере использовать Request.Form в соответствии с примерами здесь

0 голосов
/ 05 июня 2009

Хотя я не могу дать вам точный пример в Excel, я почти уверен, что в Excel есть функция или две для поиска значений на любом веб-сайте с помощью запроса GET. Разница между запросами GET и POST заключается в том, что в первом случае все передаваемые данные являются частью строки URL. Предполагая, что поддержка HTTP в Excel является базовой, я подозреваю, что вам больше повезет, если вы воспользуетесь GET-запросом, тщательно создав свой URL-адрес с данными с помощью простых манипуляций со строками. Хотя я не знаю точного синтаксиса, представьте формулу в ячейке вроде = lookuphtml ("http://some.url.com/send?var1="&B2&"&var2="&B3),, где ячейки B2 и B3 будут содержать значения ваших переменных (значения, которые вы хотите передать в сценарий). Это предполагает принимающая сторона способна получать данные через запросы GET (не только запросы POST). Большинство приличных серверных библиотек разрешают данные, передаваемые как через запросы GET, так и через POST, хотя YMMV.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...