Import Excel
เอาำำไฟล์ Ecxel มาใส่ใน Grid
ตอนที่ผมเข้ามาทำงานใหม่ ๆ ได้รับ Project เล็ก ๆ ตัวหนึ่ง ก็คือ ต้องการเอาไฟล์ Excel มาใส่ใน Grid หลังจากนั้นก็เอาข้อมูลมาใส่ใน Data Base หรือเรียกง่ายๆ ว่า โปรแกรม Import Excel นั่นแหละครับ นั่งนิ่งไปเป็นเดือน เครียดมากตามประสา เด็กจบใหม่ โชคยังเข้าข้างที่ไปเจอโค้ดนี้เข้า ก็ไหน ๆ แล้วเดียวยาว เริ่มกันเลย
เตรียมความพร้อมเพิ่ม Components มาก่อนนะ
วิธีการเพิ่ม Components ที่ใช้
คลิกขวาตรงที่ว่างใน Tool Box จะขึ้นข้อความมาให้เลือก Conponensts... ตามรูปเลย
เลือก Conponensts สองตัวนี้
- Micorsoft Common Dialog Control 6.0
- Micorsoft FlexGrid Control 6.0
แล้วทำเครื่องหมายถูก ครับ
ออกแรงหน่อย หาเอานะึครับเพราะความจริงแล้วจะแสดง Conponensts เยอะกว่านี้
หน้าจอที่ไว้สำหรับการทดลอง นะจ๊ะ
กำหนดคุณสมบัติของ MSFlexGrid1 ดังนี้ครับ
ก็คือเลือก ข้อมูลที่ได้มาจาก ตัว Control Data นั่นแหละครับ
Code
Private Sub Command1_Click() Dim PFileName As String PFileName = "" CommonDialog1.Flags = cdlOFNHideReadOnly CommonDialog1.Filter = "Excel(*.xls)|*.xls" CommonDialog1.FilterIndex = 2 CommonDialog1.ShowOpen PFileName = CommonDialog1.FileName Data1.Connect = "Excel 5.0;" Data1.DatabaseName = Trim(PFileName) Data1.RecordSource = "Sheet1$" 'ชื่อไฟล์ Excel ผมตั้งไว้จะเปิดที่ชื่อ Sheet1 เลข1เขียนติดกันนะครับอยากให้เปิด SheetName ชื่ออะไร ก็เปลี่ยนเอานะ Data1.Refresh Text1.Text = PFileName 'เอาไว้สำหรับแสดงที่อยู่ของไฟล์ที่เราเลือกนะครับ Label1.Caption = MSFlexGrid1.Rows - 1 'เอาไว้นับข้อมูลของ Excel ไม่รวมกัน (Header) หัวตารางนะครับ ลองดู End Sub
การทำงานนะครับ
กดปุ่ม Command1 ปุ่มที่ผมทำไว้ก็คือ ปุ่ม ..... นั่นแหละ
แล้วก็ไปเลือกไฟล์ Excel ที่ต้องการครับ
ไฟล์ Excel ก็จะถูกนำมาใส่ใน Grid แล้ว ไม่ยากใช่ไหม ? แต่ผมเขียนให้มันยาวไปเอง 555+
ปล.อยากให้สวยก็ต้องจัดระเบียน Grid เอานะ