วันอาทิตย์ที่ 29 พฤศจิกายน พ.ศ. 2558

การอ่านข้อมูลจาก .xls ด้วย ASP
:: ตัวอย่างนี้กำหนด ชื่อ พื้นที่ ที่จะ select ข้อมูลมาใช้
:: Right click to download [ dthai97.xls 13 KB  :: dthai2007.xlsx 12 KB ]

<%
fxls = "dthai97.xls"
tbname = "dthai1"
f1 = "eid"
f2 = "ename"
' ===============================================
' 2 method : ok
' dv = "driver={microsoft excel driver (*.xls)}; dbq=" & server.mappath(fxls)
' dv = dv & "; extended properties='excel 8.0; hdr=yes';"
dv = "provider=microsoft.jet.oledb.4.0; data source=" & server.mappath(fxls)
dv = dv & "; extended properties='excel 8.0; hdr=yes';"
set conn = server.createobject("adodb.connection")
conn.open dv
sql = "select * from " & tbname
set rs = conn.execute(sql)
do while not rs.eof
  response.write(rs(f1) & " " & rs(f2) & "<br>")
  rs.MoveNext
loop
conn.close
set rs = nothing
set conn = nothing
%>

โปรแกรมเชื่อมตารางด้วย inner join กับ left join และตรวจสอบว่ามีข้อมูลหรือไม่
ทำงานใน win7 เชื่อมแฟ้ม excel จาก office2007 กับ asp classic
ส่วน loop ที่สองจะ group ข้อมูล แล้วนับจำนวน โดยไม่เชื่อมโยงเพื่อใช้เป็น key ในการจัดกลุ่ม
<%
dv ="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" 
dv = dv & server.mappath("dthai2007.xlsx")
dv = dv & ";Extended Properties='Excel 12.0 Xml;HDR=YES';"
' ---
set conn = server.createobject("adodb.connection")
conn.open dv
' ---
' show all from [left]
sql = "select * from dthai2 left join dthai3 on dthai2.eid = dthai3.eidg"
' show if match 2 table
' sql = "select * from dthai2 inner join dthai3 on dthai2.eid = dthai3.eidg"
set rs = conn.execute(sql)
do while not rs.eof
  if (isnull(rs("group"))) then response.write("*") 
  response.write(rs("eid") & " " & rs("ename") & " " & rs("group") & "<br>")
  rs.MoveNext
loop
' ---
sql = "select first(dthai3.group) as x,count(dthai3.group) as y from dthai3" 
sql = sql & " group by dthai3.group"
set rs = conn.execute(sql)
do while not rs.eof
  response.write(rs("x") & rs("y") & "<br>")
  rs.MoveNext
loop
conn.close
set rs = nothing
set conn = nothing
%>

ไม่มีความคิดเห็น:

แสดงความคิดเห็น