假导出Excel功能实现,按CSV格式快速导出功能代码参考(追求代码追求简洁复用)

本文涉及的产品
可视分析地图(DataV-Atlas),3 个项目,100M 存储空间
数据可视化DataV,5个大屏 1个月
简介:

 我们辛苦录入的数据都希望能有重复利用的价值,一方面这些基础数据需要有数据库级的重复利用,程序级别的重复利用,另一方面还需要直接可以方便的导出倒入的功能比较好,虽然我们自己制作的统计分析功能很强大,但是还是没有Office Excel这么灵活强大,毕竟人家是世界级别的,我们的产品暂时还没能力能跟这个匹敌,这个是实话。


  使用我们软件的客户经常需要有导出数据的实际工作需要,导出的数据功能的最重要的意图是数据能重复利用,辛辛苦苦录入了某一个系统中的数据无法重复利用,或者很难重复利用,那是很残忍的事情,是严重浪费生命的事情,我们尽量不要让客户折磨能重复利用的都重复利用。


  在走火入魔C#.NET通用权限管理系统组件源码里,有一个假导出Excel功能,可供大家参考一下。具体实现功能如下:任何信息管理系统中,若有必要都做个导出功能比较好。


  很多东西其实老早就发明了,但是真正普及都需要一个过程,100年前轿车就被发明了,到了100年后才普及得厉害,走火入魔C#.NET通用权限管理系统也一样被推广了3年左右,再过几年也会全国都普及了,大家都慢慢的认可了,就象论坛程序一个道理没几个人自己写了,直接买个现成的拿来用用就可以了,没几个SB会自己埋头苦干论坛程序了,通用权限到今天为止已经销售了200多套,未来的3年内,应该全国到处都会用这个来开发信息化管理系统,客户不会允许你瞎折腾了,浪费生命、搞得死去活来何必,直接拿过来用用配置一下,就完事了,省心省事。


  中国有几亿农民,日子过得蛮苦的,美国可能只有几百万农民就可以了,应为他们都用工具大规模批量生成,我们国内有多少开发人员都在重复劳动?我做过的10年的路又会有 多少个人走过,跟我有同样想法的人,会有多过多少,他们可能都没能坚持,没我有毅力,不怕挨骂、不怕被拍砖头、不怕别人不购买、不怕当炮灰。

  任何信息管理系统,都需要一个铜墙铁壁的经得起考验的权限配置管理工具、这个若是从头开始做,需要几年的时间完善,没必要生命浪费在这个上,每个10年以上工作经验的程序员,都能做出一个有重复利用价值的工具,我们的生产力就可以得到提高,社会就会进步。  

吉日嘎拉

导出数据功能是导出当前页面上的数据,全部导出是指所有的数据。


吉日嘎拉


导出CVS时会遇到文件名乱码、文件乱码的问题,WEB里还会遇到直接打开还是另存为的问题等。

吉日嘎拉


吉日嘎拉


代码参考如下:

全部导出:

1 private void  btnExportAll_Click( object  sender, EventArgs e)
2         {
3 //  全部导出Excel
4             DataTable dataTable  =  ServiceManager.Instance.OrganizeService.GetDT(UserInfo);
5             dataTable.DefaultView.Sort  =  BaseOrganizeTable.FieldParentId  + " " +  BaseOrganizeTable.FieldSortCode;
6 this .ExportExcel( this .grdOrganize, dataTable.DefaultView,  @" \Modules\Export\ " " 组织机构.csv " );
7         }

导出当前页面:

1 private void  btnExport_Click( object  sender, EventArgs e)
2         {
3 //  导出Excel
4 this .ExportExcel( this .grdOrganize,  @" \Modules\Export\ " " 组织机构.csv " );
5         }
1 #region  private bool FileExist(string fileName) 检查文件是否存在
2 /// <summary>
3 ///  检查文件是否存在
4 /// </summary>
5 /// <param name="fileName"> 文件名 </param>
6 /// <returns> 是否存在 </returns>
7 private bool  FileExist( string  fileName)
8         {
9 if  (System.IO.File.Exists(fileName))
10             {
11 string  targetFileName  =  System.IO.Path.GetFileName(fileName);
12 if  (MessageBox.Show(AppMessage.Format(AppMessage.MSG0236, targetFileName), AppMessage.MSG0000, MessageBoxButtons.YesNo, MessageBoxIcon.Question)  ==  DialogResult.Yes)
13                 {
14                     System.IO.File.Delete(fileName);
15                 }
16 else
17                 {
18 return true ;
19                 }
20             }
21 return false ;
22         }
23 #endregion
24
25 #region  private void ExportExcel(DataGridView dataGridView, DataView dataView, string directory, string fileName) 导出Excel
26 /// <summary>
27 ///  导出Excel
28 /// </summary>
29 /// <param name="dataGridView"> 表格控件 </param>
30 /// <param name="dataView"> 数据表格 </param>
31 /// <param name="directory"> 目录 </param>
32 /// <param name="fileName"> 文件名 </param>
33 public void  ExportExcel(DataGridView dataGridView, DataView dataView,  string  directory,  string  fileName)
34         {
35 //  开始忙了
36 this .Cursor  =  Cursors.WaitCursor;
37 string  directoryName  =  BaseSystemInfo.StartupPath  +  directory;
38 if  ( ! Directory.Exists(directoryName))
39             {
40                 Directory.CreateDirectory(directoryName);
41             }
42 string  file  =  BaseSystemInfo.StartupPath  +  directory  +  fileName;
43 if  ( ! this .FileExist(file))
44             {
45                 BaseExportCSV.ExportCSV(dataGridView, dataView, file);
46                 Process.Start(file);
47             }
48 //  已经忙完了
49 this .Cursor  =  Cursors.Default;
50         }
51 #endregion
52
53 public void  ExportExcel(DataGridView dataGridView,  string  directory,  string  fileName)
54         {
55             ExportExcel(dataGridView, (DataView)(dataGridView.DataSource), directory, fileName);
56         }


相关工具包的代码如下:

ContractedBlock.gif View Code





本文转自 jirigala 51CTO博客,原文链接:http://blog.51cto.com/2347979/1200716,如需转载请自行联系原作者

相关实践学习
Github实时数据分析与可视化
基于Github Archive公开数据集,将项目、行为等20+种事件类型数据实时采集至Hologres进行分析,并搭建可视化大屏。
阿里云实时数仓实战 - 项目介绍及架构设计
课程简介 1)学习搭建一个数据仓库的过程,理解数据在整个数仓架构的从采集、存储、计算、输出、展示的整个业务流程。 2)整个数仓体系完全搭建在阿里云架构上,理解并学会运用各个服务组件,了解各个组件之间如何配合联动。 3&nbsp;)前置知识要求 &nbsp; 课程大纲 第一章&nbsp;了解数据仓库概念 初步了解数据仓库是干什么的 第二章&nbsp;按照企业开发的标准去搭建一个数据仓库 数据仓库的需求是什么 架构 怎么选型怎么购买服务器 第三章&nbsp;数据生成模块 用户形成数据的一个准备 按照企业的标准,准备了十一张用户行为表 方便使用 第四章&nbsp;采集模块的搭建 购买阿里云服务器 安装 JDK 安装 Flume 第五章&nbsp;用户行为数据仓库 严格按照企业的标准开发 第六章&nbsp;搭建业务数仓理论基础和对表的分类同步 第七章&nbsp;业务数仓的搭建&nbsp; 业务行为数仓效果图&nbsp;&nbsp;
相关文章
|
22天前
|
关系型数据库 MySQL Shell
不通过navicat工具怎么把查询数据导出到excel表中
不通过navicat工具怎么把查询数据导出到excel表中
26 0
|
30天前
|
前端开发 JavaScript
使用Vue+xlsx+xlsx-style实现导出自定义样式的Excel文件
本文介绍了在Vue项目中使用`xlsx`和`xlsx-style`(或`xlsx-style-vite`)库实现导出具有自定义样式的Excel文件的方法,并提供了详细的示例代码和操作效果截图。
255 1
使用Vue+xlsx+xlsx-style实现导出自定义样式的Excel文件
|
30天前
|
前端开发 Python
使用Python+openpyxl实现导出自定义样式的Excel文件
本文介绍了如何使用Python的openpyxl库导出具有自定义样式的Excel文件,包括设置字体、对齐方式、行列宽高、边框和填充等样式,并提供了完整的示例代码和运行效果截图。
26 1
使用Python+openpyxl实现导出自定义样式的Excel文件
|
26天前
|
SQL 分布式计算 DataWorks
DataWorks产品使用合集之如何直接导出excel文件
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
30天前
|
JavaScript 前端开发 easyexcel
基于SpringBoot + EasyExcel + Vue + Blob实现导出Excel文件的前后端完整过程
本文展示了基于SpringBoot + EasyExcel + Vue + Blob实现导出Excel文件的完整过程,包括后端使用EasyExcel生成Excel文件流,前端通过Blob对象接收并触发下载的操作步骤和代码示例。
160 0
基于SpringBoot + EasyExcel + Vue + Blob实现导出Excel文件的前后端完整过程
|
14天前
|
C# 开发者 Windows
WPF遇上Office:一场关于Word与Excel自动化操作的技术盛宴,从环境搭建到代码实战,看WPF如何玩转文档处理的那些事儿
【8月更文挑战第31天】Windows Presentation Foundation (WPF) 是 .NET Framework 的重要组件,以其强大的图形界面和灵活的数据绑定功能著称。本文通过具体示例代码,介绍如何在 WPF 应用中实现 Word 和 Excel 文档的自动化操作,包括文档的读取、编辑和保存等。首先创建 WPF 项目并设计用户界面,然后在 `MainWindow.xaml.cs` 中编写逻辑代码,利用 `Microsoft.Office.Interop` 命名空间实现 Office 文档的自动化处理。文章还提供了注意事项,帮助开发者避免常见问题。
44 0
|
30天前
|
数据管理 数据处理 数据库
分享一个导出数据到 Excel 的解决方案
分享一个导出数据到 Excel 的解决方案
|
30天前
Excel 条件格式
Excel 条件格式
23 0
|
1月前
|
数据可视化 Python
我是如何把python获取到的数据写入Excel的?
我是如何把python获取到的数据写入Excel的?
33 2
|
5天前
|
数据采集 存储 数据挖掘
使用Python读取Excel数据
本文介绍了如何使用Python的`pandas`库读取和操作Excel文件。首先,需要安装`pandas`和`openpyxl`库。接着,通过`read_excel`函数读取Excel数据,并展示了读取特定工作表、查看数据以及计算平均值等操作。此外,还介绍了选择特定列、筛选数据和数据清洗等常用操作。`pandas`是一个强大且易用的工具,适用于日常数据处理工作。