บทความ – Exports Data to Excel [ Win & Web ]


หลายๆ ท่าน มีปัญหา และถามถึงการ Export ข้อมูลเป็น Excel???… บทความนี้จะเป็นคำตอบให้ท่าน ซึ่งมิอาจแก้ไขปัญหา และตอบข้อสงสัยได้ทั้งหมด แต่อาจเป็นแนวทางสำหรับหลายๆ ท่านที่จะนำไปประยุกต์ใช้งาน หรือเป็นบทเรียนสำหรับหลายท่าน ที่เริ่มเข้าสู่โลกของ .Net

บทความจะกล่าวถึงการ Export ข้อมูลเป็น Excel ทั้งระบบที่เป็น Windows Application และ Web Application โดยไม่ใช้ Class library ของ Microsoft Office Excel แต่เป็นเพียงการ Export ข้อมูลที่มีรูปแบบเป็น Table cell เท่านั้น ถ้าหากผู้อ่านต้องการที่ จะ Export ข้อมูลที่ Charting ให้ศึกษาเพิ่มเติมได้จากการประยุกต์ใช้งาน Class library ของ Microsoft Office Excel ได้ หรือมีโอกาศผู้เขียนจะนำเสนอในครั้งต่อไปครับ

เมื่อพร้อมแล้วเริ่มกันเลยครับ …

Export Data to Excel with Windows Application

การทำงานของระบบที่เป็น Windows Application

1. ตัวอย่างข้อมูลที่ต้องการ Export เป็นข้อมูลสินค้า

2. คลิก ปุ่ม Export ให้เลือก path ที่จะวางไฟล์ excel เลือก Desktop ดังรูป

3. ไฟล์ Excel ที่ Export เรียบร้อย ดับเบิ้ลคลิกเพื่อเปิดไฟล์

4. ข้อมูลสินค้าบน Excel

Export Data to Excel with Web Application

การทำงานของระบบที่เป็น Web Application

6. ตัวอย่างข้อมูล เป็นข้อมูลสินค้าเช่นกันครับ => คลิกปุ่ม Export

7. ยืนยัน Download Excel file กด Yes

8. Save As ตัวอย่างชื่อไฟล์เป็น EmployeesInfo2.xls

9. Download Complete

10. เปิดไฟล์ EmployeeInfo2.xls

11. ข้อมูลที่ Export เป็น Excel เรียบร้อย

เขียนโปรแกรม

12. ก่อนอื่นต้อง Downloads RKLib.ExportData Project จาก Web Site http://www.codeproject.com/aspnet/ExportClassLibrary.asp ดังรูป เนื่องบทความเราใช้ Class library ของ RKLib ในการพัฒนาระบบ

13. Downloads Complete

Windows Application Project

14. เมื่อ Downloads RKLib.ExportData Project เรียบร้อย ให้ New Project Windows (C#) แล้ว Copy Folder ExportData

15. วางใน Path Project ของเรา

16. ทำการ Add Project RKLib.ExportData เข้ามาใน Solution ของเราครับ ดังรูป

17. Brow และเลือก RKLib.ExportData.csproj

18. เนื่องจาก RKLib.ExportData.csproj พัฒนาบน .Net 1.1 vs. 2005 Convert เป็น .Net 2.0

19.

20. Project RKLib.ExportData เข้ามาใน Solution ของเราเรียบร้อย

21. ใน Project Windows Application ให้ทำการ Add References Project RKLib.ExportData เพื่อใช้งาน Class library ของ RKLib โดยคลิกขวา => Add Refereances

22. เลือก RKLib.ExportData

23. Add References เรียบร้อย ต่อไปเป็นการ ออกแบบหน้าจอโปรแกรม

24. ออกแบบหน้าจอโดย ลาก dataGridView1, label1, button1 (Name) btExport ,(Text) = Export ดังรูป

25. บน dataGridView1 ทำการ Add Data Source ดังรูป

26.

27. เลือก Data Connection

28.

29. เลือก Table Products เนื่องจากเรา ทำการ Export ข้อมูลสินค้า

30. Config data source เรียบร้อย

การเขียน Code program เขียนบนปุ่ม Export

Coding {Window Application}

ดับเบิ้ลคลิกบน btExport :

private void btExport_Click(object sender, EventArgs e)

{

label1.Text = "";

// Export all the details

string expath = "";

FolderBrowserDialog fd = new FolderBrowserDialog();

fd.Description = "กรุณาเลือก Path";

if (fd.ShowDialog() == DialogResult.OK)

expath = fd.SelectedPath;

try

{

//Get the datatable to export

//DataTable dtEmployee = dsEmployee.Tables["Employee"].Copy();

DataTable dtEmployee =
(DataTable)(this.northwindDataSet.Products.DataSet.Tables[0]);

// Export all the details to Excel

RKLib.ExportData.Export objExport = new
RKLib.ExportData.Export("Win");

objExport.ExportDetails(dtEmployee,
RKLib.ExportData.Export.ExportFormat.Excel, expath +
"\EmployeesInfo.xls");

label1.Text = "Successfully exported to " + expath +
"\EmployeesInfo.xls";

}

catch (Exception Ex)

{

label1.Text = Ex.Message;

}

}

เสร็จสิ้นในส่วนของ Windows Application

Web Application Project

31. ในส่วนของ Web Application ทำการ Add New Web Site โดยการคลิกขวาบน Solution ดังรูป

32. เลือก ASP.NET Web Site

33. Add New Web Site เรียบร้อย มาทำการออกแบบ Page ในส่วนของ Web Site กัน

34. Page Default.aspx ทำการเพิ่ม Table 1 Table เพื่อจัด Layout โดยคลิกเมนู Layout => Insert Table

35. 3 Rows และ 1 Columns

36. ทำการวาง GridView1, Label1, Button1 (Name)= btExport, (Text) = Export ใน Table Layout ดังรูป

37. บน GridView1 เลือก Data Source

38.

39.

40.

41. เลือก Field ที่ต้องการ Export

42. Test Query

43. Add References Project RKLib.ExportData เข้ามาใน Project Web Site

44. เลือก RKLib.ExportData

45. Add References เรียบร้อย

46. Set as Start Up Project Web Site เพื่อ Run Project Web Site

47. Set As Start Page ที่ Default.aspx เพื่อ Run Page Default.aspx เป็น Page แรก

48. ออกแบบหน้า Page เรียบร้อย ต่อไปเป็นการเขียนโปรแกรม

ดับเบิ้ลคลิกบน btExport

Coding {Web Application}

ดับเบิ้ลคลิกบน btExport

protected void btExport_Click(object sender, EventArgs e)

{

// Export the details of specified columns

try

{

// Get the datatable to export

//DataTable dtEmployee =

((DataSet)Session["dsEmployee"]).Tables["Employee"].Copy();

DataView dv = (DataView)SqlDataSource1.Select(new
DataSourceSelectArguments());

DataTable dtEmployee = dv.Table.Copy();

int[] iColumns = { 0, 1, 2, 3, 4, 5, 6 };

// Export the details of specified columns to Excel

RKLib.ExportData.Export objExport = new
RKLib.ExportData.Export();

objExport.ExportDetails(dtEmployee, iColumns,
RKLib.ExportData.Export.ExportFormat.Excel,
"EmployeesInfo2.xls");

}

catch (Exception Ex)

{

Label1.Text = Ex.Message;

}

}

Summary

Project RKLib.ExportData เป็น Open Source ซึ่งผู้เขียนไม่ได้กล่าวเข้าถึงการทำงานภายใน class Project RKLib.ExportData เพียงแต่นำ class library มาใช้งานดเท่านั้น ผู้อ่านสามารถศึกษาพัฒนาต่อยอดได้ด้วยตัวเอง

บทความนี้คงไม่ตอบปัญหาของท่านทั้งหลายได้ทั้งหมด แต่คงได้ระดับหนึ่ง และหวังเป็นอย่างยิ่งว่า ท่านจะสนุกกับการเดินทางบนเส้นทาง .Net ต่อไป

หากเกิดข้อผิดพลาดประการได ขอน้อมรับคำแนะนำ และพร้อมแก้ไขในครั้งต่อๆ ไป

 

Advertisements
เกี่ยวกับ

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

เขียนใน Windows Application

ใส่ความเห็น

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: