2013.
01.
30
21:27:26
Excelで管理している情報があるのですが
それをサーバ上のDBに放り込みたくてですね。
初回はExcelをアップロードして一気に放り込んだのですが
それ以降は差分だけ放り込みたかったのです。
データの変更量は1日1、2件くらいなので
Excel上から直接POSTしてサーバ側でDB突っ込めばい~か~ってのが
今回の経緯(--)b
と言う訳でExcelからPOSTするサンプルコードですφ(--)
そんなに難しくはないと思いますが如何でしょ(--?
URLとパラメータを好きに作ったらPOSTして結果取得。
パラメータは「&key=value」を複数繋げることでいっぱい送れます。
サンプルではパラメータを固定文字列にしてありますが、
実際に作った奴ではExcel上から拾って動的に生成してます。
POST処理の部分は決まり文句みたいなもんですね。
エラー処理は入れてないけどそこら辺は適当にお願いします(--)ノ
完了\(--)/
あっ、そうそう。
ついでなので、やっつけで申し訳ないのですが
受け取り側のサンプルも置いておきますφ(--)
受け取ったパラメータ(param1~param3)を
表示(返却)するだけのPHPプログラムです。
注意点はExcel→PHPのパラメータはUTF-8で渡しているのに対し
PHP→ExcelはShift-JISで返してるところくらいですかね。
Shift-JISで返してるのは単純にDebug.Printで文字化けさせたくなかっただけなので
特に深い意味は無いです。
ご自分の用途に合わせて適当に決めたってください。
今度こそ完了\(--)/
それをサーバ上のDBに放り込みたくてですね。
初回はExcelをアップロードして一気に放り込んだのですが
それ以降は差分だけ放り込みたかったのです。
データの変更量は1日1、2件くらいなので
Excel上から直接POSTしてサーバ側でDB突っ込めばい~か~ってのが
今回の経緯(--)b
と言う訳でExcelからPOSTするサンプルコードですφ(--)
Private Sub CommandButton1_Click()
'-----------------
'リクエスト生成
'-----------------
'URL(必要に応じて変更)
Dim url As String
url = "http://example.com/hoge.php"
'パラメータ(必要に応じて動的に生成)
Dim paramStr As String
paramStr = "¶m1=パラメータ1¶m2=ぱらめーた2¶m3=param3"
'--------------
'POST実行
'--------------
Dim xmlhttp As Object
Set xmlhttp = CreateObject("msxml2.xmlhttp")
xmlhttp.Open "POST", url, False '通り道を作って~
xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
xmlhttp.send (paramStr) 'パラメータをぽいっちょと
'--------------
'応答取得
'--------------
Dim retCd As String
retCd = xmlhttp.Status '結果コード取得
If retCd <> 200 Then
Debug.Print "error:" & retCd
Else
Dim retHtml As String
retHtml = StrConv(xmlhttp.responsebody, vbUnicode, 1041) '結果HTML取得
Debug.Print retHtml
End If
End Sub
'-----------------
'リクエスト生成
'-----------------
'URL(必要に応じて変更)
Dim url As String
url = "http://example.com/hoge.php"
'パラメータ(必要に応じて動的に生成)
Dim paramStr As String
paramStr = "¶m1=パラメータ1¶m2=ぱらめーた2¶m3=param3"
'--------------
'POST実行
'--------------
Dim xmlhttp As Object
Set xmlhttp = CreateObject("msxml2.xmlhttp")
xmlhttp.Open "POST", url, False '通り道を作って~
xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
xmlhttp.send (paramStr) 'パラメータをぽいっちょと
'--------------
'応答取得
'--------------
Dim retCd As String
retCd = xmlhttp.Status '結果コード取得
If retCd <> 200 Then
Debug.Print "error:" & retCd
Else
Dim retHtml As String
retHtml = StrConv(xmlhttp.responsebody, vbUnicode, 1041) '結果HTML取得
Debug.Print retHtml
End If
End Sub
そんなに難しくはないと思いますが如何でしょ(--?
URLとパラメータを好きに作ったらPOSTして結果取得。
パラメータは「&key=value」を複数繋げることでいっぱい送れます。
サンプルではパラメータを固定文字列にしてありますが、
実際に作った奴ではExcel上から拾って動的に生成してます。
POST処理の部分は決まり文句みたいなもんですね。
エラー処理は入れてないけどそこら辺は適当にお願いします(--)ノ
完了\(--)/
あっ、そうそう。
ついでなので、やっつけで申し訳ないのですが
受け取り側のサンプルも置いておきますφ(--)
<?php
/**************************/
// main
/**************************/
//-----------
//定数宣言
//-----------
define("PARAM_START_NUM", 1);
define("PARAM_END_NUM", 3);
//-----------
//主処理
//-----------
if (isset($_POST)){
for($i = PARAM_START_NUM; $i <= PARAM_END_NUM; $i++){
${'param' . $i} = $_POST{'param' . $i};
}
}
for($i = PARAM_START_NUM; $i <= PARAM_END_NUM; $i++){
$str = mb_convert_encoding(${'param' . $i}, "SJIS-win", "UTF-8");
print "param" . $i . " : ". $str . "\n";
}
?>
/**************************/
// main
/**************************/
//-----------
//定数宣言
//-----------
define("PARAM_START_NUM", 1);
define("PARAM_END_NUM", 3);
//-----------
//主処理
//-----------
if (isset($_POST)){
for($i = PARAM_START_NUM; $i <= PARAM_END_NUM; $i++){
${'param' . $i} = $_POST{'param' . $i};
}
}
for($i = PARAM_START_NUM; $i <= PARAM_END_NUM; $i++){
$str = mb_convert_encoding(${'param' . $i}, "SJIS-win", "UTF-8");
print "param" . $i . " : ". $str . "\n";
}
?>
受け取ったパラメータ(param1~param3)を
表示(返却)するだけのPHPプログラムです。
注意点はExcel→PHPのパラメータはUTF-8で渡しているのに対し
PHP→ExcelはShift-JISで返してるところくらいですかね。
Shift-JISで返してるのは単純にDebug.Printで文字化けさせたくなかっただけなので
特に深い意味は無いです。
ご自分の用途に合わせて適当に決めたってください。
今度こそ完了\(--)/