http://www.won-soft.com/macro/solution/excel-data-replace.htm

介绍:

在我们的日常工作中, 可能经常需要使用同各种数据表格打交道.比如财务工作中各种数据表格, 生产管理上的各种生产数据统计表,以前人力资源部的工资表等等。在处理这些数据的过程中, 我们可能经常会遇到要做一张表,但这张表的数据需要从另一张表上取,每个数据间有一些相关联的规则,举例来说: 年底一般都会做工资统计表,列出所有员工的全年的各种奖金总计、全年应发工资、实发工资、扣款等等项目。这些数据 可能分散在几张表中, 每张表上都有员工的姓名和银行帐号,我们需要根据员工姓名或是银行帐号从各表上取数字, 然后填在统计表。一般我们都是通过在表间查找,然后使用复制/粘贴的方法来完成这类数据替换,如果数据一多,这个 工作的强度是可想而知的。这里我们来看看自动操作魔法师能不能帮我们减化甚至代替我们完成这种数据替换工作。

分析:

我们先来梳理一下表格间数据替换的基本步骤,这里我们假设有两张表,A和B,A表里面有人员姓名、银行帐号、全年工资合计、奖金合计,其中奖金合计这一栏需要从B表中来,B表里面有人员姓名和奖金合计:

  1. 首先定义需要使用的变量;
  2. 首先我们打开两张表;
  3. 从A表里面取一个人员姓名.
    注意:如果没有人员姓名了,直接退出,否则没完了。
  4. 从B表里面根据姓名查奖金合计.
  5. 如果找到了,则将奖金数粘贴到A表中的奖金合计一栏内.
  6. 将行号加1,并且跳到第3步继续下一行数据的替换。

自动操作魔法师增强版支持Microsoft Excel文档处理命令,可以对某个单元格进行读或者写,还支持查找单元格数据。 同时,自动魔法师支持循环和跳转指令,可以看出,我们可以使用这些命令来模拟表格间的数据替换操作过程.现在我们就试着根据上面的步骤建立一个脚本来完成此项工作.

建立步骤:

第一步: 建立一个空白魔法

首先,打开"魔法管理器",点击菜单“魔法”,选择“建立一个空白魔法”,如下图:

点击菜单项后,魔法"属性"对话框将会弹出来让我们指定新魔法的一些属性,我们给魔法取一个名称"表格间数据替换",然后点击"确定"直接建立魔法。如下图:

这时自动操作魔法师会弹出一个对话框询问是否编辑这个魔法,我们选择“是”进入编辑器。

魔法编辑器打开后,我们根据前面列出的步骤来一步步插入需要的命令.

第二步: 设置变量

首先,需要定义多个变量用于指定读取的行数,保存读取的内容等等。点击编辑器的菜单"变量",再选择“增加一个变量”,依次加入变量“v_行号”, “v_姓名”,“v_找到的行号”,“v_结束”,“v_奖金”.

变量加入后,我们还需要对"v_行号"设置初始值,点击菜单"插入",选择"变量类",选择"设置变量值", 将变量值设为2(我们的数据在A表中是从第二行开始的)。

第三步: 打开两张表

点击编辑器的菜单"插入", 选择“文档类”,最后选择“打开文档”,如下图:

在命令选项窗口内,输入A表的路径,如:a.xls,文档标识名处我们输入:"A表",文档标识名是用来表示 文档的,在后续对A表的操作中,我们都需要指定这个名称表示是处理A表的。设置完成后,点击确定,如下图:

现在我们还需要打开B表.再次点击"插入"菜单加入"打开文档"命令,且使用使用"B表"做为文档标识名.

第四步: 从A表里面取一个人员姓名

首先,我们在这里插入一个标号(标号是结合跳转命令用的,用来指定需要跳到什么地方),这个标号将在最后跳转时使用。

点击编辑器的菜单"插入",选择“流程类”,再选择"标号",并设一个名称,如下图:

点击编辑器的菜单"插入", 选择“文档类”,选择“读Excel文档单元格”,设置好相关参数,如下图:

因为需要替换的数据不只一个,所以这里单元格行使用变量"v_行号"来代替,而不用具体的数字.读出的内容我们放入变量"v_姓名"中。

第五步: 判断是否已经读完所有数据

点击编辑器的菜单"插入",选择“流程类”,再选择"条件判断(根据变量值)",判断变量"v_结束"是否为1。如下图:

并且在条件判断里面加入"结束"(点击菜单"插入",选择"播放控制类"里面的“结束”。如下图:

第六步: B表里面根据姓名查奖金合计

点击编辑器的菜单"插入", 选择“文档类”,选择“查找EXCEL文档单元格”,设置好相关参数,如下图:

这里我们将使用"v_姓名"来代替要查找的内容,并将找到的行号返回到变量"v_找到的行号"中。

第七步: 读出奖金数据

点击编辑器的菜单"插入", 选择“文档类”,选择“读取EXCEL文档单元格”,将B表中的C列读出来放入"v_奖金"中。

第八步: 将B表里面的奖金合计数放到A表中

点击编辑器的菜单"插入",选择“文档类”,选择“写EXCEL文档单元格”,读取刚才查到的人员奖金数,如下图:

第九步: 跳转到开始

命令执行到这里,我们只完成了一行数据的替换,所以我们还需要做一些额外的工作继续完成所有的数据替换。点击编辑器的菜单"插入",选择“变量类”, 选择“设置变量值”,将变量"v_行号"+1,这样以便替换下一行数据。如下图:

然后,我们再加一条跳转命令,跳到"读人员姓名"处。如下图:

结束:

到此,我们的数据替换魔法已经建立好了。

Excel文档间的数据替换 ---电脑版APP 自动操作魔法师的更多相关文章

  1. POI 读取Excel文档中的数据——兼容Excel2003和Excel2007

    Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能. HSSF - 提供读写Microsoft Exce ...

  2. 按照excel文档中的内容在当前cad图纸中自动排布实体

    本例实现的主要功能是读取excel文档中的内容,其次是将按照读取的信息在当前cad图纸中添加相应的实体.下面先介绍实现代码: CString excelPath; //外部excel文档的地址 Upd ...

  3. NPOI 2.1.1 系列(2) 使用NPOI读取List或者datatable数据生成 Excel文档 ;Npoi生成 xlsx 2007以上文档

    结合上一篇文章  NPOI 2.1.1 系列(1) 使用NPOI读取 Excel文档 ;NpoiExcelHelper 导入导出 2003格式 2007格式的 Excel; Npoi 导出 xlsx ...

  4. sqlserver将数据库的数据导成excel文档方法

    sqlserver将数据库的数据导成excel文档方法 最近公司需要下载uniport的数据跟之前的数据进行对比,所以避免不了需要将数据库的数据导出来,把SQLServer表中的数据导出为Excel文 ...

  5. 实时更新Excel文档外部数据源的数据

    实时更新Excel文档外部数据源的数据 单元格区域.Excel 表.数据透视表或数据透视图均可以连接到外部数据源(数据源:用于连接数据库的一组存储的"源"信息.数据源包含数据库服务 ...

  6. DataSet数据导出为Excel文档(每个DataTable为一个Sheet)

    Web项目中,很多时候须要实现将查询的数据集导出为Excel文档的功能,很多时候不希望在工程中添加对Office组件相关的DLL的引用,甚至有时候受到Office不同版本的影响,导致在不同的服务器上部 ...

  7. Oracle PLSQL读取(解析)Excel文档

    http://www.itpub.net/thread-1921612-1-1.html !!!https://code.google.com/p/plsql-utils/ Introduction介 ...

  8. 利用Aspose.Word控件和Aspose.Cell控件,实现Word文档和Excel文档的模板化导出

    我们知道,一般都导出的Word文档或者Excel文档,基本上分为两类,一类是动态生成全部文档的内容方式,一种是基于固定模板化的内容输出,后者在很多场合用的比较多,这也是企业报表规范化的一个体现. 我的 ...

  9. Asp.net的对Excel文档的导入导出操作

    刚刚初入职场,在休闲的时间写下了项目中用到的对Excel文档操作的方法以及总结,多的不说,直接上代码 public static void CreateExcel(DataSet ds, string ...

随机推荐

  1. Java基础-多线程-①线程的创建和启动

    简单阐释进程和线程 对于进程最直观的感受应该就是“windows任务管理器”中的进程管理: (计算机原理课上的记忆已经快要模糊了,简单理解一下):一个进程就是一个“执行中的程序”,是程序在计算机上的一 ...

  2. How determine the RC time constant in PWM DAC low-pass filter?

    how determine the RC time constant in PWM digital to analog low-pass filter? I 'm looking for the be ...

  3. su 与 su - 比较

    原文地址:http://blog.chinaunix.net/uid-25557346-id-2889329.html   今天有一同事说在切换用户的时候,找不到该用户下用户命令,后来仔细检查了一下过 ...

  4. CustomJsonDateDeserializer @JsonDeserialize(using = CustomJsonDateDeserializer.class) Jackson 反序列化Date时遇到的问题 java中json日期属性反序列化

    public class CustomJsonDateDeserializer extends JsonDeserializer<Date> { @Override public Date ...

  5. Android GUI之Activity、Window、View

    相信大家在接触Android之初就已经知道了Activity中的setContentView方法的作用了,很明显此方法是用于为Activity填充相应的布局的.那么,Activity是如何将填充的布局 ...

  6. 程序日志--ios“考反应扑克游戏”程序

    交代一下我做程序的工具:mac os x虚拟机10.9.3         Xcode6         百度^-^         參考书iPhone30天精通 总结与经验,还有遇到的问题,都在程序 ...

  7. Quality of Service 0, 1 & 2

    来自:http://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels Quality of Servi ...

  8. ORA-16447 Redo apply was not active at the target standby database

    Cause ALTER SYSTEM FLUSH REDO TO STANDBY failed because redo apply is not active at the target datab ...

  9. python排序出现的问题以及解决方案

    对某个文件夹中的文件重命名的时候,发现有些文件丢失,代码如下: #coding=gbk # Findthe every dir, if 01.rm exist in it, then rename i ...

  10. C#通过DSOFile读取与修改文件的属性

    搜了一圈用C#读取与修改文件属性的文章,结果几乎找不到- -: 偶然间看到一个DSOFile工具,然后找到了对该工具进行详细讲解的一篇文章:<DSOfile,一个修改windows系统文件摘要的 ...