zoukankan      html  css  js  c++  java
  • DaGridView导出Excel

    首先添加引用Microsoft.Office.Interop.Excel;

            /// <summary>
            /// 将dataGridView导出Excel
            /// </summary>
            /// <param name="dataGridView">dataGridView</param>
            /// <returns>返回是否导出成功,成功返回True,失败返回False</returns>
            public bool ExportExcel(DataGridView dataGridView)
            {
                SaveFileDialog saveDialog = new SaveFileDialog();
                saveDialog.Filter = "Excel files(*.xls)|*.xls";
                saveDialog.FilterIndex = 0;
                saveDialog.RestoreDirectory = true;
                saveDialog.CreatePrompt = true;

                bool fileSaved = false;

                if (saveDialog.ShowDialog() == DialogResult.OK)
                {
                    if (dataGridView == null)
                    {
                        return false;
                    }

                    Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.ApplicationClass();

                    if (xlApp == null)
                    {
                        return false;
                    }

                    Microsoft.Office.Interop.Excel.Workbooks workbooks = xlApp.Workbooks;
                    Microsoft.Office.Interop.Excel.Workbook workbook = workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);
                    Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[1];

                    for (int i = 0; i < dataGridView.Columns.Count; i++)
                    {
                        worksheet.Cells[1, i + 1] = dataGridView.Columns[i].HeaderText;
                    }

                    for (int r = 0; r < dataGridView.Rows.Count; r++)
                    {
                        for (int i = 0; i < dataGridView.Columns.Count; i++)
                        {
                            worksheet.Cells[r + 2, i + 1] = dataGridView.Rows[r].Cells[i].Value.ToString();
                        }
                    }

                    try
                    {
                        workbook.Saved = true;
                        workbook.SaveCopyAs(saveDialog.FileName);
                        fileSaved = true;
                    }
                    catch (Exception)
                    {
                        fileSaved = false;
                    }

                    if (worksheet != null)
                    {
                        System.Runtime.InteropServices.Marshal.ReleaseComObject(worksheet);
                        worksheet = null;
                    }
                    if (workbook != null)
                    {
                        System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook);
                        workbook = null;
                    }
                    if (workbooks != null)
                    {
                        System.Runtime.InteropServices.Marshal.ReleaseComObject(workbooks);
                        workbooks = null;
                    }
                    xlApp.Application.Workbooks.Close();
                    xlApp.Quit();
                    if (xlApp != null)
                    {
                        System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp);
                        xlApp = null;
                    }
                    GC.Collect();
                }
                return fileSaved;
            }

  • 相关阅读:
    JAVA多线程之线程的挂起与恢复(suspend方法与resume方法)
    基于Andoird 4.2.2的同步框架源代码学习——同步发起端
    C#MD5为密码加密
    YOUYOU深入学习Ganglia之三(gmetad的软件架构)
    js原生appendChild的bug
    复选框输入Android Studio 如果修改LogCat的颜色,默认全是黑色看着挺不舒服的
    输出目录文件被多个中间文件输出目录相同的工程包含
    数据对象ajax学习篇9
    function设置jsp页面使用js控制文本框只读,并且按下backspace删除按钮后停在原页面
    资源下载南方cass视频教程,包括文档,数据,很全的
  • 原文地址:https://www.cnblogs.com/rumeng/p/2750792.html
Copyright © 2011-2022 走看看