C#-DataGridView导入Excel

#region 报表导出
        /// <summary>
        /// 导出报表,指定DataGridView,导出DataGridView中的数据
        /// </summary>
        /// <param name="DgvOutEx">需要导出的DataGridView报表</param>
        /// <param name="StrSheetName">报表名称</param>
        /// <returns></returns>
        public static string ExportExcel(DataGridView DgvOutEx, string StrSheetName)
        {
            if (DgvOutEx == null || DgvOutEx.Rows.Count == 0)
                return "无导出数据!";
            SaveFileDialog SfdExcel = new SaveFileDialog();
            SfdExcel.Title = "请选择报表导出路径!";
            SfdExcel.FileName = string.Format("{0:yyyyMMddHHmmss}", DateTime.Now) + StrSheetName;
            SfdExcel.Filter = "Excel文档(*.xls)|*.xls";
            DialogResult dr = SfdExcel.ShowDialog();
            if (dr == DialogResult.OK && SfdExcel.FileName != "")
            {
                try
                {
                    // 定义要使用的Excel 组件接口
                    // 定义Application 对象,此对象表示整个Excel 程序
                    Excel.Application ExApp = new Excel.Application();
                    if (ExApp == null)
                    {
                        return "无法创建Excel对象,可能你的电脑未安装Excel或你的Excel版本不是Office2003的!";
                    }
                    Excel.Workbooks ExBooks = ExApp.Workbooks;
                    // 定义Workbook对象,此对象代表工作薄
                    Excel.Workbook ExBook = ExBooks.Add(XlWBATemplate.xlWBATWorksheet);
                    // 定义Worksheet 对象,此对象表示Execel 中的一张工作表
                    Excel.Worksheet ExSheet = (Worksheet)ExBook.Worksheets[1];
                    // 命名工作表的名称为 "Task Management"
                    ExSheet.Name = string.Format("{0:yyyyMMddHHmmss}", DateTime.Now) + StrSheetName;


                    ExSheet.Cells.NumberFormatLocal = "@";

                    #region 将记录集写入Excel表
                    for (int i = 0; i < DgvOutEx.Rows.Count; i++)
                    {
                        int ExcelNum = 1;
                        for (int j = 0; j < DgvOutEx.Columns.Count; j++)
                        {
                            if (DgvOutEx.Columns[j].Visible != false)
                            {
                                if (i == 0)
                                {
                                    ExSheet.Cells[i + 1, ExcelNum] = DgvOutEx.Columns[j].HeaderText;

                                }
                                if (DgvOutEx[j, i].ValueType.FullName == "System.DateTime" && DgvOutEx[j, i].Value.ToString() != string.Empty)
                                {
                                    if (DgvOutEx.Columns[j].HeaderText == "计划日期")
                                    {

                                        ExSheet.Cells[i + 2, ExcelNum] = Convert.ToDateTime(DgvOutEx[j, i].Value).ToString("yyyy-MM-dd");
                                    }
                                    else
                                    {
                                        ExSheet.Cells[i + 2, ExcelNum] = Convert.ToDateTime(DgvOutEx[j, i].Value).ToString("yyyy-MM-dd HH:mm");
                                    }
                                }
                                else
                                {
                                    ExSheet.Cells[i + 2, ExcelNum] = DgvOutEx[j, i].Value.ToString();
                                }
                                ExcelNum = ExcelNum + 1;
                            }
                        }
                    }
                    #endregion
                   
                    ExSheet.Cells.EntireColumn.AutoFit();
                    保存方式三
                    ExBook.Saved = true;
                    ExBook.SaveCopyAs(SfdExcel.FileName);

                    System.Runtime.InteropServices.Marshal.ReleaseComObject(ExSheet);
                    ExSheet = null;
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(ExBook);
                    ExBook = null;
                    ExBooks.Close();
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(ExBooks);
                    ExBooks = null;
                    ExApp.Quit();
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(ExApp);
                    ExApp = null;
                    return "导出Excel完成!";
                }
                catch (Exception e)
                {
                    return e.ToString();
                }
            }
            return string.Empty;
        }

#endregion

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值