700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > C#如何导入导出与处理Excel文件

C#如何导入导出与处理Excel文件

时间:2021-06-30 00:26:38

相关推荐

C#如何导入导出与处理Excel文件

后端开发|C#.Net教程

C#,Excel

后端开发-C#.Net教程

OleDB是微软的战略性的通向不同的数据源的低级应用程序接口。支持很多种数据库,此客户端中DBF文件的输入输出也是使用了此数据库API。使用OleDB记得添加上命名空间:

QQ空间图片上传源码,vscode代码跳转,ubuntu gpu,tomcat 中间件,sqlite 内存数据库,创意留言板网页设计,iis7 access数据库,vps服务器怎么改用户名,二维码生成 插件,前端框架NE,动态网页爬虫,php 命令,站seo优化,读springboot源码,织梦标签 if,卫浴洁具网站模板,html网页动画代码大全,织梦cms影视模板,织梦后台 不显示验证码,系统错误提示页面模板,管理系统 开源 开发,模拟LED显示程序lzw

using System.Data.OleDb;

xlsx文件的输入:

在线派单接单网站源码,vscode 打开命令面板,Ubuntu显卡off,tomcat下运行main,sqlite获取列的最小值,pyhont 爬虫,html调用php页面,随州seo排名收费标准,百度网站推送,h5报名模板lzw

private void inputXlsx(){ string strConn2; string filePath = inPath; FileInfo fileInfo = new FileInfo(filePath); string directory = fileInfo.DirectoryName; strConn2 = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=Excel 8.0;HDR=Yes;IMEX=1;;"; string strConnection = string.Format(strConn2, inPath); OleDbConnection conn = new OleDbConnection(strConnection); try { conn.Open(); String tableName = null; DataTable dt = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); tableName = dt.Rows[0][2].ToString().Trim(); OleDbDataAdapter oada = new OleDbDataAdapter("select * from [" + tableName + "]", strConnection); oada.Fill(dtOld); conn.Close(); } catch (Exception ex) { conn.Close(); }}

xlsx文件的中间处理过程因需求而异,在此不再赘述处理方式。在输入过程中,将文件中的数据转化成了Datatable数据类型的格式,它是一个临时保存数据的网格虚拟表,处理非常方便。

仿ab模板网源码,vscode撤销分栏,ubuntu 画图,怎么卸载tomcat,sqlite 查询 慢,怎么快速学会网页设计,mysql 如何创建中文数据库,香港服务器 可以备案, 报表插件 免费,前端mvc框架是什么,爬虫的故事,搭建php服务器,seo人才,迷你版springboot,dede dede sql 标签如何分页,个人网站制作代码,蓝色主题 网页,bootstrap个人介绍网页模板下载,扁平化cms后台界面,mysql html页面,订单管理系统 源码,单页面静态淘宝客程序lzw

xlsx文件的输出:xlsx文件的输出过程并不是很顺利,先后使用了三种方式。

第一种方式自然就是OleDB了,有始有终嘛。但是真正使用的过程中发现此方式不仅要求程序运行本机必须安装Excel,而且对Excel版本要求非常高,如果删注册表很容易弄巧成拙,我改注册表就直接玩坏了Excel。事实上我们并不能保证客户的机器上一定安装了对应版本的Excel,所以如果使用OleDB输出文件,此客户端的兼容性将非常的低劣。

经过一番沟通和挣扎决定还是换一种方式,决定改用第三方组件。由于JAVA方使用的是POI,所以这边直接使用POI项目的.NET版本,NPOI。网上教学很多,很好实现,但是经过测试之后,此种方式对大文件的输入输出支持的不是很好,处理DEMO文件没有问题,但是换成了真正客户提供的十万行级甚至百万行级的文件,客户端直接在输出的过程中崩掉。

查询资料后,网友们对于大文件都建议使用EPPlus。教学也是一抓一大把,我没有继续加大文件大小测试,不过客户给我们提供的十来个文件全部测试通过,基本上都是百万级以下的。

上代码吧:

private void outputXlsx(){ FileInfo newFile = new FileInfo(dtNew.TableName + ".xlsx"); if (newFile.Exists) { newFile.Delete(); newFile = new FileInfo(dtNew.TableName + ".xlsx"); } using (ExcelPackage package = new ExcelPackage(newFile)) { ExcelWorksheet worksheet = package.Workbook.Worksheets.Add(dtNew.TableName);//创建worksheet for (int m = 0; m < dtNew.Columns.Count; m++) { worksheet.Cells[1, m + 1].Value = dtNew.Columns[m]; } int i = 1; foreach (DataRow dr in dtNew.Rows) { for (int j = 0; j < dtNew.Columns.Count; j++) {worksheet.Cells[i + 1, j + 1].Value = dr[j]; } i++; } package.Save();//保存excel }}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。