How to Export SQL data to Excel 2003


 

สิ่งที่จำเป็น (Prerequisites)

  • Microsoft Office Excel 2003
  • VS2008
  • SQL Server 2005 EXPRESS

 

download source code:[VS2008]

บทความนี้เรามาลอง Export ข้อมูลบน SQL Server 2005 EXPRESS โดยอาศัย library ของ Excel 2003 ครับมาดูตัวอย่างหน้าจอกัน

เป้าประสงค์ของเรา:

  • สามารถ Export ข้อมูล บน SQL Server 2005 EXPRESS
  • สามารถ Export ได้หลาย Sheet
  • สามารถใส่สีบน Cell, กำหนด font ได้

ตัวอย่างหน้าจอแอพพลิเคชันที่ผู้เขียนไก้บันทึกเป็นภาพเรียบร้อยแล้ว:

กดปุ่ม Export ในรูปที่ 1: ระบบจะถามให้ทำการบันทึกไฟล์ Excel ในพาธที่ต้องการ ดังรูปที่ 2:

6 7

รูปที่ 1:                                          รูปที่ 2:

 

รอสักครู่นิดๆ ไฟล์ Excel จะเปิดออกมา มี 4 Sheet ดังรูปที่ 1 ถึงรูปที่ 5 ในรูปที่ 4 จะเห็นว่ามีการใส่สีเข้าไปบน Cell

8 9

รูปที่ 3:                                             รูปที่ 4:

จากรูปที่ 4: โค้ดเป็นดังนี้:

….

….

            for (int r = 0; r <= dt.Rows.Count  1; r++)
           
{
               
m_oSheet.Cells[r + 4, 1] = "’"+(r + 1).ToString();//"No.";
                for (int c = 0; c <= dt.Columns.Count  1; c++)

               
{
                   
string xv = dt.Rows[r][6].ToString();//เก็บค่าใน UnitsInStock

                    if (xv == "0")//ถ้า UnitsInStock เป็น 0
                   
{

                        excelRange = m_oSheet.get_Range("H" + (r + 4).ToString(), "H" + (r + 4).ToString());// ดึง Cell "H" ออกมาไว้ที่ตัวแปร excelRange [รอการนำ cell นั้น ไปทำอะไรบางอย่าง]

                        excelRange.Interior.Color = System.Drawing.ColorTranslator.ToOle(Color.PeachPuff);//ใส่พื้นสี
                       
excelRange.Cells.Borders.Color = System.Drawing.ColorTranslator.ToOle(Color.Red);//ใส่สีแดงบนขอบของ cell
                       
excelRange.Cells.Font.Color = System.Drawing.ColorTranslator.ToOle(Color.Red);//ใส่สีบนตัวหนังสือ
                       
excelRange.Cells.Font.Bold = true;//ให้ตัวหนังสืเป็นตัวหนา
                   
}
                   
else if (Convert.ToInt32(xv) >= 50)//ถ้า UnitsInStock มากว่าหรือเท่ากับ 50
                   
{

                        excelRange = m_oSheet.get_Range("H" + (r + 4).ToString(), "H" + (r + 4).ToString());

                        excelRange.Interior.Color = System.Drawing.ColorTranslator.ToOle(Color.Yellow);//ใส่พื้นสีเหลือง
                       
excelRange.Cells.Borders.Color = System.Drawing.ColorTranslator.ToOle(Color.DarkGreen);//ใส่สีเขียวแก่บนขอบของ cell
                       
excelRange.Cells.Font.Color = System.Drawing.ColorTranslator.ToOle(Color.Green);//ใส่สีเขียวบนตัวหนังสือ
                       
excelRange.Cells.Font.Bold = true;//ให้ตัวหนังสือเป็นตัวหนา
                   
}

                    m_oSheet.Cells[r + 4, c + 2] = "’" + dt.Rows[r][c].ToString();
               
}

            }
  

 

10 11

รูปที่ 5:                                                         รูปที่ 6:

ออกแบบระบบกันเลยครับ:

สร้างโปรเจ็กต์ด้วย WindowsFormsApplication บทความนี้ขอใช้ C# ครับ

ทำการ Reference ดังรูปที่ 6 และ 7 เข้ามาในโปรเจ็กต์ เนื่องจากเราอาศัย library ของ Excel version 2003

1 5

รูปที่ 7:                                          รูปที่ 8:

ใน Form1 ให้ทำการเพิ่มคอนโทรล Button หนึ่งอันดังรูปที่ 8:

x0

รูปที่ 9:

 

ให้คลิกไปที่ Properties:=>Settings.settings แล้วป้อนค่า ConnectionString ดังรูปที่ 9:

x1

รูปที่ 10:

จากรูปที่ 9: เบื้องหลัง VS2008 จะเจน Config เหล่านั้นเก็บไว้ในไฟล์ app.config ให้ทำการแก้ไขดังนี้:

ปรับแก้ไขไฟล์ app.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
    </configSections>
    <connectionStrings>
        <add name=
"northWindConnection"
            connectionString="Data Source=.SQLEXPRESS;Initial Catalog=Northwind;Persist Security Info=True;User ID=sa;Password=enabler" />
    </connectionStrings>
</configuration>

 

จากนั้นทำการ download source code ตัวอย่างไปทดสอบกันเลยครับ:

แล้วเราก็สามารถทำตามเป้าประสงค์ได้ตามที่ตั้วใจไว้ กล่าวคือ
  • สามารถ Export ข้อมูล บน SQL Server 2005 EXPRESS
  • สามารถ Export ได้หลาย Sheet ใน Excel หนึ่งไฟล์
  • สามารถใส่สีบน Cell, กำหนด font ต่างๆ ได้
 
 

เกี่ยวกับ

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: