สารบัญ 1. การกำหนดค่าสภาพแวดล้อม 2. การทำงานพื้นฐานของ ASP บน Excel 3. ASP ใช้งาน Excel เพื่อสร้างตารางข้อมูล 4. ASP ใช้งาน Excel เพื่อสร้างไดอะแกรมแผนภูมิ 5. โซลูชันการเรียกดูไฟล์ Excel ฝั่งเซิร์ฟเวอร์ การดาวน์โหลด และการลบ 6.
ข้อความภาคผนวก 1 เซิร์ฟเวอร์การกำหนดค่าสภาพแวดล้อม เมื่อพิจารณาจากเอกสารอ้างอิงสำหรับการกำหนดค่าสภาพแวดล้อมเทอร์มินัล การกำหนดค่า Microsoft series ทั้งหมดควรจะใช้ได้ กล่าวคือ:
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 = Server.MapPath(".")
objExcelApp.WorkBooks.Open(strAddr & "TempletTable.xls")
ตั้งค่า objExcelBook = objExcelApp.ActiveWorkBook
ตั้งค่า objExcelSheets = objExcelBook.Worksheets
ตั้ง objExcelSheet = objExcelBook.Sheets(1)
4. บันทึกไฟล์ Excel เป็น
objExcelBook.SaveAs strAddr & "TempTable.xls"
5. บันทึกไฟล์ Excel
objExcelBook.Save (ผู้เขียนบันทึกสำเร็จเมื่อทำการทดสอบ แต่หน้ารายงานข้อผิดพลาด)
6. ออกจากการทำงานของ Excel
objExcelApp.Quit ต้องออก
set objExcelApp = ไม่มี
3. ASP ใช้งาน Excel เพื่อสร้างตารางข้อมูล
1. แทรกข้อมูลในช่วง
objExcelSheet.Range("B3:k3").Value = Array("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).Values = "={1,4,5,6,2}"
6. ผูกแผนภูมิ
objExcelApp.ActiveChart.ตำแหน่ง 1
7. แสดงตารางข้อมูล
objExcelApp.ActiveChart.HasDataTable = จริง
8. แสดงคำอธิบาย
objExcelApp.ActiveChart.DataTable.ShowLegendKey = True
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ไดเร็กทอรีเทมเพลตเทมเพลตชั่วคราวไดเร็กทอรีหน่วยเก็บข้อมูลชั่วคราว
6 กระบวนการที่ไม่ทำงานของ Excel เมื่อเกิดข้อผิดพลาดในภาคผนวกเป็นสิ่งที่ลำบากมาก การเพิ่ม "On Error Resume Next" ก่อนแต่ละไฟล์จะช่วยปรับปรุงสถานการณ์นี้ เนื่องจากจะยืนยันให้ดำเนินการไปที่ "Application.Quit" ไม่ว่าไฟล์จะสร้างข้อผิดพลาดหรือไม่ เพื่อให้มั่นใจว่าแต่ละโปรแกรมจะถูกดำเนินการโดยไม่ทิ้งกระบวนการทางตันไว้ .