三流君(TOP) /ASPで遊ぶ /記事一覧

ADOでExcel(*.xls)に接続 指定したセルを更新する

test103-2.asp
ASPからADOを使用してExcel(*.xls)に接続して、
指定したセルを更新します

テストデータを入力する

シート名を選択: Sheet1 Sheet2 Sheet3
列を選択: A列 B列 C列 D列 E列
行を選択: 1行 2行 3行 4行 5行
セットするデータは?:

[test103.xls]←更新されるファイル


コーヒーブレイク たまには寄り道、休憩も(↓広告です):
広告:[8月の商品紹介] ← 基本?の当月を紹介
[10月の商品紹介] ← 少し先に発売の商品で予約を狙う
[5月の人気商品] ← 三ヶ月前に発売した人気の商品

指定したセルを更新するを使用したサンプル(ソースの紹介)

詳細解説は[http:/asp/backno/asp103.html]を見てください
下記、/cgi-bin/test/test103-2.aspのソース(中身)です

指定したセルを更新する を 使った ソースコードを紹介する

表示色の説明:ASP VBScriptは <% 〜 %>
キーワードは指定したセルを更新する です。 <%@LANGUAGE=VBScript%> <% Response.CacheControl = "no-cache" %> <% Response.AddHeader "Pragma", "no-cache" %> <% Response.Expires = -1 %> <html> <head><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=x-sjis"> <title>ADOでExcel(*.xls)に接続 指定したセルを更新する</title> </head> <body> <h1>ADOでExcel(*.xls)に接続 指定したセルを更新する</h1> test103-2.asp<br> ASPからADOを使用してExcel(*.xls)に接続して、<br> 指定したセルを更新します<br> <br> <% 'データがPOSTで送られてきた時のみ処理を実行する If IsEmpty(Request.Form("DATA")) = False Then strXLSNAME = Server.MapPath("test103.xls") 'ファイルのパス+名前 strSHEETNAME = Request.Form("SHEET") strX = Request.Form("X") '列 If Asc(strX) < Asc("A") Or Asc("E") < Asc(strX) Then strX ="A" End If strY = Request.Form("Y") '行 If Asc(strY) < Asc("1") Or Asc("5") < Asc(strY) Then strX ="1" End If strRANGE = strX & strY '列+行 strDATA = Left(Request.Form("DATA"),20) 'わるいけど頭20文字だけ書く Call TestExcelDATASet(strXLSNAME, strSHEETNAME, strRANGE, strDATA) End If %> <h2>テストデータを入力する</h2> <FORM ACTION="test103-2.asp" METHOD="POST"> <b>シート名を選択:</b> <INPUT TYPE="RADIO" NAME="SHEET" VALUE="Sheet1" CHECKED>Sheet1 <INPUT TYPE="RADIO" NAME="SHEET" VALUE="Sheet2">Sheet2 <INPUT TYPE="RADIO" NAME="SHEET" VALUE="Sheet3">Sheet3 <br> <b>列を選択:</b> <INPUT TYPE="RADIO" NAME="X" VALUE="A" CHECKED>A列 <INPUT TYPE="RADIO" NAME="X" VALUE="B">B列 <INPUT TYPE="RADIO" NAME="X" VALUE="C">C列 <INPUT TYPE="RADIO" NAME="X" VALUE="D">D列 <INPUT TYPE="RADIO" NAME="X" VALUE="E">E列 <br> <b>行を選択:</b> <INPUT TYPE="RADIO" NAME="Y" VALUE="1" CHECKED>1行 <INPUT TYPE="RADIO" NAME="Y" VALUE="2">2行 <INPUT TYPE="RADIO" NAME="Y" VALUE="3">3行 <INPUT TYPE="RADIO" NAME="Y" VALUE="4">4行 <INPUT TYPE="RADIO" NAME="Y" VALUE="5">5行 <br> <b>セットするデータは?:</b> <% Randomize : zz = "testDATA" & Int(Rnd * 1000) %> <INPUT TYPE="TEXT" NAME="DATA" SIZE="20" VALUE=<%=zz%>> <br> <INPUT TYPE="SUBMIT" VALUE="test103.xlsへ書き込む"> </FORM> <hr> [<a Href="test103.xls" TARGET="_blank">test103.xls</a>]←更新されるファイル<br> <hr> <% Sub TestExcelDATASet(strXLSNAME, strSHEETNAME, strRANGE, strDATA) '---- CursorTypeEnum Values ---- Const adOpenForwardOnly = 0 Const adOpenKeyset = 1 Const adOpenDynamic = 2 Const adOpenStatic = 3 '---- LockTypeEnum Values ---- Const adLockReadOnly = 1 Const adLockPessimistic = 2 Const adLockOptimistic = 3 Const adLockBatchOptimistic = 4 '---- CursorLocationEnum Values ---- Const adUseServer = 2 Const adUseClient = 3 'ADO DB Connection オブジェクトを作成する、英文そのままじゃん Set db=Server.CreateObject("ADODB.Connection") '接続文字を作成する strCon = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & strXLSNAME & ";" & _ "Extended Properties='Excel 8.0;HDR=NO'" Response.Write "作った、使った接続文字列は<br>" Response.Write "<CODE>Con = <b>" & strCon & "</b></CODE><hr>" 'データベース(xls)を開く db.open strCon 'SQL文 Sheet$範囲 として設定 strSQL = "select * from " strSQL = strSQL & "[" & strSHEETNAME & "$" & strRANGE & ":" & strRANGE & "]" Response.Write "作った、使ったSQL文字列は<br>" Response.Write "<CODE>strSQL = <b>" & strSQL & "</b></CODE><hr>" 'ADO DB Recordset オブジェクトを作成する、英文そのままじゃん Set rs=Server.CreateObject("ADODB.Recordset") rs.Open strSQL, db, adOpenDynamic, adLockOptimistic 'レコードセットを開く Response.Write "開いたレコードセットに対して.MoveFirst<br>" rs.MoveFirst '先頭へ ※イラナイかもね Response.Write "データ[" & strDATA & "]をセット後.Updateする" rs.Fields(0).Value = strDATA 'データのセット rs.Update '更新(データ確定) Response.Write "rs.Close でレコードセットを閉じる<br>" rs.Close Set rs = Nothing 'オブジェクト変数を開放する Response.Write "db.Close でxlsとの接続を閉じる<br>" db.Close Set db = Nothing 'オブジェクト変数も開放する Response.Write "<b>データを書き込みました、xlsを確認してみてね</b><br>" Response.Write "[<a Href='test103.xls' TARGET='_blank'>" Response.Write "書き込まれたtest103.xlsを確認</a>]<hr><br>" End Sub %> </body> </html>

最近発売の雑誌を紹介する

科学や技術の雑誌です。
  1. パリティ 2008年 09月号
  2. プラスチックスエージ 2008年 09月号
  3. 環境浄化技術 2008年 09月号
  4. 機械技術 2008年 09月号
  5. 日経サイエンス 2008年 10月号
  6. 油脂 2008年 09月号
  7. Newton (ニュートン) 2008年 10月号
  8. PLANT ENGINEER (プラント エンジニア) 2008年 09月号
  9. ツールエンジニア 2008年 09月号

データベースの書籍を紹介します

  1. [4798111856]- 絵で見てわかるOracleの仕組み (DB Magazine SELECTION)
  2. [479810910X]- オラクルマスター教科書 Silver Oracle Database 10g DBA 10g (オラクルマスター教科書)
  3. [4798019690]- Oracle逆引き大全606の極意 DB管理編―Oracle11g、10gR1/R2、9iR1/R2、8i対応Win/UNIX対
  4. [4844320068]- 徹底攻略ORACLE MASTER Bronze DBA 10g問題集
  5. [484432067X]- 徹底攻略ORACLE MASTER Bronze SQL基礎1問題集 (ITプロ/ITエンジニアのための徹底攻略)
  6. [4844322206]- 徹底攻略 ORACLE MASTER Silver DBA10g 問題集 (ITプロ/ITエンジニアのための徹底攻略)

※Ken3への連絡先 → [メール@アドレス]です。気軽に問い合わせてください

Googleで関連項目を検索する

LANGUAGE=VBScript + [キーワード:指定したセルを更新する] Sub|Function プログラム|プログラミング
↓で検索するとプログラムの例 Sub/Function でまとまったHP

Google

あれ?私のページが検索に載ってない(笑)一度お試しを(私のページに、また戻ってきてね(爆))

ASPでExcel(*.xls)を使用する
(ADOで*.xlsと接続, xlsファイルの作成など)

テスト実行とサンプルソース

ASP系、ADO使用、Excel(*.xls)接続、SQL発行、メルマガ解説リンク

[No.53 ADOでExcelファイル(*.xls)とやっと接続できた(ほっ)]
[No.54 ADOでSQL Select * INTO文発行でExcel(*.xls)を作成する]
[No.56 Excel(*.xls)とADOで接続、.Addnewしてみた]
[No.57 Excelグラフ付の雛形シートにASPからADOを使用してデータセット]
[No.59 結果をExcelで返すならresponse.ContentType=application/vnd.ms-excel]

[No.79 文字列9-30をExcelに移すと日付と誤解される・・・]
[No.84 ADO Excel(*.xls)接続 [Sheet1$]でシート指定、列名無しで遊ぶ]
[No.85 ADOでExcel(*.xls)に接続 .GetRowsで全件読み込んでみた]
[No.103 ADOでExcel(*.xls)に接続 指定したセルを更新する ]

三流解説とリンクページを紹介

ASP系の解説を項目ごとにまとめてみました

[ASP Form等を使用したデータのやり取り]
[ASP その他処理サンプル]
[ASP テキストファイル処理]
[ASP VBScript関数関係の説明]
[ASP ADOでMdbファイルを使う]
[ASP ADOでExcelと接続してみた]

その他:blogや広告↓
[日記的なblog]← あまり更新してないけど・・・
[三流なプログラムコード]← 恥ずかしいのであまり載せてないけど・・・
[通販商品の足跡を紹介] ←通販商品などを紹介してます


現在時刻は、2008/08/30 14:59:14です。
[Topへ戻る] −−>[ASP系へ戻る] −−>[バックナンバーを見る]