Excel 导入导出,统计报表(C#)

 (一)Excel导入的思路

1:先将xcel件上传至服务器指定的文件夹,然后使用OLEDB将EXCEL中的数据转化为对应DataTable。

2:然后对Excel中的数据进行指定规则的检查,不符合规定的数据一次性展示给用户,方便用户对数据进行统一的修改(公司内部称之为导入导航)。

3:将Excel中对应的数据批量转换为sql语句,根据具体的硬件环境,性能要求将sql语句一次性或者分次提交导数据库执行。

4:重复导入时需要程序能够将相应的数据转换为insert 和update语句。

5:导入成功后的相应提示。

对2 进行较为细致的描述:相应的检查规则可以概括为

 (1):非空检查。

 (2):Excel中字段值对应数据库主键的存在性检查。这里举一个简单的例子。Excel中的中有两列 职工编号 ,职工类别 。导入时Excel中的数据为 1 中级软件工程师 ,进行存在性检查就要检查职工编号是否存在,中级软件工程师这个类别是否存在。

 (3):数据格式的检查  在Excel数据准备的前期需要对数据格式进行定义,如果不对数据格式进行较为严格的定义的话,在数据入库之后的维护将将苦难重重。导入时也要做严格的检查不能让一条异常数据入库。

需要注意的是Excel数据导入的数据量是比较大的,需要注意性能方面的问题,需要考虑到网络状况,硬件等等。。。

(二)Excel导出思路

 这里的导出的Excel不是正真的Excel 而是向浏览器进行输出,通过设置MIME的值从而保存为伪Excel

 伪Excel 导出在统计报表中应用的比较广泛,一般用来做数据导出然后进行打印。

 (三)报表

   MSI系统中使用报表一般有两种思路

  1:使用第三方控件,或者专业的报表工具

  2:直接向网页输出html标记(table)

  1优势速度快,产量高,功能强大,可以支持图形化的报表,但是对于格式非常复杂的报表显得有些吃力了,在部署的时候各种库组件占用空间比较大

   2可以灵活的处理格式复杂的报表,由于直接在服务器端拼装html标记容易出错,导致报表变形,如果需要支持图形化的报表需要进行图形化的编程.

   以下只针对表格类的报表。

   表格类的报表分四类 1:最简单的报表(没有合并行,合并列的) 2:合并数据行的报表 3:合并数据列的报表 4:同时合并数据列数据行的报表

   第一类报表是最简单的直接对应数据列生成相应的html标记 。第二类报表根据父子数据集中的子数据集的记录条数 来确定父集所在单元格rowspan的值。

  第三类,第四类同样根据父子数据集之间的关系来确定合并行或者是列的值

  作者个人见解欢迎拍砖......

 

你可能感兴趣的:(html,数据库,Excel,C#,报表,图形)