首页 > 其他分享 >winforms基本操作-将datagridview内容保存为excel文件

winforms基本操作-将datagridview内容保存为excel文件

时间:2024-10-06 10:34:02浏览次数:8  
标签:excelApp excel Excel datagridview saveFileDialog workSheet workBook 基本操作

这里记录一下将winforms展示的datagridview,导出或保存为excel文件。

这里说一下环境、版本信息:
win系统:win11
框架:winforms
依赖:Microsoft.Office.Interop.Excel
.net:8.0.401
.net framework: 4.8

DataGridView对象为dataGridView1,然后添加一个按钮,绑定事件btnConfirm即可。

private void btnConfirm(object sender, EventArgs e)
{
    Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application();
    if (excelApp == null)
    {
        MessageBox.Show("无法创建Excel,您可能需要安装Excel");
        return;
    }

    // 创建excel工作薄
    Workbook workBook = excelApp.Workbooks.Add(Type.Missing);
    Worksheet workSheet = null;

    // 创建工作表
    workSheet = workBook.Sheets["Sheet1"];
    workSheet = workBook.ActiveSheet;

    // 表头
    Range headerRow = workSheet.Rows[1];
    headerRow.Cells[1, 1] = "文件路径";
    headerRow.Cells[1, 2] = "文件名";
    // 表头格式
    headerRow.Font.Bold = true;
    headerRow.Interior.Color = ColorTranslator.ToOle(Color.LightBlue);


    // 将DataGridView表格内数据复制到excel工作表
    for (int i = 0; i < dataGridView1.Rows.Count; i++)
    {
        for (int j = 0; j < dataGridView1.Columns.Count; j++)
        {
            workSheet.Cells[i + 2, j + 1] = dataGridView1.Rows[i].Cells[j].Value;
        }
    }

    // 导出到excel文件
    SaveFileDialog saveFileDialog = new SaveFileDialog();
    saveFileDialog.Filter = "Excel Workbook (*.xlsx)|*.xlsx|Excel 97-2003 Workbook (*.xls)|*.xls";
    saveFileDialog.Title = "保存文件名称到Excel";
    saveFileDialog.ShowDialog();

    if (saveFileDialog.FileName != "")
    {
        try
        {
            workBook.SaveAs(saveFileDialog.FileName);
            workBook.Close(false);
            excelApp.Quit();

            System.Runtime.InteropServices.Marshal.ReleaseComObject(workSheet);
            System.Runtime.InteropServices.Marshal.ReleaseComObject(workBook);
            System.Runtime.InteropServices.Marshal.ReleaseComObject(excelApp);

            workSheet = null;
            workBook = null;
            excelApp = null;

            MessageBox.Show("Excel文件已保存到:" + saveFileDialog.FileName);

        }
        catch (Exception ex)
        {
            MessageBox.Show("保存文件名称到Excel失败,请稍后重试。" + ex.Message);
        }
    }
}

记录问题也是一种修行。

修行


欢迎关注微信公众号,你的资源可变现:【乐知付加密平台】

乐知付加密平台

欢迎关注微信公众号,这里记录博主的创业之旅:【程序员写书】

程序员写书

一起学习,一起进步。

标签:excelApp,excel,Excel,datagridview,saveFileDialog,workSheet,workBook,基本操作
From: https://www.cnblogs.com/chenzuoli/p/18448896

相关文章

  • Python 高级技巧:深入解析读取 Excel 文件的多种方法
    一、引言 在数据分析和处理中,经常需要从Excel文件中读取数据。Python提供了多种库来实现这个功能,本文将深入探讨使用 ​​pandas​​、​​openpyxl​​ 和 ​​xlrd​​ 库读取Excel文件的高级技巧和代码实现。 二、使用pandas库读取Excel文件 ​​pandas......
  • WPS股票价格查询EXCEL表格
    第一步在表格内使用公式=GetStockSource(Stock_code)查询股票的即时交易信息,Stock_code表示股票代码;第二步通过公式从Source中提取所需要的数据,可以提取股票名称、价格、涨跌幅、收盘价格、成交额、成交量、换手率等。公式如下:GetStockSource(Stock_code),查询股票即时交易信息G......
  • excel江湖异闻录--华麒麟
    认识他应该是在18、19年左右,那时就感觉这也是个高手,同大部分的高手一样,痴迷函数,热衷创造、挑战不规范的数据。后来他消失了好长一段时间,群里的同学都以为他退圈了,偶有少数的同学想起他,言语都带着惋惜和遗憾,他时不时的会在群里冒个泡,不过都是换个气,又潜下去那种。记得有一天老大......
  • excel江湖异闻录--Klaus
    最开始接触数组公式,是偶然在公众号看到“看见星光”大佬的一个提取混合文本中电话号码的公式,记得当时大佬是用vlookup解的这题,当时完全不能理解,mid中第二参数为什么是个row,一遍遍拆公式,才明白大佬公式的奥妙。真没有想到,公式还可以这样写,“看见星光”大佬的这个公式,帮我打开了数......
  • excel江湖异闻录--修迪斯.嗦狸
    因为技术出类拔萃,同学都尊称他为“修神”,修神的python、vba、Javascript、java、数据库、批处理等众多编程语言都是极强的,以笔者的见识来判断,大佬的vba已经是职业级别了,至于其他的编程语言,不敢断言,反正笔者是从来没有看懂过。请原谅笔者的浅薄,实在是修哥的技术面之广,已经超出了笔......
  • excel江湖异闻录--◆K
    网名◆K,按照群里同学的说法,K神和老大kluas,以及一个名为KKK的VBA强人,都是K字头家族的高手。因为函数实力极强,时常碾压难题,被群里同学们冠以了“K神”的称号。用笔者的观点来看,这是个“化繁为简”的高手。笔者一直有一个观点,函数水平是一个从简单走向复杂,再从复杂进阶到简单的过......
  • excel江湖异闻录--渣渣
    有朋友问过我,为什么要写这些,细细思量,一来我喜欢这个纯粹的江湖,二则向这些纯粹的高手、大神致敬,三是纪念一下自己学习EXCEL的历程。其实,每一个篇章都有一个逻辑,只不过这个逻辑,不是按照实力的高低来的,而是按照这个高手在我脑海中形象的饱满程度来排序的。渣神不是我们群里的同学,勉......
  • excel江湖异闻录--自序
    本书原名《excel从高手到小白》,取这个名字是因为,当我只会几个有关excel的快捷键和简单函数时我放眼我所在的“井口”,当真有种天下谁与争锋的感觉,的确就我周围的伙伴来说,我的技术已经很不错了。那个时候的自己,单纯的以为这就是高手!当然,直到我碰到了非常棘手的问题,那种不规范的数据......
  • Vue Javascript 导出Excel:SheetJS/js-xlsx json_to_sheet xlsx 修改表头名称和展示的
     import*asXLSXfrom'xlsx';//展示的顺序,把data中对象的属性按照你想要的顺序排放就可以了,constheader=["pId","dID"]//展示的名称constheaderDisplay={pId:"项编号",dID:"D编号"};//将表头放剑原始数据里面去,要保证表头在数......
  • 数据库——DDL数据库和数据表的基本操作
    DDL一、数据库的基本操作1、创建(CREATE)--CREATEDATABASE/SCHEMA[IFNOTEXISTS]表名[指定数据库的字符集];--创建名为my的数据库CREATEDATABASEmy;CREATESCHEMAmy;--如果名为my的数据库不存在则创建,避免了当数据库存在而发生的错误CREATEDATABASEIFNOTEXIS......