C# ติดต่อ Excel ทำยังไง

วันนี้เรามาเรียนรู้วิธีการเขียนโปรแกรม .Net กับ Excel กันดีกว่าครับว่าทำอย่างไรเราจะดึงข้อมูลจาก Excel มาใช้งานในโปรแกรมของเราได้ และทำอย่างไรเราจะเพิ่มข้อมูลไปใน Excel นั่นได้ ก่อนที่เราจะไปถึงขั้นนั่นได้อย่างแรกเลยเราต้องเรียนรู้ตัว Excel Object Model ก่อนครับ ตัว Excel Object Model นี้เองจะบอกเราได้ครับว่าโครงสร้างของ Excel นั่นเป็นยังไงมีอะไรบ้าง แล้วเราสามารถเขียนโปรแกรมติดต่อกับ Excel ยังไงครับ

โดยเริ่มแรกเลยเนี้ยตัว Excel Object Model ที่ Microsoft สร้างขึ้นมานี้จะมีส่วนที่สำคัญทั้งหมด 4 ส่วนครับคือ

  • Microsoft.Office.Interop.Excel.Application
  • Microsoft.Office.Interop.Excel.Workbook
  • Microsoft.Office.Interop.Excel.Worksheet
  • Microsoft.Office.Interop.Excel.Range
โดยเราสามารถอธิบายในแต่ละส่วนเทียบกับการทำงานของ Excel ได้ดังนี้ Application เปรียบเสมือนตัว Excel Program นั่นเองครับ ส่วน Workbook นั่นก็คือส่วนที่จัดเก็บ Worksheet หรือว่าแต่ละแท็บใน Excel นั่นเองครับ (หรือว่าเราจะเรียกอีกอย่างว่ามันคือ Excel File ก้ได้ครับ) ส่วน Worksheet นั่นก็คือแต่ละแท็บนั่นเองครับ ส่วน Range นั่นก็คือแต่ละ Cell ใน Worksheet นั่นเองครับ

เพราะอะไรทำไมเราต้องเรียนรู้ Excel Object Model ก็เพระว่าการเก็บข้อมูลใน Excel นั่นมีลักษณะการจัดเก็บข้อมูลแบบโครงสร้างที่เป็น Hierarchical นั่นเองครับ ทำให้เราต้องเรียนรู้โครงสร้างเหล่านี้ก่อน อีกทั้งยังต้องเรียนรู้ว่าแต่ละโครงสร้างมีการใช้งานยังไงอีกด้วยครับ เราสามารภดูรายละเอียดของ Excel Object Model ได้จากที่นี้นะครับ http://msdn.microsoft.com/en-us/library/wss56bz7(v=vs.80).aspx


จากรูปด้านบนได้แสดงให้เห็นว่า Excel นั่นมี Object Model เป็นยังไงนะครับที่เหลือเราก็แค่นำไป Map กับที่หน้า Excel เพียงเท่านี้เองครับ

ที่นี้เรามาดูกันดีกว่าครับว่าในแต่ละ Model ที่ Microsoft จัดเตรียมให้เรานั่นมี Property หรือ Method อะไรให้เราได้เลือกใช้งานกันบ้างนะครับ เรามาเริ่มที่ตัวแรกกันก่อนเลยดีกว่าครับ นั่นก็คือตัว Application

ผมจะไม่อธิบายลงรายละเอียดนะครับเพราะว่า Property และ Method ที่ Microsoft ให้มานั่นเยอะมากมายครับแต่ถ้าผู้อ่านเห็นแล้วจะเห็นว่ามันง่ายมากครับเพราะมัน Map กับสิ่งที่ท่านๆ ใช้ใน Excel อยู่แล้วละครับ สำหรับตัว Application นั่นเราสามารถดูได้จากที่นี้ครับ http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.application_members.aspx

สำหรับ Workbook นั่นเราก็ดูได้จากที่นี้ครับ http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.workbook_members.aspx

สำหรับ Worksheet นั่นเราดูได้จากทที่นี้ครับ http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.worksheet_members.aspx

สำหรับ Range นั่นเราก็ดูได้จาก http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.range_members.aspx
  • เอาละครับทีนี้เรามาเริ่มเขียนโปรแกรมติดต่อกับ Excel File กันดีกว่าครับ เริ่มแรกเราต้องสร้าง Excel File ขึ้นมาก่อนเราจะได้ใช้ Excel ตัวนี้ในการทดสอบโปรแกรมที่เราจะเขียนขึ้นมาได้ครับ โดย Excel File นี้มี 3 Worksheets ด้วยกันนะครับ และในแต่ละ Worksheet จะมีการใส่ขอมูล 10 Cells นะครับดังรูปด้านล่างเลยครับ



  • สร้างโปรเจ็ค C# ขึ้นมาก่อนครับ


  • ว่าง Control ดังในภาพครับ
  • Add Reference ดังรูปครับ
  • เพิ่ม Microsoft.Office.Interop.Excel ดังนี้
  • หลังจากเพิ่ม Reference เรียบร้อยแล้วหน้าตาใน Solution Explorer ต้องเป็นแบบนี้นะครับ
  • จากนั่นก็พิมพ์ Source Code ตามนี้นะครับเพื่อทำการดุงข้อมูลจาก Excel File นั่นนะครับ
  • หลังจากนั่นก็ลองรันโปรแกรมดูนะครับถ้าถูกต้องทุกอย่างควรจะได้หน้าตาประมาณนี้นะครับ

เพียงเท่านี้เราก็สามารถเขียนโปรแกรมติดต่อกับ Excel ได้แล้วละครับ
ถ้าอ่านแล้วชอบอย่าลืมช่วยกด Like Fan Page ที่ http://www.facebook.com/PStudioDev ด้วยนะครับ ขอบคุณครับ