前言:

前面两篇都是大体介绍流程,有一些配置细节,没有细说,这里用一篇补上。

1、Excel配置项

起始行索引、列头跨行数:

对于自定义的Excel导入模板(有时候模板是由客户提供,模板的规则很乱)

比如模板里前面是一些说明,中间是列头,下面还带有数据和说明格式。

通过配置起始行索引,以及列头跨行数(0或1都代表一行),则可以解决此类问题。

条件方式:

此选项,是针对映射字段里:勾选了多个“唯一键”,的情况。

有些时候,需要满足 A and B 为组合条件:A字段+B字段 才组成唯一。

有些时候,可能需要 A or B为组合条件:A字段 或 B字段 单独都是唯一。

导入方式:

仅插入:只处理插入。

仅更新:只处理更新。

插入或更新:存在则更新、不存在则插入。

所有方式,都是:根据唯一键勾选的条件做为检测条件。

2、字段映射配置

Excel列名:

系统自动读取的Excel模板,按规则把Excel模板的列头名字读取出来。

表名+表字段名:

系统会自动读取数据库的字段描述和列表的表头配置规则,自动匹配出对应的表名+字段名。

对于系统无法自动识别或匹配错误的,则需手工调整。

对于多个表之间的关系,则手机添加补齐外键字段(外键列名可以随便取)

必填:

指定字段是否需要必填。

唯一:

做为检测插入或更新的条件。

可以勾选多个,默认是and组合,(在Excel导入配置那里,可以指定是and还是or组合)。

外键+外键对应的表名:

当涉及多个表时,总有关联字段,因此,需要添加关联字段,这里统一叫外键

添加好外键,必然需要指定该外键关联到哪个表(系统会自动识别表的主键,并进行关联)

PS:如果表之间的关联,不是通过主键关联,而是通过某个Key关联,则在格式化字段中指定的表的字段。

3、字段映射格式化:

和配置表头的配置规则一样,可以配置一些格式化(系统也会自动识别并自动读取过来)

规则一:#号配置(和导入配置规则格式化一样)

#是否

配置后,Excel数据填写的是下拉选择是与否,导入数据会格式化成1或0进数据库。

规则二:@号配置

以下几个为系统的固定替换值:

@UserID : 当前的用户ID。

@UserName :当前的用户名。

@FullName :当前的真实姓名。

其它自定义:

@XXX : 系统会自动从post过的参数里(通过Reques["xxx"])寻找同名的替换。

规则三:.号配置

可以指定取某个字段的值:配置规则为:表名.字段名(表名可以省略)

.FullName

示例:用户导入时,用户的姓名对应:FullName,但数据库还有一个字段叫RealName,即则一个值需要存两份。

则:添加一个RealName字段,并把格式化配置成 .FullName

规则四:默认值

系统固定的默认值:

now() :代表当前时间。

newid() :一个随机guid值。

其它:

9527 :写什么就值值。

总结:

配置是核心,理解了基本可以处理大部分情况,而无需写代码。

如果真的要写,请看下一篇。

ASP.NET Aries 高级开发教程:Excel导入配置之规则说明(下)的更多相关文章

  1. ASP.NET Aries 高级开发教程:Excel导入之代码编写(番外篇)

    前言: 以许框架提供的导入配置功能,已经能解决95%以上的导入情况,但有些情况总归还是得代码来解决. 本篇介绍与导入相关的代码. 1.前端追加导入时Post的参数: var grid = new AR ...

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

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

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

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

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

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

  5. ASP.NET Aries 入门开发教程2:配置出一个简单的列表页面

    前言: 朋友们都期待我稳定地工作,但创业公司若要躺下,也非意念可控. 若人生注定了风雨飘摇,那就雨中前行了. 最机开始看聊新的工作机会,欢迎推荐,创业公司也可! 同时,趁着自由时间,抓紧把这系列教程给 ...

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

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

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

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

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

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

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

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

随机推荐

  1. 你必须知道的EntityFramework 6.x和EntityFramework Core变更追踪状态

    前言 只要有时间就会时不时去看最新EF Core的进展情况,同时也会去看下基础,把握好基础至关重要,本节我们对比看看如标题EF 6.x和EF Core的不同,希望对正在学习EF Core的同行能有所帮 ...

  2. underscore源码阅读

    1:函数式编程初探 2:if(obj.length === +obj.length)的判断 3:JS对象属性用中括号表示的优点在于可以用变量表示属性 4:callee,caller---JS高级程序设 ...

  3. Python3 requests与http.cookiejar的使用(cookie的保存与加载)

    在学习Python之余,发现Python2与Python3 有很大的变化,之前使用urllib和cookielib来保存cookie,发现很繁琐,于是改用requests.发现cookielib在3. ...

  4. 判断系统是64位还是32位的bat方法

    if "%PROCESSOR_ARCHITECTURE%"=="x86" goto x86 if "%PROCESSOR_ARCHITECTURE%& ...

  5. 猴子 JDFZ模拟赛

    猴子(弱) Description 话说NP做梦,梦见自己变成了一只猴子,并且有很多香蕉树,这些香蕉树都种在同一直线上,而NP则在这排香蕉树的第一棵树上.NP当然想吃尽量多的香蕉,但它又不想在地上走, ...

  6. Python 命令行(CLI)基础库

    在 CLI 下写 UI 应用 前阵子看了一下自己去年写的 Python-视频转字符动画,感觉好糗..所以几乎把整篇文章重写了一遍.并使用 curses 库实现字符动画的播放. 但是感觉,curses ...

  7. phpstorm 下载以及安装

    phpstorm都知道编写php代码比较高效,这里不多说. 关键是用它就要破解,毕竟不想花钱买,在网上找了好多方法,怎么尝试都不管用,后来我只是把版本替换为2017.1(最新版才是2017.3,版本差 ...

  8. C语言文件 "w+"与"wb+"区别

    这是我今天碰到的问题,现在已经解决, 希望我的整理能够帮助到你们! w+以纯文本方式读写,而wb+是以二进制方式进行读写. mode说明: w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会 ...

  9. H5移动端项目案例、web手机微商城实战开发

    自微信生态圈一步步强大后,关于移动端购物的趋势,逐渐成为大众关心的内容,目前市场上关于移动商城的制定就有大量版本,比如.微商城.移动商城.移动webAPP.微信商城各等各种定义层出不穷,这就对于移动端 ...

  10. 【已解决】通过Package或者Package+Activity启动应用

    有时很烦人,打开要启动的apk,通过adb命令(adb shell "dumpsys activity |grep Focuse") 获取到的应用包名 无法使用adb命令(adb ...