下的即是用ASP创建(生成)PDF文件的代码
-
ตัวเลือกที่ชัดเจน
CheckXlDriver ย่อย ()
เมื่อเกิดข้อผิดพลาด ดำเนินการต่อต่อไป
หรี่ vConnString
Dim oConn หรือผิดพลาด
' ลองเชื่อมต่อกับไฟล์ NUL:
vConnString = DRIVER={ไดรเวอร์ Microsoft Excel (*.xls)};DBQ=NUL:
ตั้งค่า oConn = CreateObject (ADODB.Connection)
oConn เปิด vConnString
สำหรับแต่ละ oErr ใน oConn.Errors
' เมื่อไดรเวอร์ Excel รายงานความล้มเหลวในการสร้างไฟล์
' จะต้องติดตั้งและใช้งานได้ ;-))
ถ้า oErr.NativeError = -5036 แล้ว
ออกจากย่อย
สิ้นสุดถ้า
ต่อไป
การตอบสนองผู้ให้บริการเขียนหรือไดรเวอร์ไม่พร้อมใช้งาน (อีกครั้ง) ติดตั้ง MDAC
Response.เขียนเลขฐานสิบหก (Err.Number) & & Err.Description &
สำหรับแต่ละ oErr ใน oConn.Errors
การตอบสนองเขียนเลขฐานสิบหก (oErr.Number) & & oErr.NativeError & & oErr.Description &
ต่อไป
การตอบสนองสิ้นสุด
จบหมวดย่อย
ฟังก์ชั่น GetConnection (vConnString)
เมื่อเกิดข้อผิดพลาด ดำเนินการต่อต่อไป
ตั้งค่า GetConnection = Server.CreateObject (ADODB.Connection)
GetConnection เปิด vConnString
ถ้า Err.Number <> 0 แล้ว
ตั้งค่า GetConnection = ไม่มีเลย
สิ้นสุดถ้า
ฟังก์ชันสิ้นสุด
ฟังก์ชั่น OptionTag(vChoice,vTrue)
ติ่ม v เลือกแล้ว
ถ้าvจริงแล้ว
vเลือกแล้ว = เลือกแล้ว
สิ้นสุดถ้า
OptionTag = <ตัวเลือก & vเลือกแล้ว & > & _
Server.HtmlEncode(vChoice) & </option> & vbCrLf
ฟังก์ชันสิ้นสุด
ฟังก์ชั่น IsChecked (vTrue)
ถ้าvจริงแล้ว
IsChecked = ตรวจสอบแล้ว
สิ้นสุดถ้า
ฟังก์ชันสิ้นสุด
ฟังก์ชั่น BookOptions(vXlFile)
หรี่ vServerFolder
Dim oFs, oFolder, oFile
ติ่ม v เลือกแล้ว
vServerFolder = เซิร์ฟเวอร์ MapPath(.)
ตั้งค่า oFs = Server.CreateObject (Scripting.FileSystemObject)
ตั้งค่า oFolder = oFs.GetFolder(vServerFolder)
สำหรับแต่ละ oFile ใน oFolder.Files
ถ้า oFile.Type = แผ่นงาน Microsoft Excel แล้ว
vSelected = (oFile.Name = vXlFile)
BookOptions = BookOptions & _
OptionTag(oFile.Name, vSelected)
สิ้นสุดถ้า
ต่อไป
ตั้งค่า oFolder = ไม่มีเลย
ตั้งค่า oFs = ไม่มีเลย
ฟังก์ชันสิ้นสุด
ฟังก์ชัน NamedRangeOptions(oConn, vXlRange, vTableType)
Dim oSchemaRs
ติ่ม v เลือกแล้ว
NamedRangeOptions = OptionTag (ว่าง, ว่าง)
ถ้า TypeName(oConn) = การเชื่อมต่อแล้ว
ตั้งค่า oSchemaRs = oConn.OpenSchema(adSchemaTables)
ทำในขณะที่ไม่ใช่ oSchemaRs.EOF
ถ้า oSchemaRs(TABLE_TYPE) = vTableType แล้ว
vSelected = (oSchemaRs(TABLE_NAME) = vXlRange)
NamedRangeOptions = NamedRangeOptions & _
OptionTag(oSchemaRs(TABLE_NAME), vเลือกแล้ว)
สิ้นสุดถ้า
oSchemaRs.MoveNext
วนซ้ำ
สิ้นสุดถ้า
ฟังก์ชันสิ้นสุด
ฟังก์ชั่น DataTable (oConn, vXlRange, vXlHasHeadings)
เมื่อเกิดข้อผิดพลาด ดำเนินการต่อต่อไป
' จาก OleDbVbc.inc
ค่าคงที่ DB_E_ERRORSINCOMMAND = &H80040E14
สลัวหรือ oField
หรี่ vThTag, vThEndTag
ถ้า vXlHasHeadings แล้ว
vThTag = <th>
vThEndTag = </th>
อื่น
vThTag = <td>
vThEndTag = </td>
สิ้นสุดถ้า
DataTable = <เส้นขอบตาราง=1>
ถ้า TypeName(oConn) = การเชื่อมต่อแล้ว
ตั้งค่า oRs = oConn.Execute([ & vXlRange & ])
ถ้า oConn.Errors.Count > 0 แล้ว
สำหรับแต่ละ oConnErr ใน oConn.Errors
ถ้า oConnErr.Number = DB_E_ERRORSINCOMMAND แล้ว
DataTable = ตารางข้อมูล & _
<tr><td>ไม่มีช่วงดังกล่าว :</td><th> & vXlRange & </th></tr>
อื่น
DataTable = ตารางข้อมูล & _
<tr><td> & oConnErr.คำอธิบาย & </td></tr>
สิ้นสุดถ้า
ต่อไป
อื่น
DataTable = ตารางข้อมูล & <tr>
สำหรับแต่ละ oField ใน oRs.Fields
DataTable = DataTable & vThTag & oField.Name & vThEndTag
ต่อไป
DataTable = ตารางข้อมูล & </tr>
ทำในขณะที่ไม่ใช่หรือEof
DataTable = ตารางข้อมูล & <tr>
สำหรับแต่ละ oField ใน oRs.Fields
DataTable = DataTable & <td> & oField.Value & </td>
ต่อไป
DataTable = ตารางข้อมูล & </tr>
หรือMoveNext
วนซ้ำ
สิ้นสุดถ้า
ตั้งค่า oRs = ไม่มีเลย
อื่น
DataTable = DataTable & <tr><td>ไฟล์ถูกล็อคโดยแอปพลิเคชันอื่นหรือไม่สามารถเข้าถึงได้ ไม่สามารถดำเนินการต่อได้</td></tr>
สิ้นสุดถ้า
DataTable = DataTable & </table>
ฟังก์ชันสิ้นสุด
' --หลัก--
-
<html>
<หัว>
<title>อ่าน Excel</title>
<ภาษาสคริปต์=จาวาสคริปต์>
-
ฟังก์ชั่น XlBook_onchange (แบบฟอร์ม) {
ด้วย (แบบฟอร์ม) {
XlSheet.selectedIndex = 0;
XlSheet.disabled = จริง;
XlNamedRange.selectedIndex = 0;
XlNamedRange.disabled = จริง;
XlTypedRange.value = A:IV;
-
-
ฟังก์ชั่น XlSheet_onchange (แบบฟอร์ม) {
ด้วย (แบบฟอร์ม) {
XlNamedRange.selectedIndex = 0;
XlTypedRange.value = XlSheet.options[XlSheet.selectedIndex].text;
-
-
ฟังก์ชั่น XlNamedRange_onchange (แบบฟอร์ม) {
ด้วย (แบบฟอร์ม) {
XlSheet.selectedIndex = 0;
XlTypedRange.value = XlNamedRange.options[XlNamedRange.selectedIndex].text;
-
-
ฟังก์ชั่น XlTypedRange_onchange (แบบฟอร์ม) {
ด้วย (แบบฟอร์ม) {
XlSheet.selectedIndex = 0;
XlNamedRange.selectedIndex = 0;
-
-
-
</สคริปต์>
</หัว>
<ร่างกาย>
-
หรี่ vXlFile, vXlFilePath
Dim vXlRange, vXlHasHeadings
Dim v ปิดการใช้งาน
หรี่ vConnString
Dim oConn, oConnErr
Const adSchemaTables = 20 ' จาก adovbs.inc
CheckXlDriver ' ตรวจสอบให้แน่ใจว่าใช้งานได้
vXlFile = คำขอ (XlBook)
หาก vXlFile <> ว่างเปล่าแล้ว
vXlRange = คำขอ (XlTypedRange)
ถ้า vXlRange = ว่างเปล่า จากนั้น
vXlRange = A:IV
อื่น
vXlRange = แทนที่(vXlRange, !, $)
สิ้นสุดถ้า
vXlHasHeadings = คำขอ (XlHasHeadings)
' สร้างการเชื่อมต่อ
vXlFilePath = Server.MapPath(vXlFile)
vConnString = DRIVER={ไดรเวอร์ Microsoft Excel (*.xls)};ReadOnly=1;DBQ= & _ vXlFilePath
ตั้งค่า oConn = GetConnection (vConnString)
อื่น
v ปิดการใช้งาน = ปิดการใช้งาน
สิ้นสุดถ้า
-
<ชื่อฟอร์ม=วิธีการ MyForm=การกระทำ POST=<%=Request.ServerVariables(SCRIPT_NAME)%>>
<เส้นขอบตาราง=1 ความกว้าง=100%>
<tr>
<th>สมุดงาน :</th>
<td>
<select name=XlBook LANGUAGE=javascript onchange=return XlBook_onchange(MyForm)>
<%= BookOptions(vXlFile) %>
</select></td>
<td align=center>ใบงาน :</td>
<td><select <%=vDisabled%> name=XlSheet LANGUAGE=javascript onchange=return XlSheet_onchange(MyForm)>
<%= NamedRangeOptions(oConn, vXlRange, ตารางระบบ) %>
</select></td>
</tr>
<tr>
<th>ช่วง :</th>
<td><input type=text name=XlTypedRange LANGUAGE=javascript onchange=return XlTypedRange_onchange(MyForm)
ค่า =<%= vXlRange %>></td>
<td align=center>ช่วงที่ตั้งชื่อ :</td>
<td><select <%=vDisabled%> name=XlNamedRange LANGUAGE=javascript onchange=return XlNamedRange_onchange(MyForm)>
<%= NamedRangeOptions(oConn, vXlRange, TABLE) %>
</select></td>
</tr>
<tr>
<th>
<p> </th>
<td โคลสแปน=3>
<ประเภทอินพุต=ชื่อกล่องกาเครื่องหมาย=XlHasHeadings
<%= ตรวจสอบแล้ว (vXlHasHeadings) %>
value=True> แสดงแถวแรกเป็นส่วนหัวของคอลัมน์</td>
</tr>
<tr>
<th>
<p> </th>
<td โคลสแปน=3>
<a href=<%= vXlFile %>><%= vXlFile %></a>
</td>
</tr>
</ตาราง>
<ประเภทอินพุต=ค่าส่ง=ชื่อส่ง=cmdSubmit>
<ชนิดอินพุต=ค่ารีเซ็ต=ชื่อรีเซ็ต=cmdReset>
</แบบฟอร์ม><hr>
-
หาก vXlRange <> ว่างเปล่า จากนั้น
การตอบสนองเขียน DataTable (oConn, vXlRange, vXlHasHeadings)
สิ้นสุดถ้า
-
</ร่างกาย>
</html>