อิมพอร์ตข้อมูลจาก Excel บันทึกลง ฐานข้อมูล SQL Server โดยใช้ EPPlus ตอนที่ 2 Export Excel


บทความจาก นิตยสาร WindowsITPro
ได้ขออนุญาตทางบก. เรียบร้อยแล้ว

จากบทความอิมพอร์ตข้อมูลจาก Excel…ในตอนที่ 1
คุณผู้อ่านได้รู้จักการอิมพอร์ตข้อมูลจาก
Excel
บันทึกลง ฐานข้อมูล
SQL Server โดยใช้ EPPlus ไปแล้ว
มาในตอนที่
2 นี้ เป็นการกล่าวถึงการเอ็กซ์พอร์ต (Export)
ข้อมูลออกไปเป็นรายงาน Excel

โดยเราจะนำโปรเจ็กต์ในตอนที่
1 มาใช้ต่อ ซึ่งข้อมูลที่คุณผู้อ่านจะนำไปสร้างรายงานบน Excel นั้น
จะใช้ข้อมูลใน
View Category Sales for 1997 ซึ่งเป็นตัวอย่าง View
ที่มีอยู่ในฐานข้อมูล
Northwind อยู่แล้ว ไม่ต้องสร้างใหม่
โดยคุณผู้อ่านจะได้ใช้
EPPlus Export ข้อมูลการขายเหล่านั้น
ออกไปเป็นรายงานบน
Excel พร้อมสร้างเป็นกราฟด้วย
ไปดูขั้นตอนการพัฒนาโปรแกรมกันเลย

ขั้นตอนการพัฒนาโปรแกรม

  • ขั้นตอนที่ หนึ่ง ออกแบบหน้าจอ
  • ขั้นตอนที่ สอง เพิ่มรูปภาพ
  • ขั้นตอนที่ สาม Update LINQ Data Model
  • ขั้นตอนที่ สี่ เขียนโค้ด
  • ขั้นตอนที่ ห้า ทดสอบโปรแกรม

 

ขั้นตอนที่ หนึ่ง ออกแบบหน้าจอ

1.1. ให้คุณผู้อ่านเปิดโปรเจ็กต์ ตอนที่ 1 ขึ้นมา

1.2. เปิดไฟล์ ImportExcel.aspx

1.3. จากนั้นทำการเพิ่มปุ่ม Button หนึ่งอัน

1.4. ระบุป้ายชื่อเป็น Export Excel Chart ดังรูปที่1

รูปที่ 1 ออกแบบหน้าจอ

 

ขั้นตอนที่ สอง เพิ่มรูปภาพ

เมื่อเพิ่มปุ่ม Export…เป็นที่เรียบร้อยแล้ว
เรายังไม่เขียนโค้ดในตอนนี้
จะไปทำการเพิ่มรูปโลโก้ WindowsITPro
เข้ามาก่อน ซึ่งหา Download ได้บนเว็บ http://windowsitpro.net
ขั้นตอนการเพิ่มรูปมีดังนี้

2.1. คลิกขวาบนโปรเจ็กต์ ImportExportExcelWithEPPlus

2.2. เลือกเมนู Add

2.3. เลือก New Folder

2.4. ตั้งชื่อโฟลเดอร์เป็น Images ดังรูปที่ 2

รูปที่ 2 สร้างโฟลเดอร์ Images

2.5. คลิกขวาบนโฟลเดอร์ Images

2.6. เลือกเมนู Add

2.7. เลือกเมนู Existing Item…

2.8. เบราว์ไปยังพาธที่เก็บรูปโลโก้ แล้วเลือกรูปที่เตรียมไว้

2.9. กดปุ่ม Add ดังรูปที่3

รูปที่ 3 เพิ่มรูปภาพ

 

ขั้นตอนที่ สาม Update LINQ Data Model

เมื่อออกแบบหน้าจอ และเพิ่มไฟล์รูปภาพโลโก้ เป็นที่เรียบร้อยแล้ว
ขั้นตอนนี้ เราไปเพิ่ม DataModel ของ View Category Sales for 1997

เพื่อ
เอ็กซ์พอร์ตข้อมูลออกมาเป็นรายงานบน Excel ตามขั้นตอนดังนี้

3.1 ในหน้าต่าง Solution Explorer คลิกโฟลเดอร์ DAL

3.2 ดับเบิ้ลคลิกเปิดไฟล์ Northwind.dbml

3.3 เมื่อไฟล์ Northwind.dbml เปิดขึ้นมา คุณจะเห็นว่า มีอ็อบเจ็กต์โมเดลของ Customer อยู่ ซึ่งเป็นของตอนที่1

3.4 คลิก Link Server Explorer เพื่อจะเข้าไปเพิ่มอ็อบเจ็กต์ Data Model ใหม่เข้ามา

3.5 หน้าต่าง Server Explorer จะเปิดขึ้นมา

3.5 ในหน้าต่าง Server Explorer คลิก NorthwindConnectionString1 (ImportExcelWithEPPlus)

3.6 คลิกขยายโฟลเดอร์ Views

3.7 คลิกอ็อบเจ็กต์ View Category Sales for 1997 ค้างไว้ แล้วลากไปวางบนพื้นที่ออกแบบ(Design surface) ดังรูปที่4

3.8 Build โปรเจ็กต์ หนึ่งครั้ง เพื่อ Update LINQ Data Model


รูปที่ 4
เพิ่มอ็อบเจ็กต์ View Category Sales for 1997

 

ขั้นตอนที่ สี่ เขียนโค้ด

เมื่อออกแบบหน้าจอ

เพิ่มไฟล์รูปภาพโลโก้
และ

Update LINQ Data Model เป็นที่เรียบร้อยแล้ว
ไปเขียนโค้ดบนปุ่ม ExportExcelChart ดังนี้


 

ขั้นตอนที่ ห้า ทดสอบโปรแกรม

เมื่อเขียนโค้ดเป็นที่เรียบร้อยแล้ว ไปทดสอบรันโปรแกรมกันเลย ดังนี้

5.1 กดปุ่ม F5 บนคีย์บอร์ด

5.2 กดปุ่ม Export Excel Chart

5.3 เลือกพาธที่ต้องการบันทึกไฟล์ Excel

5.4 กดปุ่ม Save

5.6 รอชั่วพริบตา เมื่อไฟล์ Excel โหลดเรียบร้อยแล้วให้เปิดขึ้น

5.6 คลิกบนไฟล์ Excel เลือกแสดงในโฟลเดอร์

5.7 ดับเบิ้ลคลิกไฟล์ ดังรูปที่5


รูปที่ 5 ทดสอบ Export Excel Chart

 

5.8 รายงานบนไฟล์ Excel คุณผู้อ่านจะได้ดังรูปที่6

5.9 คุณผู้อ่านจะเห็น ช่วงข้อมูลที่นำไปสร้างกราฟ
เริ่มที่แถวที่ 7 นั่นจึงเป็นเหตุผลว่าในขั้นตอนการเขียนโค้ด
ประกาศตัวแปร เก็บแถวสุดท้าย
ต้อง +6 [string endRow = (CategorySales.Count() + 6).ToString();]

เพื่อที่จะวางข้อมูลที่จะใช้สร้างกราฟตั้งแต่แถวที่ 7 เป็นต้นไปนั่นเอง

5.10 และการประกาศตัวแปร เก็บแถวสุดท้าย อันที่สอง
เพื่อวางข้อมูล Total คุณผู้อ่านจะเห็นว่า
ได้นำเอาแถวสุดท้ายของข้อมูล+1 [string endRow2 = (int.Parse(endRow) + 1).ToString();]

เพื่อวางข้อมูล Total ในแถวสุดท้าย ที่ต่อจากข้อมูลที่ใช้สร้างกราฟ


รูปที่ 6 ไฟล์ Excel Chart

 

การอิมพอร์ต และเอ็กซ์พอร์ตข้อมูล Excel

ผ่านคอมโพเนนต์ EPPlus มีข้อดีคือ

  • ไม่ต้องติดตั้ง โปรแกรม Excel ไว้บนเว็บเซอร์ฟเวอร์
  • ไม่ต้อง Upload ไฟล์ excel ไปวางบนฮาร์ดดิสก์ของเว็บเซอร์ฟเวอร์
  • สามารถใช้ LINQ ในการเชื่อมต่อกับฐานข้อมูล ซึ่งทำให้การเขียนโค้ดใช้เวลาน้อยลง โค้ดสั้นลง
    แล้วพบกันโอกาสหน้าครับ

 

แหล่งข้อมูลดาวน์โหลด

  • ตัวอย่างโปรเจ็กต์
    ตอนที่1:
    ImportExcelWithEPPlus: http://1drv.ms/1k7BhC0
  • ตัวอย่างโปรเจ็กต์
    ตอนที่2:
    ImportExcelWithEPPlus_Part2: http://1drv.ms/1n5xHfU

 

แหล่งข้อมูลอ้างอิง:

 

โดย:
นุชิต อรรจนวจรรน์
GreatFriends Community Leader (nano)
WindowsITPro Columnist
Microsoft MVP

2014-09-23

เกี่ยวกับ

Nuchit Atjanawat is a Microsoft MVP, GreatFriends Community Leader, WindowsITPro Columnist(Mr.Nano), Silverlight Business Application Instructor, Speaker in various Microsoft events, Author, passionate Blogger and a Software Engineer by profession. He has a very good skill over Silverlight, LightSwitch, C#, XAML & Blend. He shares his technical findings, tutorials in his technical blog. Follow his Blog and Facebook page to be updated on latest articles. - Technical Blog: https://janawat.wordpress.com - WindowsITPro Columnist(Mr.Nano): http://windowsitpro.net - The GreatFriends.Biz Community Discussion Board (nano): http://greatfriends.biz - witter: https://twitter.com/janawat - Facebook Page: https://www.facebook.com/nuchit - Instructor: http://bit.ly/GF250-01, http://bit.ly/GF150-02

เขียนใน Uncategorized

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s

In Archive
%d bloggers like this: