วิธีการเขียนหลายแถวไปยัง Excel โดยใช้ Vb.Net
![](http://ilbusinessonline.com/img/accounting-bookkeeping/909/how-write-multiple-rows-excel-using-vb.jpg)
เมื่อสร้างแอปพลิเคชัน Visual Basic.Net ให้พิจารณาเพิ่มการส่งออกไปยังคุณลักษณะ Excel นอกเหนือจากรายงานที่พิมพ์ ฟังก์ชั่นที่เพิ่มเข้ามานั้นใช้รหัสน้อยและลูกค้าของคุณสามารถเรียงลำดับและวิเคราะห์ข้อมูลในลักษณะที่พวกเขาเลือก ใช้ตัวออกแบบฟอร์มใน Visual Basic เพื่อเพิ่มฟังก์ชันนี้
1
เปิด Visual Studio และสร้างโครงการ Visual Basic ใหม่ คลิก "ไฟล์" จากนั้น "สร้างโครงการใหม่" เมื่อกล่องโต้ตอบโครงการใหม่ปรากฏขึ้นให้เลือก "Visual Basic / Windows" จากมุมมองแบบต้นไม้คลิกไอคอน "แอปพลิเคชันฟอร์ม Windows" ตั้งชื่อโครงการ "ExcelTest" จากนั้นคลิก "ตกลง ” หลังจากรอสักครู่ผู้ออกแบบฟอร์มจะปรากฏขึ้น
2
เพิ่มการอ้างอิงไปยังคอมโพเนนต์ Excel ActiveX คลิก“ โครงการ” จากเมนูแบบเลื่อนลงจากนั้นคลิก“ เพิ่มการอ้างอิง” คลิกแท็บ“ COM” แล้วเลื่อนลงไปที่“ Microsoft Excel” อาจมี Excel ในรายการมากกว่าหนึ่งรายการดังนั้นเลือกรุ่นล่าสุดที่ พร้อมใช้งานบนคอมพิวเตอร์ของลูกค้า
3
เพิ่มปุ่มให้กับฟอร์ม คลิกที่ไอคอนกล่องเครื่องมือเพื่อเปิดกล่องเครื่องมือแล้วลากปุ่มไปยังแบบฟอร์ม คลิกขวาที่ปุ่มและเลือก“ Properties” เมื่อรายการคุณสมบัติปรากฏขึ้นให้ตั้งชื่อปุ่ม“ btnToExcel” แล้วเปลี่ยนคุณสมบัติ Text เป็น“ To Excel” จากนั้นคลิกที่ปุ่มใหม่เพื่อเปิดหน้าต่างรหัส
4
เพิ่มการนำเข้าห้องสมุดไปที่ด้านบนของรหัสโปรแกรมดังต่อไปนี้:
Imports Microsoft.Office.Interop Imports System.Text Public Class Form1
5
ประกาศเขตข้อมูลส่วนตัวสำหรับวัตถุ Excel:
Private excelApp = ใหม่ Excel.Application Private excelDoc As Excel.Workbook Private excelSheet As Excel.Worksheet ช่วงส่วนตัวเป็น Excel.Range
6
สร้างเนื้อหาที่จะเข้าสู่สเปรดชีตตัวอย่างเช่น
Private Sub btnToExcel_Click(sender As System.Object, e As System.EventArgs) Handles btnToExcel.Click Dim txt As New StringBuilder Dim i, j As Integer For i = 1 To 20 For j = 1 To 10 txt.Append(i * j) txt.Append(vbTab) Next txt.AppendLine() Next Clipboard.SetText(txt.ToString)
เนื้อหาที่ส่งไปยังสเปรดชีตในตัวอย่างนี้ใช้ตารางการคูณ 10 ถึง 20 ข้อมูลทั้งหมดจะถูกผนวกเข้ากับ StringBuilder โดยมีคอลัมน์คั่นด้วยอักขระแท็บ (vbTab) และแต่ละแถวคั่นด้วยอักขระสิ้นสุดบรรทัด (โดยใช้วิธี AppendLine) หลังจากเนื้อหาทั้งหมดถูกคัดลอกไปยัง StringBuilder เนื้อหาจะถูกวางไว้ในคลิปบอร์ด เมื่อเปิดสเปรดชีตแล้วโค้ดจะวางข้อมูลนี้ลงในสเปรดชีต
7
เปิดสเปรดชีต:
excelApp = CreateObject ("Excel.Application") excelApp.Visible = True excelDoc = excelApp.Workbooks.Add () excelSheet = excelDoc.ActiveSheet
ที่นี่โปรแกรมจะสร้างวัตถุแอปพลิเคชัน Excel ใหม่โดยใช้วิธีการ CreateObject จากนั้นตั้งค่าคุณสมบัติที่มองเห็นเป็น True เพื่อบอกให้ Excel แสดงตัวเองบนหน้าจอ จากนั้นสร้างแผ่นงานใหม่และรับหมายเลขอ้างอิงไปยังเพจที่ใช้งานอยู่
8
วางข้อมูลลงในเซลล์แรกของสเปรดชีต:
range = excelSheet.Cells(1, 1) excelSheet.Paste(range) End Sub
จบชั้น
รับช่วงของเซลล์แรกจากนั้นวางเนื้อหาของคลิปบอร์ดลงในเซลล์ แท็บและตัวดึงข้อมูลบรรทัดแยกคอลัมน์และแถว
9
เรียกใช้โปรแกรม คลิก“ F5” เพื่อเริ่มโปรแกรมจากนั้นคลิกปุ่ม“ To Excel” เพื่อเปิดและดูสเปรดชีต
สิ่งที่จำเป็น
- Microsoft Visual Studio หรือ Visual Basic Express 2010
- Microsoft Office Excel 2010, 2007 หรือ XP
ปลาย
- เทคนิคเดียวกันนี้ใช้งานได้กับข้อมูลจากแบบสอบถาม SQL, ไฟล์ข้อความหรือข้อมูลอื่น ๆ ที่สามารถนำเสนอในรายงานหรือ ListView สำหรับการนำเสนอที่ดีกว่าให้ใส่ชื่อเทมเพลต Excel ลงในเมธอด Workbook.Open และข้อมูลจะซ้อนทับลงบนเทมเพลตที่จัดรูปแบบไว้ล่วงหน้า