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

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

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

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

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

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

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

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

代码参考如下:

全部导出:

1privatevoid 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;
6this.ExportExcel(this.grdOrganize, dataTable.DefaultView, @"\Modules\Export\", "组织机构.csv");
7        }

导出当前页面:

1privatevoid btnExport_Click(object sender, EventArgs e)
2        {
3// 导出Excel
4this.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>
7privatebool FileExist(string fileName)
8        {
9if (System.IO.File.Exists(fileName))
10            {
11string targetFileName = System.IO.Path.GetFileName(fileName);
12if (MessageBox.Show(AppMessage.Format(AppMessage.MSG0236, targetFileName), AppMessage.MSG0000, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
13                {
14                    System.IO.File.Delete(fileName);
15                }
16else
17                {
18returntrue;
19                }
20            }
21returnfalse;
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>
33publicvoid ExportExcel(DataGridView dataGridView, DataView dataView, string directory, string fileName)
34        {
35// 开始忙了
36this.Cursor = Cursors.WaitCursor;
37string directoryName = BaseSystemInfo.StartupPath + directory;
38if (!Directory.Exists(directoryName))
39            {
40                Directory.CreateDirectory(directoryName);
41            }
42string file = BaseSystemInfo.StartupPath + directory + fileName;
43if (!this.FileExist(file))
44            {
45                BaseExportCSV.ExportCSV(dataGridView, dataView, file);
46                Process.Start(file);
47            }
48// 已经忙完了
49this.Cursor = Cursors.Default;
50        }
51#endregion
52
53publicvoid ExportExcel(DataGridView dataGridView, string directory, string fileName)
54        {
55            ExportExcel(dataGridView, (DataView)(dataGridView.DataSource), directory, fileName);
56        }

相关工具包的代码如下:

View Code

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

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

  1. POI 导出excel带小数点的数字格式显示不对解决方法

    POI 导出excel带小数点的数字格式显示不对解决方法 参考文章: (1)POI 导出excel带小数点的数字格式显示不对解决方法 (2)https://www.cnblogs.com/firstd ...

  2. mysql数据导入导出 CSV格式_导出mysql的数据为csv格式的文件

    Mysql自带数据导出的命令 into outfile(本地导出) SELECT * FROM server_warning_repaired into outfile '/tmp/test.csv' ...

  3. python excel文件转为csv文件_python实现将excel文件转化成CSV格式

    python实现将excel文件转化成CSV格式 如下所示: import pandas as pd data = pd.read_excel('123.xls','Sheet1',index_col ...

  4. java 导出csv 格式,java导出csv格式文件的方法

    这篇文章主要为大家详细介绍了java导出csv格式文件的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 导出csv格式文件的本质是导出以逗号为分隔的文本数据 imp ...

  5. 如何批量将 Excel 文档转为 Csv 格式

    概要:CSV 称为逗号分隔值,其文件以纯文本形式存储表格数据(数字和文本),而熟悉 Excel 的小伙伴应该也知道 Excel 也是存储表格数据,只不过 Excel 不仅支持文本,还支持图片.视频等多 ...

  6. 导出excel、word、csv文件方法汇总

    excel文件主要是输出html代码.以xls的文本格式保存文件. 生成excel格式的代码: [code lang="CSharp"] /// <summary> / ...

  7. oracle导出千万级数据为csv格式

    当数据量小时(20万行内),plsqldev.sqlplus的spool都能比较方便进行csv导出,但是当数据量到百万千万级,这两个方法非常慢而且可能中途客户端就崩溃,需要使用其他方法. 一. sql ...

  8. asp 导出excel数据 fso 单元格格式

    <!--#include file="../conn.asp"--> <% dim s,sql,filename,fs,myfile,x Set fs = ser ...

  9. springboot中使用poi导出excel文件(亲测实现了第一个功能)

    1.POI简介 Jakarta POI 是一套用于访问微软格式文档的Java API. 组件HWPF用于操作Word的; 组件HSSF用于操作Excel格式文件. 2.常用组件 HSSFWorkboo ...

最新文章

  1. NumPy迎来重大版本更新
  2. java 调用solr服务器_Solr环境搭建及IK分词的集成及solrJ的调用(一)
  3. 网络卖家自曝黑幕 “信用刷手”欺骗你
  4. saltstack 执行结果返回到mysql
  5. Spring-ApplicationContext解读
  6. 在用visio作图形界面设计,控件对齐的工具按钮
  7. Native与H5交互的一些解决方法
  8. [导入]基类的复制控制函数
  9. jquery学习系列8(过滤选择器)
  10. Node.js(express) + MongoDB(mongoose) 简单开发(二)
  11. vs 2010调用matlab dll显示窗口核心代码
  12. Android成长日记-仿跑马灯的TextView
  13. 通信原理(四) 信源编码
  14. python搜索word关键字_Python根据关键字抓取word相关内容
  15. 网络安全攻防实验室通关教程-脚本关
  16. 你已经长大了,寄几的日志要寄几处理
  17. 经常戴耳机对耳朵有危害?耳机这样用对耳朵伤害最小!
  18. 小米系统shell_获取linux系统信息shell | 小米的博客
  19. 影视动画设计有些SCI期刊推荐? - 易智编译EaseEditing
  20. C语言小记:结构体及其在内存中的储存形式

热门文章

  1. boost::geometry::detail::overlay::approximately_equals用法的测试程序
  2. boost::filesystem模块Microsoft TCHAR 的使用示例的测试程序
  3. VTK:Shaders之SphereMap
  4. VTK:Math之VectorNorm
  5. OpenCV捕获格雷码模式
  6. DelegateModel QML类型
  7. C++打印STAIRS 图案算法(附完整源码)
  8. C++将“引用”作为函数返回值类型的格式、好处和注意事项?
  9. C++namespace命名空间
  10. QT的QHoverEvent类的使用