สรุปการทำงานของ ASP เทคโนโลยี Excel
สารบัญ
1. การกำหนดค่าสภาพแวดล้อม
2. การทำงานพื้นฐานของ ASP บน Excel
3. ASP ใช้งาน Excel เพื่อสร้างตารางข้อมูล
4. ASP ใช้งาน Excel เพื่อสร้างแผนภูมิ
5. โซลูชันการเรียกดู ดาวน์โหลด และลบไฟล์ Excel ฝั่งเซิร์ฟเวอร์
6. ภาคผนวก
ข้อความ
1. การกำหนดค่าสภาพแวดล้อม
เกี่ยวกับการกำหนดค่าสภาพแวดล้อมฝั่งเซิร์ฟเวอร์ เมื่อพิจารณาจากเอกสารอ้างอิง การกำหนดค่าซีรีส์ Microsoft ทั้งหมดควรจะใช้ได้ กล่าวคือ:
1. Win9x+PWS+สำนักงาน
2. Win2000 Professional+PWS+สำนักงาน
3. เซิร์ฟเวอร์ Win2000+IIS+Office
ในปัจจุบันสภาพแวดล้อมที่ผู้เขียนทดสอบได้สำเร็จคือสองสภาพแวดล้อมหลัง ไม่มีข้อกำหนดพิเศษสำหรับเวอร์ชัน Office เมื่อพิจารณาถึงความไม่แน่นอนของการกำหนดค่าไคลเอ็นต์และความเข้ากันได้ต่ำ ขอแนะนำว่าเวอร์ชัน Office ฝั่งเซิร์ฟเวอร์ไม่ควรสูงเกินไปเพื่อป้องกันไม่ให้ไคลเอ็นต์ไม่สามารถแสดงได้อย่างถูกต้องหลังจากดาวน์โหลด
การค้นพบโดยบังเอิญอีกสองประการเกี่ยวกับการกำหนดค่าสภาพแวดล้อมฝั่งเซิร์ฟเวอร์คือ:
1. เดิมทีเครื่องพัฒนาของผู้เขียนติดตั้ง WPS2002 ของ Kingsoft แต่มีปัญหากับการสร้างวัตถุ Excel อยู่เสมอ หลังจากถอนการติดตั้ง WPS2002 ข้อผิดพลาดก็หายไป
2. ผู้เขียนชอบใช้ FrontPage เมื่อพัฒนาโค้ด ASP ปรากฎว่าหากเปิด FrontPage (ฝั่งเซิร์ฟเวอร์) การสร้างวัตถุจะไม่เสถียร บางครั้งก็สำเร็จ และบางครั้งก็ไม่สำเร็จ หลังจากการตรวจสอบอย่างละเอียด เราพบว่าหากซอฟต์แวร์ซีรีส์ Office ทำงานบนฝั่งเซิร์ฟเวอร์ การสร้างออบเจ็กต์ Excel ให้สำเร็จเป็นเรื่องยาก
อีกสิ่งหนึ่งที่ต้องตั้งค่าบนฝั่งเซิร์ฟเวอร์คือการอนุญาตการดำเนินการของส่วนประกอบ COM พิมพ์ DCOMCNFG บนบรรทัดคำสั่งเพื่อเข้าสู่อินเทอร์เฟซการกำหนดค่าคอมโพเนนต์ COM เลือก Microsoft Excel แล้วคลิกปุ่มคุณสมบัติ เลือกปรับแต่งสำหรับทั้งสามตัวเลือก และเพิ่มทุกคนในการอนุญาตทั้งหมดในระหว่างการแก้ไข รีสตาร์ทเซิร์ฟเวอร์หลังจากบันทึก
ไม่มีอะไรพิเศษเกี่ยวกับการกำหนดค่าสภาพแวดล้อมของไคลเอ็นต์ ตราบใดที่มีการติดตั้ง Office และ IE เวอร์ชันสากลใดๆ ก็ดูเหมือนว่าจะใช้ได้
2. การทำงานพื้นฐานของ ASP บน Excel
1. สร้างวัตถุ Excel
ตั้งค่า objExcelApp = CreateObject(Excel.Application)
objExcelApp.DisplayAlerts = false ไม่แสดงคำเตือน
objExcelApp.Application.Visible = false ไม่แสดงอินเทอร์เฟซ
2. สร้างไฟล์ Excel ใหม่
objExcelApp.WorkBooks.add
ตั้งค่า objExcelBook = objExcelApp.ActiveWorkBook
ตั้งค่า objExcelSheets = objExcelBook.Worksheets
ตั้ง objExcelSheet = objExcelBook.Sheets(1)
3. อ่านไฟล์ Excel ที่มีอยู่
strAddr = เซิร์ฟเวอร์ MapPath(.)
objExcelApp.WorkBooks.Open (strAddr & /Templet/Table.xls)
ตั้งค่า objExcelBook = objExcelApp.ActiveWorkBook
ตั้งค่า objExcelSheets = objExcelBook.Worksheets
ตั้ง objExcelSheet = objExcelBook.Sheets(1)
4. บันทึกไฟล์ Excel เป็น
objExcelBook.SaveAs strAddr & /Temp/Table.xls
5. บันทึกไฟล์ Excel
objExcelBook.Save (ผู้เขียนบันทึกสำเร็จเมื่อทำการทดสอบ แต่หน้ารายงานข้อผิดพลาด)
6. ออกจากการทำงานของ Excel
objExcelApp.Quit ต้องออก
ตั้ง objExcelApp = ไม่มีเลย
3. ASP ใช้งาน Excel เพื่อสร้างตารางข้อมูล
1. แทรกข้อมูลในช่วง
objExcelSheet.Range(B3:k3).Value = อาร์เรย์(67, 87, 5, 9, 7, 45, 45, 54, 54, 10)
2. แทรกข้อมูลลงในเซลล์
objExcelSheet.Cells(3,1).Value=Internet Explorer
3. เลือกช่วง
4. วาดเส้นหนาทางด้านซ้ายของเซลล์
5. วาดเส้นหนาทางด้านขวาของเซลล์
6. วาดเส้นหนาที่ด้านบนของเซลล์
7. วาดเส้นหนาใต้เซลล์
8. ตั้งค่าสีพื้นหลังของเซลล์
9. รวมเซลล์
10. แทรกแถว
11. แทรกคอลัมน์
4. ASP ใช้งาน Excel เพื่อสร้างแผนภูมิ
1. สร้างแผนภูมิแผนภูมิ
objExcelApp.Charts.Add
2. ตั้งค่าประเภทแผนภูมิ
objExcelApp.ActiveChart.ChartType = 97
หมายเหตุ: แผนภูมิเส้นสองมิติ 4; แผนภูมิวงกลมสองมิติ 5;
3. ตั้งชื่อแผนภูมิ
objExcelApp.ActiveChart.HasTitle = จริง
objExcelApp.ActiveChart.ChartTitle.Text = แผนภูมิทดสอบ
4. ตั้งค่ากราฟิกผ่านข้อมูลตาราง
objExcelApp.ActiveChart.SetSourceData objExcelSheet.Range(A1:k5),1
5. ตั้งค่าข้อมูลกราฟิกโดยตรง (แนะนำ)
objExcelApp.ActiveChart.SeriesCollection.NewSeries
objExcelApp.ActiveChart.SeriesCollection(1).ชื่อ = =333
objExcelApp.ActiveChart.SeriesCollection(1).ค่า = =
6. ผูกแผนภูมิ
objExcelApp.ActiveChart.ตำแหน่ง 1
7. แสดงตารางข้อมูล
objExcelApp.ActiveChart.HasDataTable = จริง
8. แสดงคำอธิบาย
objExcelApp.ActiveChart.DataTable.ShowLegendKey = จริง
5. โซลูชันการเรียกดู ดาวน์โหลด และลบไฟล์ Excel ฝั่งเซิร์ฟเวอร์
มีวิธีแก้ไขปัญหามากมายสำหรับการเรียกดู รวมถึง Location.href=, Navigate และ Response.Redirect ขอแนะนำให้ใช้วิธีไคลเอ็นต์ เนื่องจากจะทำให้เซิร์ฟเวอร์มีเวลามากขึ้นในการสร้างไฟล์ Excel
การใช้งานการดาวน์โหลดนั้นยุ่งยากกว่าเล็กน้อย เป็นทางออกที่ดีกว่าในการดาวน์โหลดส่วนประกอบจากเซิร์ฟเวอร์สำเร็จรูปบนอินเทอร์เน็ต หรือปรับแต่งและพัฒนาส่วนประกอบด้วยตนเอง อีกวิธีหนึ่งคือการใช้งานส่วนประกอบ Excel บนไคลเอนต์ และไคลเอนต์ดำเนินการไฟล์ Excel ฝั่งเซิร์ฟเวอร์และบันทึกลงในไคลเอนต์ วิธีนี้ต้องการให้ไคลเอ็นต์เปิดสิทธิ์ในการดำเนินการของตัวควบคุม ActiveX ที่ไม่ปลอดภัย เมื่อพิจารณาถึงปัญหาในการแจ้งลูกค้าแต่ละรายให้ตั้งค่าเซิร์ฟเวอร์เป็นไซต์ที่เชื่อถือได้ ขอแนะนำให้ใช้วิธีแรกเพื่อบันทึกปัญหา
แผนการลบประกอบด้วยสามส่วน:
ตอบ: ไฟล์ Excel ที่สร้างโดยผู้ใช้คนเดียวกันจะใช้ชื่อไฟล์เดียวกัน ชื่อไฟล์สามารถประกอบด้วยหมายเลข ID ผู้ใช้หรือหมายเลข ID เซสชันเพื่อให้แน่ใจว่าสตริงไม่ซ้ำกัน วิธีนี้ไฟล์ใหม่จะเขียนทับไฟล์ก่อนหน้าโดยอัตโนมัติเมื่อสร้างขึ้น
B: เมื่อเหตุการณ์ Session_onEnd ถูกตั้งค่าในไฟล์ Global.asa ให้เริ่มทำงาน ให้ลบไฟล์ชั่วคราว Excel ของผู้ใช้รายนี้
C: เมื่อเหตุการณ์ Application_onStart ถูกตั้งค่าในไฟล์ Global.asa ให้เริ่มทำงาน ให้ลบไฟล์ทั้งหมดในไดเร็กทอรีชั่วคราว
หมายเหตุ: โครงสร้างไดเร็กทอรีที่แนะนำ/ไดเร็กทอรีรหัส Src/ไดเร็กทอรีเทมเพลต Templet/ไดเร็กทอรีหน่วยเก็บข้อมูลชั่วคราวชั่วคราว
6. ภาคผนวก
กระบวนการที่ไม่ทำงานของ Excel เมื่อเกิดข้อผิดพลาดทำให้ปวดหัว การเพิ่ม On Error Resume Next ก่อนแต่ละไฟล์จะช่วยปรับปรุงสถานการณ์นี้ เนื่องจากจะยืนยันให้ดำเนินการกับ Application.Quit ไม่ว่าไฟล์จะสร้างข้อผิดพลาดหรือไม่ เพื่อให้มั่นใจว่าไม่มีกระบวนการที่เสียหายเหลืออยู่หลังจากการเรียกใช้โปรแกรมแต่ละครั้ง