ชุมชนคนรักภาษาเบสิค - Visual Basic Community

 ลืมรหัสผ่าน
 ลงทะเบียน
ค้นหา
ดู: 4124|ตอบกลับ: 2

นำเข้าข้อมูล Excel แสดงผ่าน Datagridview โดยใช้ OLEDB

[คัดลอกลิงก์]

11

กระทู้

31

โพสต์

427

เครดิต

ผู้ดูแลบอร์ด

Rank: 7Rank: 7Rank: 7

เครดิต
427

แก้ไขครั้งสุดท้ายโดย puklit เมื่อ 2017-12-14 08:26

การนำเข้าข้อมูล Excel ระบุ Sheet เข้ามาแสดงใน Datagridview (ในรูปแบบของ Class)

โครงสร้างของตัวอย่าง Project มีดังนี้
- FORM1 (สำหรับเลือกไฟล์ Excel ที่จะนำเข้ามาแสดงผลใน Datagridview)
- FORM2 (แสดง Sheet ทั้งหมดที่มีอยู่ใน Excel ไฟล์ที่เลือกจาก FORM1) เพื่อให้เกิดความยืดหยุ่นในการระบุ Sheet ที่จะนำเข้าได้
- Class สำหรับเขียนคำสั่งนำเข้า Excel ไฟล์มาแสดง

1. อ้างอิง Excel object library เข้ามาใน Project ที่เราสร้างขึ้นมา



2. สร้าง Class ใน Project (ในตัวอย่าง Class ที่ผมสร้างขึ้นมาชื่อ ClsImport_Excel)
ซึ่งใน Class มี 4 ส่วนดังนี้
   2.1 รับค่าพาร์ทไฟล์ Excel ที่เลือก      2.2 ติดต่อไฟล์ Excel และ Sheet ที่เลือกผ่าน OLEDB   
   2.3 แสดง Sheet ทั้งหมดที่อยู่ใน Excel file ที่เลือก ผ่านทาง Listview
   2.4 ปิด Object ของ Excel ที่สร้างขึ้นมา

3. สร้าง FORM1 สำหรับ เลือกไฟล์ และ แสดงผลการนำเข้าไฟล์ใน Data gridview
    มี Control อยู่ 2 ตัว ดังนี้
    3.1 Toolstrip
    3.2 Datagridview


สำหรับโค้ดผมเขียนไว้ที่ Toolstrip มีเพียงแค่ 2 บรรทัด ใน Click_Event ของ Toolstrip button คือ
     - ประกาศตัวแปร imp_Excel อ้างอิงไปยัง Class (ClsImport_Excel) ที่ผมเขียนไว้
     - เรียกใช้ method Import_Excel(แสดงผลใน datagridview) ผ่าน ตัวแปร imp_Excel ที่เราสร้างขึ้นมา
  1. Private Sub tsbtImport_Excel_Click(sender As Object, e As EventArgs) Handles tsbtImport_Excel.Click

  2.      Dim imp_Exl As New ClsImport_Excel()
  3.      imp_Exl.Import_Excel(dgvExcel)

  4.     End Sub
คัดลอกไปที่คลิปบอร์ด
    (หลังจากทำเสร็จแล้วโปรแกรมจะยังรันไม่ผ่านเพราะยังไม่ได้ FORM2 เพรา Class ClsImport_Excel จะอ้างอิงไปที่ FORM2 เพื่อแสดง Sheet ที่อยู่ในไฟล์ Excel ที่เราเลือก Sheet ก่อนแสดงใน Datagridview)

4. สร้าง FORM2 สำหรับแสดงรายชื่อ Sheet ในไฟล์ที่เราได้เลือกจาก FORM1 ทั้งหมดขึ้นมาเพื่อให้เราเลือก ก่อนที่จะแสดงข้อมูล Excel ใน FORM1

สำหรับโค้ดมีดังนี้     - กำหนดค่า Listview
   - อีเว้นท์ของการดับเบิ้ลคลิ๊กเลือก Sheet ใน Listview
   - อีเว้นท์ของ Form_Load (จะมีตัวแปร Exl_Sheet อ้างอิงคลาส ClsImport_Excel เพื่อเรียก method ของ Get_Excel_Sheet มาแสดงใน Listview ของ FORM2)

ทิ้งท้าย ประโยชน์ของการใช้คลาสคร่าว ๆ ดังนี้
- ลดการซ้ำซ้อนของโค้ดในโปรแกรม
- สามารถนำโค้ดกลับมาใช้โดยไม่ต้องเขียนใหม่ในโปรเจคเดิม หรือสร้างโปรเจคใหม่
- ลดเวลาในการพัฒนาโปรแกรมของเราให้เร็วขึ้น หากมีการเปลี่ยนแปลงหรือแก้ไขเราสามารถแก้ไขที่คลาสเพียงที่เดียวก็จะส่งผลให้กับส่วนต่าง ๆ ของโปรแกรมที่นำไปใช้ไม่ต้องไล่แก้หลายๆ ที่

และผมอยากเชิญชวนชาว G2GNET.com เข้ามาแลกเปลี่ยนความรู้หรือข้อคิดเห็นกันเยอะ ๆ
เพื่อให้อาจารย์ทองก้อนจะได้มีแรงผลักดันหรือมีความอยากปล่อยของ (วิชาความรู้) มากขึ้น

ไฟล์ที่ผมแนบ ใช้ Vs studio 2015 เขียนครับ


ขออภัย! โพสต์นี้มีไฟล์แนบหรือรูปภาพที่ไม่ได้รับอนุญาตให้คุณเข้าถึง

คุณจำเป็นต้อง ลงชื่อเข้าใช้ เพื่อดาวน์โหลดหรือดูไฟล์แนบนี้ คุณยังไม่มีบัญชีใช่ไหม? ลงทะเบียน

x

308

กระทู้

498

โพสต์

5971

เครดิต

ผู้ดูแลระบบ

ทองก้อน ทับทิมกรอบ

Rank: 9Rank: 9Rank: 9

เครดิต
5971
โพสต์ 2017-12-18 10:55:13 | ดูโพสต์ทั้งหมด

ยอดเยี่ยมครับผม ... หากมีอีกก็ทยอยนำมาลงได้เลยครับ เรื่องเล็กๆของเรา มันอาจจะยิ่งใหญ่สำหรับคนอื่นๆอีกไม่รู้เท่าไหร่ก็ได้ครับ
สิ่งที่ดีกว่าการให้ คือการให้แบบไม่มีที่สิ้นสุด

0

กระทู้

58

โพสต์

10

เครดิต

Member

Rank: 2

เครดิต
10
โพสต์ 2022-10-25 16:56:52 | ดูโพสต์ทั้งหมด

ขอบคุณครับ
ขออภัย! คุณไม่ได้รับสิทธิ์ในการดำเนินการในส่วนนี้ กรุณาเลือกอย่างใดอย่างหนึ่ง ลงชื่อเข้าใช้ | ลงทะเบียน

รายละเอียดเครดิต

ข้อความล้วน|อุปกรณ์พกพา|ประวัติการแบน|G2GNet.com  

GMT+7, 2024-3-29 03:02 , Processed in 0.222705 second(s), 4 queries , File On.

Powered by Discuz! X3.4, Rev.62

Copyright © 2001-2020 Tencent Cloud.

ตอบกระทู้ ขึ้นไปด้านบน ไปที่หน้ารายการกระทู้