winfrom 快速 导出excel

2024-01-23 07:32
文章标签 excel 快速 导出 winfrom

本文主要是介绍winfrom 快速 导出excel,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

此方法比较快,500条8列的数据不到1秒

只需要给一个有数据的datagridview就可以了


private void ToExcel_Click(object sender, EventArgs e){SaveFileDialog sfd = new SaveFileDialog();sfd.Filter = "Execl files (*.xls)|*.xlsx";sfd.FilterIndex = 0;sfd.RestoreDirectory = true;sfd.CreatePrompt = false;sfd.Title = "导出文件保存路径";if (sfd.ShowDialog() == DialogResult.OK){string path = sfd.FileName; //时间计算DateTime dt1 = DateTime.Now;saveAsExcel(path, dataGridView1);DateTime dt2 = DateTime.Now;MessageBox.Show("导出成功!共用了:" + (dt2 - dt1));}}//这个代码速度特别快,基本达到导出csv的速度public static void SaveAsExcel(string path, DataGridView gridView){if (gridView.RowCount > 65536){MessageBox.Show("当前表格中记录太多,不能导出excel(excel最多可以存储65536行记录)", "提示");//return;}try{saveAsExcel(path, gridView);System.GC.Collect();}catch (Exception ex){MessageBox.Show("导出excel时发生错误: " + ex.Message, "提示");System.GC.Collect();}}//上面的 SaveAsExcel 调用 saveAsExcel 的目,估计是为了解决 excel进程销毁的问题private static void saveAsExcel(string path, DataGridView gridView){object objMissing = System.Reflection.Missing.Value;Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application();app.Visible = false;Microsoft.Office.Interop.Excel.Workbook workBook = app.Workbooks.Add(objMissing);Microsoft.Office.Interop.Excel.Worksheet workSheet = (Microsoft.Office.Interop.Excel.Worksheet)workBook.Worksheets[1];//以下3个对象在前面定义,为了能在异常中可以释放Microsoft.Office.Interop.Excel.Range ranges = null;Microsoft.Office.Interop.Excel.Range range = null;Microsoft.Office.Interop.Excel.Range head = null;try{for (int i = 0; i < gridView.Columns.Count; i++){//Microsoft.Office.Interop.Excel.Range head = (Microsoft.Office.Interop.Excel.Range)workSheet.Cells[1, i + 1];head = (Microsoft.Office.Interop.Excel.Range)workSheet.Cells[1, i + 1];head.Value2 = gridView.Columns[i].HeaderText;head = null;}//A2用于指定起始行的位置//Microsoft.Office.Interop.Excel.Range range = workSheet.get_Range("A2", objMissing);range = workSheet.get_Range("A2", objMissing);int rows = gridView.Rows.Count, cols = gridView.Columns.Count;//Microsoft.Office.Interop.Excel.Range ranges = range.get_Resize(rows, cols);ranges = range.get_Resize(rows, cols);object[,] datas = new object[rows, cols];for (int i = 0; i < rows; i++){for (int j = 0; j < cols; j++){DataGridViewCell cell = gridView[j, i];if (typeof(string) == cell.ValueType){datas[i, j] = string.Format("'{0}", cell.FormattedValue);}else{datas[i, j] = cell.FormattedValue.ToString();}}}ranges.Value2 = datas;workBook.SaveAs(path, objMissing, objMissing, objMissing, objMissing, objMissing, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, objMissing,objMissing, objMissing, objMissing, objMissing);}catch (Exception ex){throw (ex);}finally{workBook.Close(false, objMissing, objMissing);app.Quit();range = null;ranges = null;workBook = null;workSheet = null;app = null;}}

ps:此方法只是从网上找到的,地址已经不记得了。里面的注释什么的可能不一定对。但是整体方法肯定是可以的。

         这只是基于datagridview的导出,也没有sheet分页。如果想要其他的类型的,还要自己修改!



这篇关于winfrom 快速 导出excel的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/635652

相关文章

Python进阶之Excel基本操作介绍

《Python进阶之Excel基本操作介绍》在现实中,很多工作都需要与数据打交道,Excel作为常用的数据处理工具,一直备受人们的青睐,本文主要为大家介绍了一些Python中Excel的基本操作,希望... 目录概述写入使用 xlwt使用 XlsxWriter读取修改概述在现实中,很多工作都需要与数据打交

使用SQL语言查询多个Excel表格的操作方法

《使用SQL语言查询多个Excel表格的操作方法》本文介绍了如何使用SQL语言查询多个Excel表格,通过将所有Excel表格放入一个.xlsx文件中,并使用pandas和pandasql库进行读取和... 目录如何用SQL语言查询多个Excel表格如何使用sql查询excel内容1. 简介2. 实现思路3

python实现pdf转word和excel的示例代码

《python实现pdf转word和excel的示例代码》本文主要介绍了python实现pdf转word和excel的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录一、引言二、python编程1,PDF转Word2,PDF转Excel三、前端页面效果展示总结一

Python实现将实体类列表数据导出到Excel文件

《Python实现将实体类列表数据导出到Excel文件》在数据处理和报告生成中,将实体类的列表数据导出到Excel文件是一项常见任务,Python提供了多种库来实现这一目标,下面就来跟随小编一起学习一... 目录一、环境准备二、定义实体类三、创建实体类列表四、将实体类列表转换为DataFrame五、导出Da

Python数据处理之导入导出Excel数据方式

《Python数据处理之导入导出Excel数据方式》Python是Excel数据处理的绝佳工具,通过Pandas和Openpyxl等库可以实现数据的导入、导出和自动化处理,从基础的数据读取和清洗到复杂... 目录python导入导出Excel数据开启数据之旅:为什么Python是Excel数据处理的最佳拍档

使用Python处理CSV和Excel文件的操作方法

《使用Python处理CSV和Excel文件的操作方法》在数据分析、自动化和日常开发中,CSV和Excel文件是非常常见的数据存储格式,ython提供了强大的工具来读取、编辑和保存这两种文件,满足从基... 目录1. CSV 文件概述和处理方法1.1 CSV 文件格式的基本介绍1.2 使用 python 内

Python使用Pandas库将Excel数据叠加生成新DataFrame的操作指南

《Python使用Pandas库将Excel数据叠加生成新DataFrame的操作指南》在日常数据处理工作中,我们经常需要将不同Excel文档中的数据整合到一个新的DataFrame中,以便进行进一步... 目录一、准备工作二、读取Excel文件三、数据叠加四、处理重复数据(可选)五、保存新DataFram

shell脚本快速检查192.168.1网段ip是否在用的方法

《shell脚本快速检查192.168.1网段ip是否在用的方法》该Shell脚本通过并发ping命令检查192.168.1网段中哪些IP地址正在使用,脚本定义了网络段、超时时间和并行扫描数量,并使用... 目录脚本:检查 192.168.1 网段 IP 是否在用脚本说明使用方法示例输出优化建议总结检查 1

Oracle Expdp按条件导出指定表数据的方法实例

《OracleExpdp按条件导出指定表数据的方法实例》:本文主要介绍Oracle的expdp数据泵方式导出特定机构和时间范围的数据,并通过parfile文件进行条件限制和配置,文中通过代码介绍... 目录1.场景描述 2.方案分析3.实验验证 3.1 parfile文件3.2 expdp命令导出4.总结

Rust中的Option枚举快速入门教程

《Rust中的Option枚举快速入门教程》Rust中的Option枚举用于表示可能不存在的值,提供了多种方法来处理这些值,避免了空指针异常,文章介绍了Option的定义、常见方法、使用场景以及注意事... 目录引言Option介绍Option的常见方法Option使用场景场景一:函数返回可能不存在的值场景