首页后端开发ASP.NETC#

C#

时间2024-01-31 00:51:03发布访客分类ASP.NET浏览750
导读:收集整理的这篇文章主要介绍了C#_调用封装的一个类实现导出Excel表格的功能,觉得挺不错的,现在分享给大家,也给大家做个参考。前言在大多数窗体中都有导出Excel表格的功能,如果封装封装一个类,使用的时候直接调用这个类不是更方便?,这样还...
收集整理的这篇文章主要介绍了C#_调用封装的一个类实现导出Excel表格的功能,觉得挺不错的,现在分享给大家,也给大家做个参考。

前言

在大多数窗体中都有导出Excel表格的功能,如果封装封装一个类,使用的时候直接调用这个类不是更方便?,这样还减少了代码的重复性,何乐而不为?

操作

首先添加引用,在com中选中microsoft office 16.0 object library,和microsoft Excel 16.0 object library。

添加命名空间:

using Microsoft.Office.Interop.Excel;
    //导出Excelusing Microsoft.Office.Core;
    using System.Data.OleDb;
    using System.Windows.Forms;
    

新建一个类并命名为outputExcel,代码如下:

public  class outputExcel    {
        //导出excel        public void RExcel(string name, DataGridView dgv)        {
                //总可见行列数            int rowcount = dgv.Rows.GetRowCount(DataGridViewElementstates.Visible);
                int colCount = dgv.Columns.GetColumnCount(DataGridViewElementStates.Visible);
            //如果没有数据            if (dgv.Rows.Count == 0 || rowCount == 0)            {
                    MessageBox.Show("表中没有数据", "提示");
            }
            else            {
                    //创建文件的路径                SaveFileDiaLOG save = new SaveFileDialog();
                    save.Filter = "excel files(*.xlsx)|*.xlsx";
                    save.TITle = "请选择要导出数据的位置";
                    save.FileName = name + DateTime.Now.ToLongDatestring();
                if (save.ShowDialog() == DialogResult.OK)                {
                        string fileName = save.FileName;
                        //创建excel对象                    Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
                    if (excel == null)                    {
                            MessageBox.Show("Excel无法启动", "提示");
                            return;
                    }
                        //创建工作薄                    Microsoft.Office.Interop.Excel.WorkBook excelBook = excel.Workbooks.Add(true);
                        Microsoft.Office.Interop.Excel.Worksheet excelSheet = (Microsoft.Office.Interop.Excel.Worksheet)excelBook.Worksheets[1];
                        //生成字段名                    int k = 0;
                        for (int i = 0;
     i  dgv.ColumnCount;
 i++)                    {
                        if (dgv.Columns[i].Visible)//不导出隐藏列                        {
                                excel.Cells[1, k + 1] = dgv.Columns[i].HeaderText;
                                k++;
                        }
                    }
                        //填充数据                    for (int i = 0;
     i  dgv.RowCount;
 i++)                    {
                            k = 0;
                            for (int j = 0;
     j  dgv.ColumnCount;
 j++)                        {
                            if (dgv.Columns[j].Visible)//不导出隐藏的列                            {
                                if (dgv[j, i].ValueTyPE == typeof(string))                                {
                                        excel.Cells[i + 2, k + 1] = "" + dgv[j, i].Value.ToString();
                                }
                                else                                {
                                        excel.Cells[i + 2, k + 1] = dgv[j, i].Value.ToString();
                                }
                            }
                                k++;
                        }
                    }
                    try                    {
                            excelBook.Saved = true;
                            excelBook.SaveCopyAs(fileName);
                            MessageBox.Show("导出成功!");
                    }
                    catch                    {
                            MessageBox.Show("导出文件失败,文件可能正在使用中", "提示");
                    }
                }
            }
        }
    }
    

当窗体需要使用此功能时,需要写上以下代码即可:

PRivate void BTnoutExcel_Click(object sender, Eventargs e)        {
                outputExcel form1 = new outputExcel();
                form1.RExcel("", dataGridView1);
        }
    

相关文章:

【c#教程】C# 数据类型

MySQL Connector C/C++ 多线程封装

以上就是C#_调用封装的一个类实现导出Excel表格的功能的详细内容,更多请关注其它相关文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

上一篇: C#使用Newtonsoft的Json.NET进行...下一篇:如何看待C#中的out和ref?探讨它...猜你在找的ASP.NET相关文章 C# 一些面试试题的实例教程2022-05-16.NET 6开发TodoList应用之请求日志组件HttpLogging介绍2022-04-16.NET 6中间件Http Logging使用介绍2022-04-16gojs一些实用的高级用法2022-04-16.NET6开发TodoList应用之实现查询排序2022-04-16.NET6开发TodoList应用之实现数据塑形2022-04-16.NET微服务架构CI/CD自动打包镜像2022-04-16Asp.Net Core 使用Monaco Editor 实现代码编辑器功能2022-04-16.NET微服务架构CI/CD自动构建Jenkins+Gitee2022-04-16.Net Core微服务网关Ocelot集成Consul2022-04-16 其他相关热搜词更多phpjavapython程序员loadpost-format-gallery

若转载请注明出处: C#
本文地址: https://pptw.com/jishu/593263.html
JavaScript怎么用for求n的阶乘 jquery怎样去掉元素的css属性

游客 回复需填写必要信息