重构---导出Excel

简介: 重构---导出Excel

在做机房重构的时候,有一个功能是将查到的数据表,导出为Excel,接下来为大家介绍一下这个功能的是如何实现的。

private void excel_Click(object sender, EventArgs e)
        {
            string name = "学生充值记录";//导出表的内容
            ExPortExcel ex = new ExPortExcel();
            ex.RExcel(name, dataGridView1);
        }
        public class ExPortExcel
        {
            public void RExcel(string name,DataGridView dgv)
            {
                //可见总行总列数
                int colcount = dgv.Columns.GetColumnCount(DataGridViewElementStates.Visible);//列
                int rowcount = dgv.Rows.GetRowCount(DataGridViewElementStates.Visible);//行
                //判断有没有数据
                if (dgv.Rows.Count==0||rowcount==0)
                {
                    MessageBox.Show("表中没有数据", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                {
                    SaveFileDialog save = new SaveFileDialog();//用来提示用户保存的位置
                    save.Filter = "excel files(*.xlsx)|*.xlsx";//获得当前文件筛选器字符串,filter为过滤的意思,表示用户存储的文件类型,对应的是保存的类型
                    save.Title = "请选择要导出数据的位置";//设置文件对话框的标题
                    save.FileName = name + "-" + DateTime.Now.ToLongDateString().ToString();//保存文件名字
                    //如果运行了对话框
                    if (save.ShowDialog()==DialogResult.OK )//对话框种的返回值是ok
                    {
                        string fileName = save.FileName;
                        //创建excel对象
                        Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
                        if (excel==null)
                        {
                        }
                        //创建excel工作薄
                        Microsoft.Office.Interop.Excel.Workbook excelBook = excel.Workbooks.Add(true);
                        Microsoft.Office.Interop.Excel.Worksheet wxcelsheet = (Microsoft.Office.Interop.Excel.Worksheet)excelBook.Worksheets[1];
                        //生成字段名称
                        for (int i = 0; i < dgv.ColumnCount; i++)
                        {
                            if (dgv.Columns[i].Visible)//不导出隐藏的列
                            {
                                excel.Cells[1, i + 1] = dgv.Columns[i].HeaderText;
                            }
                        }
                        for (int i = 0; i < dgv.RowCount -1; i++)
                        {
                            for (int j = 0; j < dgv.ColumnCount; j++)
                            {
                                if (dgv.Columns[j].Visible)//不导出隐藏的列
                                {
                                    excel.Cells[i + 2, j + 1] = dgv[j, i].Value.ToString();//内容
                                }
                            }
                        }
                        try
                        {
                            excelBook.Saved = true;
                            excelBook.SaveCopyAs(fileName);//保存副本
                            MessageBox.Show("导出成功!");
                        }
                        catch
                        {
                            MessageBox.Show("导出失败,文件可能正在使用中!", "提示");
                        }
                    }
                }
            }
        }

相关文章
|
2月前
|
Python
Excel中如何批量重命名工作表与将每个工作表导出到单独Excel文件
本文介绍了如何在Excel中使用VBA批量重命名工作表、根据单元格内容修改颜色,以及将工作表导出为独立文件的方法。同时提供了Python实现导出工作表的代码示例,适用于自动化处理Excel文档。
|
7月前
|
文字识别 BI
【图片型PDF】批量识别扫描件PDF指定区域局部位置内容,将识别内容导出Excel表格或批量改名文件,基于阿里云OCR对图片型PDF识别改名案例实现
在医疗和政务等领域,图片型PDF文件(如病历、报告、公文扫描件)的处理需求广泛。通过OCR技术识别这些文件中的文字信息,提取关键内容并保存为表格,极大提高了信息管理和利用效率。本文介绍一款工具——咕嘎批量OCR系统,帮助用户快速处理图片型PDF文件,支持区域识别、内容提取、导出表格及批量改名等功能。下载工具后,按步骤选择处理模式、进行区域采样、批量处理文件,几分钟内即可高效完成数百个文件的处理。
772 8
|
10月前
|
数据格式 UED
记录一次NPOI库导出Excel遇到的小问题解决方案
【11月更文挑战第16天】本文记录了使用 NPOI 库导出 Excel 过程中遇到的三个主要问题及其解决方案:单元格数据格式错误、日期格式不正确以及合并单元格边框缺失。通过自定义单元格样式、设置数据格式和手动添加边框,有效解决了这些问题,提升了导出文件的质量和用户体验。
763 3
|
10月前
|
前端开发
实现Excel文件和其他文件导出为压缩包,并导入
实现Excel文件和其他文件导出为压缩包,并导入
187 1
|
10月前
|
Java API Apache
|
10月前
|
存储 Java API
Java实现导出多个excel表打包到zip文件中,供客户端另存为窗口下载
Java实现导出多个excel表打包到zip文件中,供客户端另存为窗口下载
747 4
|
11月前
|
JavaScript 前端开发 数据处理
Vue导出el-table表格为Excel文件的两种方式
Vue导出el-table表格为Excel文件的两种方式
663 6
|
2月前
|
Python
如何根据Excel某列数据为依据分成一个新的工作表
在处理Excel数据时,我们常需要根据列值将数据分到不同的工作表或文件中。本文通过Python和VBA两种方法实现该操作:使用Python的`pandas`库按年级拆分为多个文件,再通过VBA宏按班级生成新的工作表,帮助高效整理复杂数据。
|
4月前
|
存储 安全 大数据
网安工程师必看!AiPy解决fscan扫描数据整理难题—多种信息快速分拣+Excel结构化存储方案
作为一名安全测试工程师,分析fscan扫描结果曾是繁琐的手动活:从海量日志中提取开放端口、漏洞信息和主机数据,耗时又易错。但现在,借助AiPy开发的GUI解析工具,只需喝杯奶茶的时间,即可将[PORT]、[SERVICE]、[VULN]、[HOST]等关键信息智能分类,并生成三份清晰的Excel报表。告别手动整理,大幅提升效率!在安全行业,工具党正碾压手动党。掌握AiPy,把时间留给真正的攻防实战!官网链接:https://www.aipyaipy.com,解锁更多用法!
|
2月前
|
Python
将Excel特定某列数据删除
将Excel特定某列数据删除