天天看點

C#中将資料導出到Excel

using Excel = Microsoft.Office.Interop.Excel;

先引用Excel再輸入以下代碼

private void button2_Click(object sender, EventArgs e)

        {

            //建立一個Excel應用

            Excel.Application app1 = new Excel.Application();

            //預設情況下,Excel程式在背景運作,使其可見

            app1.Visible = true;

            if (app1 == null)

            {

                MessageBox.Show("沒有安裝Excel!", "提示");

                return;

            }

            //在Excel中添加一個工作簿同時傳回book1

            Microsoft.Office.Interop.Excel.Workbook book1 = app1.Workbooks.Add(Type.Missing);

            //在Excel中添加一個工作表将其傳回到sheet1

            Microsoft.Office.Interop.Excel.Worksheet sheet1 = (Microsoft.Office.Interop.Excel.Worksheet)book1.Sheets[1];

            //聲明适當變量擷取行列數

            string sValue;

            int i, iRows = dataGridView1.Rows.Count - 1;

            int j, iCols = dataGridView1.Columns.Count;

            //在第一行寫入各标題

            for (j = 0; j < iCols; j++)

            {

                sheet1.Cells[1, j + 1] = dataGridView1.Columns[j].HeaderText;

            }

            //從第二行開始寫資料

            for (i = 0; i < iRows; i++)

            {

                for (j = 0; j < iCols; j++)

                {

                    sValue = dataGridView1.Rows[i].Cells[j].Value.ToString();

                    if (dataGridView1[j, i].ValueType == typeof(string))

                        sValue = "" + sValue;

                    sheet1.Cells[i + 2, j + 1] = sValue;

                }

            }

            //設定為自動列寬

            sheet1.Columns.EntireColumn.AutoFit();

            //儲存檔案到指定地點

            string savePath = "C:\\Users\\Administrator\\Desktop\\課程" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xlsx";

            book1.SaveAs(savePath);

            //退出Excel程式

            book1.Close();

            book1 = null;

            app1.Quit();

            app1 = null;

            MessageBox.Show("導出資料成功!", "提示");

        }

c#