1. การใช้ OWC
OWC คืออะไร?
OWC เป็นตัวย่อของ Office Web Compent ซึ่งเป็น Office Web Component ของ Microsoft มีกลไกที่ยืดหยุ่นและเป็นพื้นฐานสำหรับการวาดภาพกราฟิกบนเว็บ ในสภาพแวดล้อมอินทราเน็ต หากสันนิษฐานได้ว่ามีเบราว์เซอร์เฉพาะและซอฟต์แวร์ที่มีประสิทธิภาพบางอย่าง (เช่น IE5 และ Office 2000) อยู่ในคอมพิวเตอร์ไคลเอ็นต์ ก็เป็นไปได้ที่จะใช้ Office Web Components เพื่อจัดเตรียมสภาพแวดล้อมการพัฒนากราฟิกเชิงโต้ตอบ ในโหมดนี้ เวิร์กสเตชันไคลเอ็นต์จะแบ่งใช้สัดส่วนขนาดใหญ่ของงานทั้งหมด
<%ตัวเลือกที่ชัดเจน
คลาสExcelGen
objSpreadsheet ส่วนตัว
iColOffset ส่วนตัว
iRowOffset ส่วนตัว
SubClass_Initialize()
ตั้ง objSpreadsheet = Server.CreateObject("OWC.Spreadsheet")
iRowOffset = 2
iColOffset=2
สิ้นสุด
ย่อยย่อย Class_Terminate()
ตั้งค่า objSpreadsheet = ไม่มีสิ่งใด 'ล้างข้อมูล'
สิ้นสุด
ทรัพย์สินสาธารณะย่อยให้ ColumnOffset (iColOff)
ถ้า iColOff > 0 แล้ว
iColOffset = iColOff
อื่น
iColOffset=2
สิ้นสุดถ้า
ปลายทาง อสังหาริมทรัพย์
สาธารณะ ให้ RowOffset(iRowOff)
ถ้า iRowOff > 0 แล้ว
iRowOffset = iRowOff
อื่น
iRowOffset = 2
สิ้นสุดถ้า
แผ่นงานสร้างคุณสมบัติย่อยสุดท้าย (objRS)
'เติมแผ่นงาน Excel ตามเนื้อหาของชุดระเบียน
'เริ่มต้นด้วยการแสดงชื่อเรื่อง
ถ้า objRS.EOF ให้ออกจาก Sub
หรี่ objField, iCol, iRow
iCol = iColOffset
iRow = iRowOffset
สำหรับแต่ละ objField ใน objRS.Fields
objSpreadsheet.Cells(iRow, iCol).Value = objField.Name
objSpreadsheet.Columns(iCol).AutoFitColumns
'ตั้งค่าแบบอักษรในตาราง Excel
objSpreadsheet.Cells(iRow, iCol).Font.Bold = True
objSpreadsheet.Cells(iRow, iCol).Font.Italic = เท็จ
objSpreadsheet.Cells(iRow, iCol).Font.Size = 10
objSpreadsheet.Cells(iRow, iCol).Halignment = 2 'กึ่งกลาง
ไอคอล = ไอคอล + 1
ถัดไป 'objField
'แสดงข้อมูลทั้งหมด
ทำในขณะที่ไม่ objRS.EOF
iRow = iRow + 1
iCol = iColOffset
สำหรับแต่ละ objField ใน objRS.Fields
ถ้า IsNull(objField.Value) แล้ว
objSpreadsheet.Cells(iRow, iCol).Value = ""
อื่น
objSpreadsheet.Cells(iRow, iCol).Value = objField.Value
objSpreadsheet.Columns(iCol).AutoFitColumns
objSpreadsheet.Cells(iRow, iCol).Font.Bold = เท็จ
objSpreadsheet.Cells(iRow, iCol).Font.Italic = เท็จ
objSpreadsheet.Cells(iRow, iCol).Font.Size = 10
สิ้นสุดถ้า
ไอคอล = ไอคอล + 1
ถัดไป 'objField
objRS.MoveNext
วนซ้ำ
สิ้นสุดฟังก์ชันย่อย SaveWorksheet(strFileName)
'บันทึกเวิร์กชีทเป็นชื่อไฟล์ที่ระบุ'
เมื่อเกิดข้อผิดพลาด ดำเนินการต่อต่อไป
โทร objSpreadsheet.ActiveSheet.Export (strFileName, 0)
SaveWorksheet = (ข้อผิดพลาดหมายเลข = 0)
ฟังก์ชันสิ้นสุด
จบคลาส
Dim objRS
ตั้ง objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open "SELECT * FROM xxxx", "Provider=SQLOLEDB.1;Persist Security
Info=True;User ID=xxxx;Password=xxxx;Initial Catalog=xxxx;Data source=xxxx;"
Dim SaveName
SaveName = Request.Cookies("savename")("ชื่อ")
ติ่ม objExcel
DimExcelPath
ExcelPath = "Excel" & บันทึกชื่อ & ".xls"
ตั้งค่า objExcel = ExcelGen ใหม่
objExcel.RowOffset = 1
objExcel.ColumnOffset = 1
objExcel สร้างแผ่นงาน (objRS)
ถ้า objExcel.SaveWorksheet(Server.MapPath(ExcelPath)) แล้ว
'Response.Write "<html><body bgcolor='gainsboro' text='#000000'>บันทึกเป็นไฟล์ Excel
<a href='" & server.URLEncode(ExcelPath) & "'>ดาวน์โหลด</a> "
อื่น
ตอบกลับเขียน "เกิดข้อผิดพลาดระหว่างการบันทึก!"
สิ้นสุดถ้า
ตั้ง objExcel = ไม่มีเลย
objRS.ปิด
ตั้ง objRS = ไม่มีเลย
-
2. ใช้ส่วนประกอบของแอปพลิเคชัน Excel เพื่อส่งออกไปยัง Excel หรือ Word บนไคลเอนต์
หมายเหตุ: "data" ในฟังก์ชันทั้งสองคือ id ของตารางที่จะส่งออกในหน้าเว็บ
<input type="hidden" name="out_word " onclick="vbscript :buildDoc" value="ส่งออกเป็นคำ" class="notPrint">
<input type="hidden" name="out_excel" onclick="AutomateExcel();" value="ส่งออกไปยัง excel" class="notPrint">
ส่งออกไปยังโค้ด Excel
<SCRIPT LANGUAGE="javascript">
-
ฟังก์ชั่น AutomateExcel()
-
// เริ่ม Excel และรับวัตถุแอปพลิเคชัน
var oXL = ใหม่ ActiveXObject("Excel.Application");
// รับสมุดงานใหม่
var oWB = oXL.Workbooks.Add();
var oSheet = oWB.ActiveSheet;
ตาราง var = document.all.data;
var hang = table.rows.length;
var lie = table.rows(0).cells.length;
// เพิ่มส่วนหัวของตารางทีละเซลล์
สำหรับ (i=0;i<hang;i++)
-
สำหรับ (j=0;j<lie;j++)
-
oSheet.Cells(i+1,j+1).value = table.rows(i).cells(j).innerText;
}
}
oXL.Visible = จริง;
oXL.UserControl = จริง;
-
-
</SCRIPT>
ส่งออกเป็นโค้ด Word
<script language="vbscript"><
buildDoc ย่อย
ตั้งค่าตาราง = document.all.data
แถว = ตาราง.แถว.ความยาว
column = table.rows(1).cells.length
Set objWordDoc = CreateObject("Word.Document")
objWordDoc.Application.Documents.Add theTemplate, False
objWordDoc.Application.Visible=
ค่า Dim theArray ที่แท้จริง (20,10000)
สำหรับ i=0 ถึงแถว-1
สำหรับ j=0 ถึงคอลัมน์-1
theArray(j+1,i+1) = table.rows(i).cells(j).innerTEXT
ต่อไป
ต่อไป
objWordDoc.Application.ActiveDocument.Paragraphs.Add.Range.InsertBefore("ชุดผลลัพธ์แบบสอบถามที่ครอบคลุม") //แสดงชื่อตาราง
objWordDoc.Application.ActiveDocument.Paragraphs.Add.Range.InsertBefore("")
ตั้งค่า rngPara = objWordDoc.Application.ActiveDocument.Paragraphs(1).Range
ด้วย rngPara
.Bold = True //ทำให้หัวเรื่องเป็นตัวหนา
.ParagraphFormat.Alignment = 1 //จัดกึ่งกลางหัวเรื่อง
.Font.Name = "สคริปต์อย่างเป็นทางการ" //กำหนดแบบอักษรของชื่อ
.Font.Size = 18 //กำหนดขนาดตัวอักษรของหัวเรื่อง
จบด้วย
ตั้งค่า rngCurrent = objWordDoc.Application.ActiveDocument.Paragraphs(3).Range
ตั้งค่า tabCurrent = ObjWordDoc.Application.ActiveDocument.Tables.Add(rngCurrent,row,column)
สำหรับ i = 1 ไปยังคอลัมน์
objWordDoc.Application.ActiveDocument.Tables(1).Rows(1).Cells(i).Range.InsertAfter theArray (ฉัน,1)
objWordDoc.Application.ActiveDocument.Tables(1).แถว(1).เซลล์(i).Range.ParagraphFormat.alignment=1
ต่อไป
สำหรับ i = 1 ถึงคอลัมน์
สำหรับ j = 2 ถึงแถว
objWordDoc.Application.ActiveDocument.Tables(1).Rows(j).Cells(i).Range.InsertAfter theArray(i,j)
objWordDoc.Application.ActiveDocument.Tables(1).แถว(j).เซลล์(i).Range.ParagraphFormat.alignment=1
ต่อไป
ถัดไป
จบย่อย
</SCRIPT>
3. เปิดโดยตรงใน IE แล้วบันทึกเป็นไฟล์ EXCEL
ใช้รูปแบบ <table> เพื่อแสดงข้อมูลที่อ่านบนหน้าเว็บ ขณะเดียวกัน ให้เพิ่มประโยคถัดไปเพื่อแสดง EXCEL ตารางบนไคลเอนต์
<%response.ContentType ="application/vnd.ms-excel"%>
หมายเหตุ: ในเพจที่แสดง จะมีเอาต์พุตเพียง <table> เท่านั้น วิธีที่ดีที่สุดคืออย่าส่งออกข้อมูลอื่นนอกเหนือจากตารางอื่น
4. ส่งออก csv โดยคั่นด้วยเครื่องหมายจุลภาคแบบครึ่งความกว้าง
ใช้วิธี fso เพื่อสร้างไฟล์ข้อความและสร้างไฟล์ csv ที่มีนามสกุล ในไฟล์นี้ หนึ่งบรรทัดคือหนึ่งบรรทัดของตารางข้อมูล สร้างเขตข้อมูลตารางข้อมูลที่คั่นด้วยเครื่องหมายจุลภาคครึ่งความกว้าง (จะไม่แนะนำวิธีการสร้างไฟล์ข้อความโดย fso)
ข้อมูลเบื้องต้นเกี่ยวกับไฟล์ CSV (ไฟล์ที่คั่นด้วยเครื่องหมายจุลภาค)
เลือกตัวเลือกนี้ จากนั้นระบบจะสร้างไฟล์ CSV สำหรับการดาวน์โหลด โดยที่ CSV เป็นรูปแบบไฟล์ที่พบบ่อยที่สุดที่สามารถนำเข้ามาได้ แบบฟอร์มพีซีและฐานข้อมูลต่างๆ ได้อย่างง่ายดาย
โปรดทราบว่าแม้ว่าคุณจะเลือกตารางเป็นรูปแบบผลลัพธ์ คุณยังคงสามารถดาวน์โหลดผลลัพธ์เป็นไฟล์ CSV ได้ ที่ด้านล่างของหน้าจอเอาต์พุตตาราง จะมีตัวเลือก "ไฟล์ CSV" ให้คลิกที่ตัวเลือกนั้นเพื่อดาวน์โหลดไฟล์
หากคุณกำหนดค่าเบราว์เซอร์ให้เชื่อมโยงซอฟต์แวร์สเปรดชีตกับไฟล์ข้อความ (TXT)/ไฟล์ที่คั่นด้วยเครื่องหมายจุลภาค (CSV) ไฟล์จะเปิดขึ้นโดยอัตโนมัติเมื่อคุณดาวน์โหลด หลังจากดาวน์โหลด หากมีการติดตั้ง EXCEL ในเครื่อง ให้คลิกไฟล์นี้เพื่อเปิดด้วยซอฟต์แวร์ EXCEL โดยอัตโนมัติ