首页
学习
活动
专区
圈层
工具
发布

将当前DataGridView行复制到Excel

可以通过以下步骤实现:

  1. 首先,需要引入相关的命名空间:
代码语言:txt
复制
using System;
using System.Data;
using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel;
  1. 创建一个方法来复制DataGridView的行到Excel:
代码语言:txt
复制
private void CopyDataGridViewToExcel(DataGridView dataGridView)
{
    // 创建Excel应用程序对象
    Excel.Application excelApp = new Excel.Application();
    excelApp.Visible = true;

    // 创建一个新的工作簿
    Excel.Workbook workbook = excelApp.Workbooks.Add();
    Excel.Worksheet worksheet = workbook.ActiveSheet;

    // 复制DataGridView的列标题到Excel
    for (int i = 1; i <= dataGridView.Columns.Count; i++)
    {
        worksheet.Cells[1, i] = dataGridView.Columns[i - 1].HeaderText;
    }

    // 复制DataGridView的行数据到Excel
    for (int i = 0; i < dataGridView.Rows.Count; i++)
    {
        for (int j = 0; j < dataGridView.Columns.Count; j++)
        {
            worksheet.Cells[i + 2, j + 1] = dataGridView.Rows[i].Cells[j].Value.ToString();
        }
    }

    // 自动调整列宽
    worksheet.Columns.AutoFit();

    // 释放Excel对象
    System.Runtime.InteropServices.Marshal.ReleaseComObject(worksheet);
    System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook);
    System.Runtime.InteropServices.Marshal.ReleaseComObject(excelApp);
    worksheet = null;
    workbook = null;
    excelApp = null;

    // 强制垃圾回收
    GC.Collect();
}
  1. 在需要复制DataGridView行到Excel的地方调用该方法:
代码语言:txt
复制
CopyDataGridViewToExcel(dataGridView1);

这样,当前DataGridView的行数据将会被复制到一个新的Excel工作簿中。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

DataGridView输出或保存为Excel文件(支持超过65536行多Sheet输出)

///          /// DataGridView控件数据导出到Excel,可设定每一个Sheet的行数         /// 建立多个工作表来装载更多的数据         ... 工作表大小 65,536 行乘以 256 列              //if (ExportGrid.Rows.Count > 65536 || ExportGrid.ColumnCount > ...256)             //{             //    return false;             //}             // 列索引,行索引             ...中没有行,返回             {                 return false;             }             // 创建Excel对象                    ...ValueType.ToString() == "System.String")                         {                             //设置成文本型,有效避免将前置的

1.6K10
  • 3行代码将PDF中表格转成Excel文件

    前言: 之前有粉丝问我,能不能帮忙写个脚本,把PDF文件中的表格转成Excel。我说现在我没那么多时间,你可以去看看《学习Python 不加班》那本书中应该是会有相应的一些案例。然后呢就没有然后了。...今天有空我来写一个转换脚本,一共3行代码搞定。 需求: 将PDF文件中的表格转成Excel文件 背景知识: 本次我们使用的转换包是Camelot 。...可以根据空白和精度指标来判断坏的表格,并丢弃,而不必手动检查 每一个表格数据是一个panda的dataframe,从而可以很方便的集成到ETL和数据分析工作流中 可以把数据导出为各种不同的格式比如CSV、JSON、EXCEL...文件:宁德时代:2021年第一季度报告全文.PDF 完成目标: 读取宁德时代的Q1财报PDF中的主要会计数据和财务指标转成excel表格。 目标是不是很清晰。开始写代码吧。...编写代码: import camelot tables = camelot.read_pdf('宁德时代:2021年第一季度报告全文.PDF', pages="3") tables[0].to_excel

    3.3K20

    在DataGridView控件中实现冻结列分界线

    我们在使用Office Excel的时候,有很多时候需要冻结行或者列。这时,Excel会在冻结的行列和非冻结的区域之间绘制上一条明显的黑线。...如下图: (图1) WinForm下的DataGridView控件也能实现类似的冻结行或者列的功能(参见:http://msdn.microsoft.com/zh-cn/library/28e9w2e1...(VS.85).aspx) ,但是呢,DataGridView控件默认不会在冻结列或者行的分界处绘制一个明显的分界线,这样的话,最终用户很难注意到当前有列或者行是冻结的。...(图2) 正是因为如此,我们如果能做出类似Excel的效果,就可以大大提高数据的可读性。...在DataGridView绘制每一个Cell的时候判断当前Cell是否是分界线所在的位置,然后进行绘制。

    2.8K100

    C#之二十三 打印和水晶报表

    技术要点 本实例通过使用Microsoft Word自动化对象模型中的Cell对象 ,将DataGRIDview控件中的数据导出到Word文档表格中。...,其中,DataGridView控件用来显示数据库中的记录,Button控件用来将DataGridView控件中的数据以Word文档格式输出; (3) 主要程序代码,在DataGridView控件中显示数据的实现代码如下...例如,下面的代码用来指定Excel工作薄中第一行第一列的单元格中的内容为“Excel”: 实现过程: (1) 新建一个Windows应用程序,默认主窗体为Form1. (2)...在Form1窗体中添加一个DataGridView控件和一个Button控件其中DataGridView控件用来显示数据库中的记录,Button控件用来将DataGridView控件中的数据以Excel...添加方法如下:选中当前项目,单击,选择“添加引用”选项,在弹出的“添加引用”对话框中选择“COM”选项卡,然后找到要引用的Excel动态链接库,单击“确定”按钮即可。

    1.6K00

    003 C# 巧做学习强国题库查询工具

    三是与Excel相比,它承载数据量大,操作速度快。 当然,它也有缺点,比如数据量大(>100mb)会经常崩溃。 不过不必担心,把整理好的题库导入Access里。...int i1 = this.dataGridView1.Columns[0].Width = 40; //设置表格ID宽度 int i2 = this.dataGridView1...int i5 = this.dataGridView1.Columns[4].Width = 120; //设置表格选项C宽度 int i6 = this.dataGridView1...; //设置表格答案宽度 最后呢,你需要了解一下数据偶数行背景色设置代码 int i1 = this.dataGridView1.Columns[0].Width =...这种效果类似于Excel的超级表,推荐你这样设置。 对了,别忘了私信回复 源码,获得工具源代码。 分享经验不易,如果对你有用,记得转发收藏~ 我是职场编码,我们下期再见!

    2.6K00

    Excel催化剂开源第23波-VSTO开发辅助录入功能关键技术

    在Excel催化剂的几大辅助录入功能中(数据验证保护、数据多级联动输入、关键词模糊智能匹配输入)中,用了一些customxmlPart技术来存储配置信息,同时在关键词模糊智能匹配输入中,用了一个VSTO...一般来说控件都是放到窗体或任务窗格中,但Excel同样支持将控件放到工作表单元格上,如前面提到的picturebox容器,放到单元格区域上,然后在容器上发图片,实现插入图片功能,同样地也可以存放单选、复选这些控件...自定义控件,可直接用到工作表单元格中 具体实现原理 通过用户配置操作,将需要进行快速录入的区域记录下来,用SelectionChange事件来响应,若用户选择到这些单元格时,就激发事件方法,显示自定义控件...输入过程中动态控制下方DataGridView的查找结果,用户可以按方向箭下上在结果中选择对应的条目,再按Enter或Tab键确定内容录入。...return base.ProcessDialogKey(keyData); } 改变其默认功能后,就可以像其他键一样捕捉其KeyDown事件,例如此处的录入功能中,按Enter是跳转到下一行,

    1.6K10
    领券