Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 108,946

HOME > .NET Framework > Forum > ขอสอบถามเกี่ยวกับการ Export หลาย gridviews เป็น Excel เป็นหลายๆ Worksheet ครับ



 

ขอสอบถามเกี่ยวกับการ Export หลาย gridviews เป็น Excel เป็นหลายๆ Worksheet ครับ

 



Topic : 125116



โพสกระทู้ ( 8 )
บทความ ( 0 )



สถานะออฟไลน์




คือตอนนี้ผมเอาโค้สมาจากเว็ปนี้
http://stackoverflow.com/questions/30359299/export-multiple-gridviews-to-multiple-excel-tabs-sheets

ผมอยาก export ให้เป็นแบบ 1 ไฟล์มีหลาย worksheet ตอนนี้ผมลองปรับโค้สดูได้ตามข้างล่างแต่พอตอน Export
ออกมามันออกมาเเค่อันเดียวอะครับ T_T ขอบพระคุณล่วงหน้าครับ

Code (C#)
  SqlDataAdapter da3 = new SqlDataAdapter();
                    SqlCommand cmd3 = new SqlCommand();
                    cmd3.CommandText = "SELECT a.Date_Time,a.Value_Per_15min AS WL FROM TStatus a" + " "
                    + "WHERE a.TagID in ('03020') AND  a.Date_Time >= @p_StartDate AND a.Date_Time < @p_EndDate";
                    cmd3.Parameters.Add("@p_StartDate", SqlDbType.DateTime).Value = dateTimePicker1.Value.Date;
                    cmd3.Parameters.Add("@p_EndDate", SqlDbType.DateTime).Value = dateTimePicker2.Value.Date.AddDays(1);
                    cmd3.Connection = conn;
                    da3.SelectCommand = cmd3;
                    da3.Fill(ds3, "TSEACH3");
                    dv3 = new DataView(ds3.Tables["TSEACH3"]);
                    dataGridView1.DataSource = ds3.Tables["TSEACH3"];


                    SqlDataAdapter da7 = new SqlDataAdapter();
                    SqlCommand cmd7 = new SqlCommand();
                    cmd7.CommandText = "SELECT a.Date_Time,a.Value_Per_15min AS WL FROM TStatus a" + " "
                    + "WHERE a.TagID in ('07020') AND  a.Date_Time >= @p_StartDate AND a.Date_Time < @p_EndDate";
                    cmd7.Parameters.Add("@p_StartDate", SqlDbType.DateTime).Value = dateTimePicker1.Value.Date;
                    cmd7.Parameters.Add("@p_EndDate", SqlDbType.DateTime).Value = dateTimePicker2.Value.Date.AddDays(1);
                    cmd7.Connection = conn;
                    da7.SelectCommand = cmd7;
                    da7.Fill(ds7, "TSEACH7");
                    dv7 = new DataView(ds7.Tables["TSEACH7"]);
                    dataGridView2.DataSource = ds7.Tables["TSEACH7"];

                    Export();
                }
            }
        }

        private void Export()
        {
            Microsoft.Office.Interop.Excel._Application excel = new Microsoft.Office.Interop.Excel.Application();
            Microsoft.Office.Interop.Excel._Workbook workbook = excel.Workbooks.Add(Type.Missing);
            Microsoft.Office.Interop.Excel._Worksheet worksheet = null;

            try
            {

               // worksheet.Name = "ExportedFromDatGrid";
                DataGridView[] gvExcel = new DataGridView[] { dataGridView1, dataGridView2 };
                string[] name = new string[] { "Name1", "Name2"};
                int cellRowIndex = 1;
                int cellColumnIndex = 1;
                for (int ii = 0; ii < gvExcel.Length; ii++)
                {
                    worksheet = workbook.ActiveSheet;
                    worksheet.Name = name[ii].ToString();
                    //Loop through each row and read value from each column. 
                    for (int i = 0; i < gvExcel[ii].Rows.Count - 1; i++)
                    {
                        for (int j = 0; j < gvExcel[ii].Columns.Count; j++)
                        {
                            // Excel index starts from 1,1. As first Row would have the Column headers, adding a condition check. 
                            if (cellRowIndex == 1)
                            {
                                worksheet.Cells[cellRowIndex, cellColumnIndex] = gvExcel[ii].Columns[j].HeaderText;
                            }
                            else
                            {
                                worksheet.Cells[cellRowIndex, cellColumnIndex] = gvExcel[ii].Rows[i].Cells[j].Value.ToString();
                            }
                            cellColumnIndex++;
                        }
                        cellColumnIndex = 1;
                        cellRowIndex++;
                    }
                }

                //Getting the location and file name of the excel to save from user. 
                SaveFileDialog saveDialog = new SaveFileDialog();
                saveDialog.FileName = comboBox1.SelectedItem.ToString() + " วันที่ " + dateTimePicker1.Value.ToString("dd-MMM-yyyy") + " ถึง " + dateTimePicker2.Value.ToString("dd-MMM-yyyy");
                saveDialog.Filter = "Excel Workbooks (*.xlsx)|*.xlsx|Excel 97-2003 Workbooks (*.xls)|*.xls|CSV (Comma delimited)(*.csv)|.csv|All files (*.*)|*.*";
                saveDialog.FilterIndex = 1;

                if (saveDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                {
                    workbook.SaveAs(saveDialog.FileName);
                    MessageBox.Show("Export Successful");
                }
            }
            catch (System.Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                excel.Quit();
                workbook = null;
                excel = null;
            }
        }




Tag : C#







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2016-10-26 13:55:15 By : tumy9468 View : 818 Reply : 1
 

 

No. 1



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

Quote:
worksheet = workbook.ActiveSheet;


ต้อง Debug ตรงนี้ครับ ว่ามันมีการเลือกตัว Sheet ใหม่หรือเปล่านะครับ หรือไม่ดูจากตัวอย่างบทความนี้ครับ

ASP.NET Write Excel Multiple Sheet (Excel Application)







แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-10-26 17:19:14 By : mr.win
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ขอสอบถามเกี่ยวกับการ Export หลาย gridviews เป็น Excel เป็นหลายๆ Worksheet ครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: Voake, Comcube, รับทำเว็บไซต์ รับเขียนโปรแกรม , pangpond.com , pangpond.co.th , สำนักงานบัญชี.com , รถมือสอง

Load balance : Server 00
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2022 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่