今天给大家带来一个结合了以下多种不同技术的应用实例,其中包括了:1,FileMaker Pro Advanced 17(以下简称FM)建立用户图形界面;
2,AppleScript(以下简称AS)使用第三方正则表达式技术(Regular Expression,以下简称RE),FM可以在脚本中调用AS;
有关正则表达式更多信息,请参考维基百科的说明:
https://zh.wikipedia.org/wiki/正则表达式
3,应用中,从Microsoft Excel for Mac 2016(以下简称Excel)数据中搜寻特定字符串格式,并输出至Excel另外一列之中,其读取数据及写入数据操作基于AS代码;
先来看一下此实例的FM界面:
简朴的界面更适合做示例,此处“序列号”指的是苹果设备的设备序列号;
“Email”指的是包含Email格式的字符串;
“手机号码”指的是以1打头后面跟着10位数字的数字串;
"计算财政年度日期"指的是用于某大公司的财政年度日期计算;
“其它模式”指的是可以自定义的一些搜索模式(用于未来拓展)。
示例文件使用方式有两点需要注意,由于文件基于macOS 10.14建立,仅限于Mac OS X Mojave系统下,运行在更早版本的macOS系统的朋友,有两个选择,一是更新系统Mojave,二是在Satimage网站中安装正则表达式插件,并在FM脚本中将以下内容加两条横线直接注释掉,
即将use application "SatimageOSAX"
变成--use application "SatimageOSAX"
已安装macOS 10.14 Mojave的朋友,还需要将此RE插件APP(即SatimageOSAX.app)拷贝至应用程序文件夹,文件之前是在著名的Late Night forum中一个讨论中发现的,今天查看网站竟然挂了,稍后的实例文件打包中会包含此APP方便大家学习和测试使用,其版权仍属于原作者所有。
注:macOS 10.14之前版本的RE插件及APP均非macOS AppleScript系统原生,属于第三方,请移步前往http://www.satimage.fr下载。
个人建议还是更新macOS 10.14 ,暗色模式与桌面文件堆叠stack还是非常好用的。
好了,上述准备工作都已完成,下面好戏开场了。
实例中的Excel有多列:
A列是一些模拟文本段内容,要求是从文本内容中找出特定模式的序列号,结果输出到B列;
C列是一些已知的日期,需要转换为财政年度日期格式,输入到D列;
E列是一些数字串,可能包含日期,数字,要从中找到手机号码格式,输出到F5开始的列中
G列是一些疑似Email的字符串,要从中找出并输入到I列中
毫无疑问,常规的Excel公式不是不能做,而是做起来十分困难,此时通过RE就很容易能够让计算机读懂你所要的意思了。
符合格式条件的直接搜索出来,不符合格式条件的没有搜索到结果,找到多个结果的会堆在一起输出在同一单元格,只要你需要,甚至可以在“查找列的末格”里填到几千甚至上万(意味着需要让AS搜索上千上万行再输出),作者之前就是使用此实例工具,搜索了超过千行的Excel内容,单纯使用Excel公式去查找就完全不是一个数量级别的复杂了。
可能有朋友会担心AS在Excel中的运行效率低,完全不必担心,虽然不如VBA的电光火石,由于现在Mac速度普遍很快,AS的速度也足够让我们惊喜,即使几千行内容也能够很快执行完毕获取到需要的结果。
以下是实例的应用视频:
文章最后给出此实例文件的下载地址(ZIP):
https://www.icloud.com/iclouddrive/0GAOcRenNv4HCNpOyKbjIsmXQ#FileMaker_AppleScript_%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F_%E5%AE%9E%E4%BE%8B.zip
领取专属 10元无门槛券
私享最新 技术干货