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;
            }

  • 相关阅读:
    win 8升级win8.1的几个问题
    使用ghost硬盘对拷备份系统
    在odl中怎样实现rpc
    ASP.NET常见内置对象(一)
    [Xcode 实际操作]六、媒体与动画-(12)检测UIView动画的结束事件:反转动画并缩小至不可见状态
    [Xcode 实际操作]六、媒体与动画-(11)UIView视图卷曲动画的制作
    [Xcode 实际操作]六、媒体与动画-(10)UIView视图翻转动的画制作
    [Xcode 实际操作]六、媒体与动画-(9)使用CATransaction Push制作入场动画
    [Xcode 实际操作]六、媒体与动画-(8)使用CATransaction Reveal制作渐显动画
    [Xcode 实际操作]六、媒体与动画-(7)遍历系统提供的所有滤镜
  • 原文地址:https://www.cnblogs.com/rumeng/p/2750792.html
Copyright © 2011-2022 走看看