前言:

以许框架提供的导入配置功能,已经能解决95%以上的导入情况,但有些情况总归还是得代码来解决。

本篇介绍与导入相关的代码。

1、前端追加导入时Post的参数:

var grid = new AR.DataGrid('V_Test', 'Demo_TestA');

//......

 /* 导入前追加一些Post参数 */
grid.ToolBar.BtnImport.onBeforeExecute = function (para)
{
alert("导入的参数:" + JSON.stringify(para));
para.Name = "追加一个名字,Excel导入配置的格式化可以配置@Name";
para.Para2 = "随意了...";
}

2、后端代码拦截导入事件:

如果不知道在哪写代码,看:ASP.NET Aries 开源开发框架:开发指南(一) 了解最后框架的请求流程。

 public override ImportResult BeforeImport(MDataTable dt, MDataRow excelInfo, out string msg)
{
if (dt.TableName == "V_UserList")//只处理特定的(视图对象)表
{
//参数说明:
//dt 从Excel导读出来的数据表,列头还是中文的
//excelInfo 高级Excel配置(若有配置的话,没配置则为null) msg = "错误信息,只有返回false时才有用"; if (msg == "自己处理完逻辑")
{
//自己补充逻辑
bool result = FormatExcel(dt, excelInfo);//调用系统方法,把列头中文翻译成英文,把下拉项目的中文翻译成值
if (result)
{
//自己写插入数据库的方法。
//result = ExcelConfig.AcceptChanges(dt, excelInfo, ObjName);// dt.AcceptChanges(AcceptOp.Auto);
}
return ImportResult.True;
}
else if (msg == "自己处理完逻辑,中止执行,返回处理失败")
{
return ImportResult.True;
}
else
{
//自已只处理了dt的里数据。
return ImportResult.Continue;//继续让框架处理下去
}
}
return base.BeforeImport(dt,excelInfo,out msg); }

框架的提供的核心方法有两个:

FormatExcel:

内部处理流程:

1、将中文列头翻译成英文。

2、将键值对的中文转换成数值。

3、处理一些默认值设置问题。

4、完成基础的数据验证(必填、是否为Null,长度、数据类型)

ExcelConfig.AcceptChanges(dt, excelInfo, ObjName);

系统会根据高级Excel配置项的内容进行复杂的处理,并根据配置决定是更新还是插入。

对于ExcelConfig。AcceptChanges的方法,还多了一个高级扩展,让你可以在每条数据发生动作的前后可以处理些事情。

具体看:Aries.Logic项目下的ExcelConfigExtend.cs文件。

总结说明:

如果是要增加数据验证、或者补齐数据,那么重写:BeforeImport事件,就很必要。

如果是每行数据发生的前后,需要做点事情,那么,在Aries.Logic.ExcelConfigExtend中补点代码就可以了。

ASP.NET Aries 高级开发教程:Excel导入之代码编写(番外篇)的更多相关文章

  1. ASP.NET Aries 高级开发教程:Excel导入之单表配置(上)

    前言: 随着ASP.NET Aries的普及,刚好也有点闲空,赶紧把Excel导入功能的教程补上. Excel导入功能,分为四篇:单表配置(上).多表高级配置(中).配置规则(下).代码编写(番外篇) ...

  2. ASP.NET Aries 高级开发教程:Excel导入之多表高级导入配置(中)

    前言: 在面对Excel的各种复杂导入情况中,多表导入是很常见的情景. 今天就来写一下多表导入是如何配置的. 1.自定义导入模板 怎么自定义: 其实就是自己新建一个Excel了,把列头都写好. 不过有 ...

  3. ASP.NET Aries 高级开发教程:Excel导入配置之规则说明(下)

    前言: 前面两篇都是大体介绍流程,有一些配置细节,没有细说,这里用一篇补上. 1.Excel配置项 起始行索引.列头跨行数: 对于自定义的Excel导入模板(有时候模板是由客户提供,模板的规则很乱) ...

  4. ASP.NET Aries 高级开发教程:主题样式及多语言(标签化控制)

    前言: 最新ASP.NET Aries升级到V5.2.0以上之后,之前的样式和多语言机制,有了重大的升级机制,这篇就简单介绍一下. 1.控制开关 在配置维护那里,新增了两个控制项: 2.如何添加主题 ...

  5. ASP.NET Aries 高级开发教程:如何写WebAPI接口

    前提: 最近,有不少同学又问到,Aries里如何提供WebAPI接口? 针对这个问题,今天给顺路写个教程,其实呢,很简单的. 方式一:直接用WebService提供接口. 用这种方式,直接添加接口就可 ...

  6. ASP.NET Aries 高级开发教程:使用存储过程(番外篇)

    前言: 发现这个问题,有不少人提起过,所以就简单写成文章吧. 接下来看如何在Aries 框架中使用存储过程,整体步骤和绑定普通视图差不多. 步骤一:新建一个空视图. 可以在SqlCode管理中,创建一 ...

  7. ASP.NET Aries 高级开发教程:表单检测字段是否已存(番外篇)

    前言: 昨天刚好有人问了这个问题,因此就针对这个问题,补上一篇吧. 正文: 如图:在用户编辑列表中,用户名是会自动检测是否已存在的. 具体对应的Html内容如下: <label><e ...

  8. ASP.NET Aries 高级开发教程:行内编辑事件怎么新增数据到后台(番外篇)

    前提: 今天又网友又提出了一个问题,说行内编辑保存之前,怎么新增一些数据提交到后台? 对方说看了源码,也没找到怎么处理,这里就写文给解答一下. 解答: 于是我看了一眼源码,只能说你没找到地方: 第12 ...

  9. ASP.NET Aries 入门开发教程7:DataGrid的行操作(主键操作区)

    前言: 抓紧勤奋,再接再励,预计共10篇来结束这个系列. 上一篇介绍:ASP.NET Aries 入门开发教程6:列表数据表格的格式化处理及行内编辑 本篇介绍主键操作区相关内容. 1:什么时候有默认的 ...

随机推荐

  1. Linux共享库、静态库、动态库详解

    1. 介绍 使用GNU的工具我们如何在Linux下创建自己的程序函数库?一个“程序函数库”简单的说就是一个文件包含了一些编译好的代码和数据,这些编译好的代码和数据可以在事后供其他的程序使用.程序函数库 ...

  2. 利用 ssh 的用户配置文件 config 管理 ssh 会话

    http://dhq.me/use-ssh-config-manage-ssh-session 利用 ssh 连接远程服务器,一般都要输入以下类似命令: 1 ssh user@hostname -p ...

  3. 基于Nginx和Zookeeper实现Dubbo的分布式服务

    一.前言 公司的项目基于阿里的Dubbo 微服务框架开发.为了符合相关监管部门的安全要求,公司购买了华东1.华东2两套异地服务器,一套是业务服务器,一套是灾备服务器.准备在这两套服务器上实现 Dubb ...

  4. ubuntu 16.04启用root用户方法

    1.使用:sudo passwd root设置root的密码,如下图所示: 2.使用su root来测试是否可以进入root用户,如果出现#说明已经设置root用户的密码成功,如下图所示:

  5. 一支烟的时间导致他错失女神,Python查看撤回消息,力挽狂澜!

    2011年1月21日 微信(WeChat) 是腾讯公司于2011年1月21日推出的一个为智能终端提供即时通讯服务的免费应用程序,由张小龙所带领的腾讯广州研发中心产品团队打造 .在互联网飞速发展的下.民 ...

  6. Dubbo中集群Cluster,负载均衡,容错,路由解析

    Dubbo中的Cluster可以将多个服务提供方伪装成一个提供方,具体也就是将Directory中的多个Invoker伪装成一个Invoker,在伪装的过程中包含了容错的处理,负载均衡的处理和路由的处 ...

  7. too many open files linux服务器 golang java

    1. 现象 服务的cpu跑满(golang实现), 并大量报too many open files错误.服务使用systemd来运行,部署在阿里ecs上. 2.分析 从日志来看,cpu的上升主要为到达 ...

  8. [Poi2014]FarmCraft 树状dp

    对于每个点,处理出走完其子树所需要的时间和其子树完全下载完软件的时间 易证,对于每个点的所有子节点,一定优先选择差值大的来给后面的时间 树规+贪心. #include<cstdio> #i ...

  9. Shiro安全框架【快速入门】就这一篇!

    Shiro 简介 照例又去官网扒了扒介绍: Apache Shiro™ is a powerful and easy-to-use Java security framework that perfo ...

  10. Docker最全教程之Go实战,墙裂推荐(十八)

    前言 与其他语言相比,Go非常值得推荐和学习,真香!为什么?主要是可以直接编译成机器代码(性能优越,体积非常小,可达10来M,见实践教程图片)而且设计良好,上手门槛低.本篇主要侧重于讲解了Go语言的优 ...