เนื้อหาหลักของบทความนี้คือการใช้ ASP เพื่อส่งออกตัวอย่างไฟล์ Excel
วิธีหนึ่งในการใช้ Excel ใน ASP คือการเชื่อมโยงไฟล์ Excel เป็นฐานข้อมูลและการดำเนินการนั้นคล้ายกับการดำเนินการฐานข้อมูลการเข้าถึง สำหรับรูปแบบคงที่รูปแบบนี้มีการรวมเซลล์ที่ซับซ้อนรูปแบบเส้นขอบรูปแบบรูปแบบความสัมพันธ์สูตรระหว่างเซลล์ ฯลฯ ฉันคิดว่าสิ่งที่ง่ายที่สุดที่จะเข้าใจคือการเปิดการตั้งค่าที่มีอยู่ในไฟล์เทมเพลตที่ดี , บันทึก, เอาต์พุต ...
วิธีการที่กล่าวถึงในที่นี้คือการสร้างวัตถุ Excel โดยตรงซึ่งสามารถดำเนินการต่าง ๆ บนเอกสาร Excel ได้อย่างสะดวกยิ่งขึ้นในพื้นหลัง
ฝั่งเซิร์ฟเวอร์ยังจำเป็นต้องตั้งค่าสิทธิ์การทำงานของส่วนประกอบ COM พิมพ์ DCOMCNFG บนบรรทัดคำสั่งและป้อนอินเตอร์เฟสการกำหนดค่าคอมโพเนนต์ COM รีสตาร์ทเซิร์ฟเวอร์หลังจากบันทึก
มันสำคัญมาก
อย่างไรก็ตามวิธีนี้ยังมีข้อเสียเปรียบ ยังไม่ได้ตั้งค่าอย่างถูกต้อง
นอกจากนี้รูปแบบรหัสตัวอย่างในบทความที่ยกมาข้างต้นไม่สมบูรณ์มากและช่องว่างและช่องว่างจำนวนมากไม่ถูกต้อง การวิจัยและแก้ไขมันจะเริ่มต้นได้ง่าย
รหัสโปรแกรม:
- -
- onerrorresumenext
- straddr = server.mappath (.)
- setObjExcelApp = createObject (excel.application)
- objexcelapp.displayalerts = false
- objexcelapp.application.visible = false
- objexcelapp.workbooks.open (straddr &/templet/null.xls)
- setObjExcelbook = objexcelapp.activeworkbook
- setobjexcelsheets = objexcelbook.worksheets
- setobjexcelsheet = objexcelbook.sheets (1)
- OBJEXCELSSHEET.Range (B2: K2) .Value = Array (Week1, Week2, Week3, Week4, Week5, Week6, Week6, Week7)
- Objexcelsheet.Range (B3: K3) .Value = Array (67,87,5,9,7,45,45,54,54,10)
- Objexcelsheet.Range (B4: K4) .Value = อาร์เรย์ (10,10,8,27,33,37,50,54,10,10)
- Objexcelsheet.Range (B5: K5) .Value = Array (23,3,86,64,60,18,5,1,1,36,80)
- objexcelsheet.cells (3,1) .Value = internetExPlorer
- objexcelsheet.cells (4,1) .Value = netScape
- objexcelsheet.cells (5,1) .Value = อื่น ๆ
- objexcelsheet.Range (B2: K5) .Select
- Saveas (straddr &/temp/excel.xls)
- objexcelapp.quit
- SetObjExcelApp = ไม่มีอะไร
- -
- <! doctypehtmlpublic-// w3c // dtdhtml4.0transitional // en>
- <html>
- <head>
- <title> NewDocument </title>
- <metaname = generatorContent = MicrosoftFrontPage5.0>
- <metaname = utherContent =>
- <metaname = keywordscontent =>
- <metaname = descriptionContent =>
- </head>
- <body>
- </body>
- </html>
หลังจากใช้งานไฟล์ Excel คุณต้องส่งออกไฟล์ หากต้องการเปิดโดยตรงใน IE อย่าวางไฟล์ Excel ด้วย FSO แล้วเอาต์พุตใน IE
รหัสโปรแกรม:
- -
- dimfso, fileext, strfilepath, mime
- strfilepath = f: /aspxuexi.doc
- setfso = server.createObject (scripting.filesystemobject)
- fileext = fso.getextensionName (strfilePath)
- setfso = ไม่มีอะไร
- SELECTCASEFILEEXT
- casedoc
- mime = application/msword
- casexls
- mime = application/msexcel
- endelect
- Coloutput (StrFilePath, MIME)
- '################################################################# #####
- functionOutput (strfilepath, mime)
- Response.ContentType = MIME
- ConstadTypeBinary = 1
- setObjstream = server.createObject (adodb.stream)
- objstream.open
- objstream.type = adtypebinary
- objstream.loadFromFilestFilePath
- Response.binaryWriteobjstream.read
- objstream.close
- setObjstream = ไม่มีอะไร
- endfunction
- '################################################################# #####
- -
ในแอปพลิเคชันจริงเมื่อเซิร์ฟเวอร์กำลังเรียกใช้โปรแกรม Excel หรือการเข้าถึงไคลเอนต์ส่งการจัดตั้งวัตถุ Excel.Application โดยไม่ประสบความสำเร็จ . คำขอไม่สามารถประสบความสำเร็จได้!
มีตัวอย่างที่ประสบความสำเร็จในเครือข่ายภายในของแผนกของเรา การทำงานบนเครือข่ายพื้นที่ท้องถิ่นระดับความปลอดภัยของไคลเอน ตรวจสอบแล้ว)
รหัสที่นำไปใช้นั้นคล้ายกับบันทึกก่อนหน้าและข้อความที่ง่ายที่สุดมีดังนี้:
รหัสโปรแกรม:
- <scriptLanguage = vbscript>
- setObjExcelApp = createObject (excel.application)
- objexcelapp.displayalerts = true
- objexcelapp.workbooks.open (http://xxx.xxx.xxx/xxx.xls)
- 'ไฟล์ XLS ที่มีที่อยู่เครือข่ายที่สมบูรณ์ไฟล์นี้ได้รับการจัดรูปแบบและพิมพ์และบันทึกบนเซิร์ฟเวอร์
- setObjExcelbook = objexcelapp.activeworkbook
- setobjexcelsheets = objexcelbook.worksheets
- setobjexcelsheet = objexcelbook.sheets (1)
- '==== นี่คือคำสั่งที่เติมข้อมูลในเซลล์ Excel
- 'ตัวอย่าง: response.writeobjexcelsheet.range (b2) .value = & rs (xxx) &
- 'หรือ objexcelsheet.Range (b2) .Value = <%= rs (xxx)%>
- OBJEXCELSSHEET.Range (B2: K2) .Value = Array (Week1, Week2, Week3, Week4, Week5, Week6, Week6, Week7)
- Objexcelsheet.Range (B3: K3) .Value = Array (67,87,5,9,7,45,45,54,54,10)
- Objexcelsheet.Range (B4: K4) .Value = อาร์เรย์ (10,10,8,27,33,37,50,54,10,10)
- Objexcelsheet.Range (B5: K5) .Value = Array (23,3,86,64,60,18,5,1,1,36,80)
- objexcelsheet.cells (3,1) .Value = internetExPlorer
- objexcelsheet.cells (4,1) .Value = netScape
- objexcelsheet.cells (5,1) .Value = อื่น ๆ
- -
- 'objexcelapp.quit
- 'SetObjExcelApp = ไม่มีอะไร
- </script>
ในรหัสข้างต้น
- 'objexcelapp.quit
- 'SetObjExcelApp = ไม่มีอะไร
ในการยกเลิกอย่าปิด excel.applicaition ที่นี่มิฉะนั้น Excel จะถูกปิดหลังจากกรอกข้อมูล
ข้างต้นเป็นกระบวนการทั้งหมดของการใช้ ASP เพื่อส่งออกไฟล์ Excel