Read Excel files in .NET


1 
Ref:>
http://exceldatareader.codeplex.com/ 

 

บทความนี้ผมมีโค้ดสนุกๆ มาเผื่อแผ่ เผื่อเป็นประโยชน์สำหรับท่านผู้อ่านได้บ้าง เป็นโค้ดในการอ่านข้อมูลใน Excel ที่ผ่านมาหากเราจะอ่านข้อมูล Excel เราต้อง เขียน Connection ผ่าน Driver Data Sources (ODBC) แล้วจึงทำการ  Qurey ข้อมูลออกมา เพื่อนำข้อมูลไปใช้งานต่อ บทความนี้ เราจะมาโหลดข้อมูล excel อีกวิธีหนึ่ง โดยอาศัยคอมโพเนนต์ที่มีผู้ใจบุญได้พัฒนา และนำมาเผื่อแผ่ไว้บนเว็บไซต์  http://codeplex.com ซึ่งเว็บดังกล่าวถือได้ว่าเป็นแหล่งข้อมูล Open Source ในค่าย Microsoft ก่อนอื่นเราลองไปดูการทำงานของหน้าจอแอปพลิเคชันกันครับ

2 3

หน้าจอโหลดไฟล์ Excel                                Brows เลือกไฟล์ Excel (สามารถเปิดโหลดข้อมูลทั้ง Excel97-2003 และ Excel 2007)

 

4 5

โหลดข้อมูลเข้า DataGrideView                      ข้อมูลต้นฉบับบน Excel

 

ก่อนเริ่มพัฒนาแอปพลิเคชัน เราต้องไปโหลดคอมโพเนนต์ได้จาก http://exceldatareader.codeplex.com/ จากนั้นสร้างโปรเจ็กและทำการอ้างอิงไลบารี

55

6

และลงมือเขียนโค้ดโหลดข้อมูล Excel ดังนี้

 

โค้ด:

 private void btBrows_Click(object sender, EventArgs e)
        {
            excelDataReader();
        }
        private void excelDataReader()
        {
            OpenFileDialog dlg = new OpenFileDialog();
            dlg.Filter = "Excel Worksheets|*.xls;*.xlsx|All Files|*.*";
            if (dlg.ShowDialog() == DialogResult.OK)
            {
                txtPath.Text = dlg.FileName;
                FileInfo f = new FileInfo(txtPath.Text);
                FileStream stream = File.Open(txtPath.Text, FileMode.Open, FileAccess.Read);
                Excel.IExcelDataReader excelReader = null;
                if (f.Extension == ".xls")//Reading from a binary Excel file ('97-2003 format; *.xls)
                {
                    excelReader = Excel.ExcelReaderFactory.CreateBinaryReader(stream);
                }
                else//Reading from a OpenXml Excel file (2007 format; *.xlsx)
                    excelReader = Excel.ExcelReaderFactory.CreateOpenXmlReader(stream);
                excelReader.IsFirstRowAsColumnNames = true;//First Row As Column Names 
                DataSet result = excelReader.AsDataSet();
                if (result.Tables[0].Rows.Count > 0)
                    dataGridView1.DataSource = result.Tables[0].DefaultView;
                excelReader.Close();
            }
        }

 

ท่านผู้อ่านจะเห็นว่าเราสามารถโหลดข้อมูล excel ได้ง่ายขึ้นไม่ต้องเขียน Connection ให้ยุ่งยากเหมือนแต่ก่อน

 

แหล่งข้อมูลดาวโหลด:
http://cid-7d608959d854cb28.skydrive.live.com/embedicon.aspx/SourcesCode/11-10-2009_ReadExcelFilesIn_NET.zip

 

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

 

ผู้เขียน:
nano_mvp_2009_1

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: