C# DataGridView数据导出Excel文件

这篇具有很好参考价值的文章主要介绍了C# DataGridView数据导出Excel文件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言:

博主在做项目的时候需要把数据库的数据用DataGridView展示,然后把展示的数据导出为Excel文件,很多时候我们做项目都会有一个下载文件的按钮,我们需要用微软的的接口,Microsoft.Office.Interop.Excel,我们需要导入这个引用对DataGridView数据进行处理,利用Microsoft.Office.Interop.Excel提供的类对数据进行导出。博主把具体的操作步骤写下来教大家使用!!!!

每日一遍,快乐就完事了

C# DataGridView数据导出Excel文件

1.创建窗体文件并设计好界面

博主直接用的之前的项目,大家需要可以看博主之前的文章

C# DataGridView数据导出Excel文件

2.导入Microsoft.Office.Interop.Excel引用

在窗体项目里面我们找到引用,右击添加引用在COM类型库里面搜索Excel找到Microsoft Excel 14.0这个引用

C# DataGridView数据导出Excel文件

3.双击生成函数对代码处理

双击按钮自动生成触发函数,在函数里面写入代码

C# DataGridView数据导出Excel文件

3.1对命名空间的引用

在命名空间添加 using Excel = Microsoft.Office.Interop.Excel;这条命名空间。

C# DataGridView数据导出Excel文件

3.2 代码分析

博主对每一条代码都写了注解方便大家理解,这里使用了文件的操作。

C# DataGridView数据导出Excel文件

C# DataGridView数据导出Excel文件

3.3 注:博主这里的代码可以直接复制使用

博主这个导出文件的操作的代码,可以直接复制到你需要导出的按钮进行粘贴就可以使用,前提是你把前面的步骤做完了。

C# DataGridView数据导出Excel文件

3.3.1代码展示

博主对每条导出文件的操作都基本上做出了注解方便大家阅读

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
using MySql.Data.MySqlClient;
using Excel = Microsoft.Office.Interop.Excel;
namespace student
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
          

        }
        //博主这里使用的是MySQL,需要SQLsever看博主之前的文章
        private void button1_Click(object sender, EventArgs e)
        {
            string connString = "server=localhost; database=student; uid=root; pwd=88888888;Character Set=utf8;";
            MySqlConnection conn = new MySqlConnection(connString);
            MySqlCommand comm = new MySqlCommand();
            comm.Connection = conn;
            try
             {   
                conn.Open();
                string sql = "select course_id ,course_name,teacher_naem from T_course";
                MySqlDataAdapter da = new MySqlDataAdapter(sql, connString);
                DataSet ds = new DataSet();
                da.Fill(ds,"studens");
                dataGridView1.DataSource = ds;
                dataGridView1.DataMember ="studens";
                conn.Close();
              }
            catch (Exception ex)
                {
                       MessageBox.Show(ex.Message, "操作数据库出错!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);

                }            
            }
        private void button2_Click(object sender, EventArgs e) //点击导出到Excel表按钮
        {
            string fileName = "IC00";//可以在这里设置默认文件名
            string saveFileName = "";//文件保存名
            SaveFileDialog saveDialog = new SaveFileDialog();//实例化文件对象
            saveDialog.DefaultExt = "xlsx";//文件默认扩展名
            saveDialog.Filter = "Excel文件|*.xlsx";//获取或设置当前文件名筛选器字符串,该字符串决定对话框的“另存为文件类型”或“文件类型”框中出现的选择内容。
            saveDialog.FileName = fileName;
            saveDialog.ShowDialog();//打开保存窗口给你选择路径和设置文件名
            saveFileName = saveDialog.FileName;
            if (saveFileName.IndexOf(":") < 0) return; //被点了取消
            Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
            if (xlApp == null)
            {
                MessageBox.Show("无法创建Excel对象,您的电脑可能未安装Excel");
                return;
            }
            Microsoft.Office.Interop.Excel.Workbooks workbooks = xlApp.Workbooks;//Workbooks代表一个 Microsoft Excel 工作簿
            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];//取得sheet1 
                                                                                         //写入标题             
            for (int i = 0; i < dataGridView1.ColumnCount; i++)//遍历循环获取DataGridView标题
            { worksheet.Cells[1, i + 1] = dataGridView1.Columns[i].HeaderText; }// worksheet.Cells[1, i + 1]表示工作簿第一行第i+1列,Columns[i].HeaderText表示第i列的表头
            //写入数值
            for (int r = 0; r < dataGridView1.Rows.Count; r++)//这里表示数据的行标,dataGridView1.Rows.Count表示行数
            {
                for (int i = 0; i < dataGridView1.ColumnCount; i++)//遍历r行的列数
                {
                    worksheet.Cells[r + 2, i + 1] = dataGridView1.Rows[r].Cells[i].Value;//Cells[r + 2, i + 1]表示工作簿从第二行开始第一行保存为表头了,dataGridView1.Rows[r].Cells[i].Value获取列的r行i值
                }
                System.Windows.Forms.Application.DoEvents();//实时更新表格
            }
            worksheet.Columns.EntireColumn.AutoFit();//列宽自适应
            MessageBox.Show(fileName + "资料保存成功", "提示", MessageBoxButtons.OK);//提示保存成功
            if (saveFileName != "")//saveFileName保存文件名不为空
            {
                try
                {
                    workbook.Saved = true;//获取或设置一个值,该值指示工作簿自上次保存以来是否进行了更改
                    workbook.SaveCopyAs(saveFileName);  //fileSaved = true;将工作簿副本保存到文件中,但不修改内存中打开的工作簿                 
                }
                catch (Exception ex)
                {//fileSaved = false;                      
                    MessageBox.Show("导出文件时出错,文件可能正被打开!\n" + ex.Message);
                }
            }
            xlApp.Quit();
            GC.Collect();//强行销毁           
        }
    }
}

4. 效果展示

会在你选择的路径导出Excel文件,我们可以对文件进行处理。

C# DataGridView数据导出Excel文件

总结:

这个操作虽然简单,但是多多少少还是会有一些难度的,我们需要注意要添加引用不然代码可能不起作用,另外对Workbooks有了解的童鞋,上手肯定快,如果你对这个不了解也没关系可以去微软官网了解,学习C#可以多看看官方文档,对你帮助会很大的,好了,传作不易,点赞关注评论收藏哦哈哈哈!!!

C# DataGridView数据导出Excel文件文章来源地址https://www.toymoban.com/news/detail-442222.html

到了这里,关于C# DataGridView数据导出Excel文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C#使用MiniExcel导入导出数据到Excel/CSV文件

    MiniExcel简介 简单、高效避免OOM的.NET处理Excel查、写、填充数据工具。 目前主流框架大多需要将数据全载入到内存方便操作,但这会导致内存消耗问题,MiniExcel 尝试以 Stream 角度写底层算法逻辑,能让原本1000多MB占用降低到几MB,避免内存不够情况。 特点: 低内存耗用,避免

    2024年02月19日
    浏览(30)
  • C# Winfrom通过COM接口访问和控制Excel应用程序,将Excel数据导入DataGridView

    1.首先要创建xlsx文件 2.在Com中添加引用 3. 添加命名空间         using ApExcel = Microsoft.Office.Interop.Excel;         --这样起个名字方面后面写 4.样例 5.获取sheet.Cells值的时候也可以不使用强制转换,还要注意这个的下标是从1开始的

    2024年02月11日
    浏览(36)
  • C# winform 将excel表格导入datagridView 的方式

    方式一: 方式二:

    2024年02月05日
    浏览(36)
  • 【办公软件】C#调用NPOI实现Excel文件的加载、导出功能

    本文将介绍如何使用C#和NPOI库实现Excel文件的读写操作,并通过加载文件和导出文件的按钮进行封装。NPOI是一个强大的.NET库,可以轻松处理Excel文件。我们将学习如何使用NPOI打开现有的Excel文件、读取数据,并将数据写入到Excel文件中。 在开始之前,请确保已安装以下环境:

    2024年02月06日
    浏览(41)
  • C#将数据库数据导出为Excel

    1、创建DataChangeExcel方法 2、进行方法调用

    2024年02月16日
    浏览(26)
  • C# 将Datatable的数据导出至指定的excel模板案例

           首先说一下需求,用户需要将一个报表的数据导出到指定的excel模板,再将这个excel模板发给客户,客户填写信息后,用户再使用该界面进行导入反写。主要功能为查询、导出、导入与保存。       (1)查询功能,这个就是从数据库中查询数据再显示到gridControl1上,就不

    2024年02月14日
    浏览(22)
  • Java实现数据导出到excel文件

    使用的依赖:Apache提供的poi包 首先导入依赖  核心实现  这个工作表指的是这个 运行结果   现在你完成了往一个单元格里写数据,如果想要做成一个表格,那就需要循环 例如现在有一个需求:现在要统计学生的签到情况,需要把学生的签到记录导出到Excel表中 这里我们用假

    2024年02月11日
    浏览(31)
  • 纯前端 导出Excel文件(包括导出用数组数据模拟文件数据和实际后端返回的文件数据)的 方法

            在纯前端导出文件的一种常见方法是通过生成下载链接来实现,可以使用Blob对象和URL.createObjectURL()方法来实现,因为现在工作中主要运用的前端框架是Angular,这篇文章将以angular为例进行阐述。 一、示例代码 1. 首先,安装FileSaver库(https://github.com/eligrey/FileSaver.j

    2024年04月23日
    浏览(27)
  • <VB.net>下CSV文件的导入(读取到DataGridView)和导出(DataGirdView保存到csv)

    VB.net项目主要使用微软旗下的Visual Studio 2022编辑器来进行,打开VS2022.新建一个VB.net窗体项目,保存。 然后在窗体上添加以下控件: DataGridView(数据表格控件)、Label(标签控件)、ContextMenuStrip(右键关联菜单控件)等 然后,设置DataGridView控件的contextmenustrip属性(关联到添

    2024年02月05日
    浏览(39)
  • C# Winform DataGridView 数据刷新问题

    目录 一、问题 二、创建项目 三、绑定空的数据源 四、绑定有数据的数据源 五、修改绑定的数据源 六、解决数据源刷新问题 七、解决刷新数据界面闪烁 DataGridView 是比较常用的表格控件,在 DataGridView 中显示数据, 一般使用 dataGridView1.DataSource = 数据源,来绑定数据,数据

    2024年02月12日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包