SmartWebExcel使用说明
SmartExcel创新地结合了功能强大且易用的Excel程序,不需要编程,通过设计Excel模板就可以设计出满足企业实际业务规则的各种管理信息系统;SmartExcel自2010年推出V1.0以来,其理念得到了广泛的认同,在广大企事业单位中得到了广泛且成功的应用,为企事业单位的信息化过程注入了强有力的全新方式;
经过10多年的发展,Excel的版本也从2003发展到2007、2010、2013、2016、2019等版本,从2010开始又分32位版和64位版,除了Excel,近年来,WPS也在国内得到了很大的普及,SmartExcel也与时俱进,对Excel各个版本和WPS做了支持,大部分情况下,SmartExcel都可以在这些环境中可以良好运作,但是有时候,客户的机器中同时安装了多个版本的Excel和WPS,使得环境过于复杂,从而导致SmartExcel有时候会出现一些兼容性的问题,给客户端的部署维护带来了比较大的工作量,特别对于一些大客户,他们的并发量往往几百到几千,这样的应用规模的确给客户端的维护带来很大的挑战;但是话也说回来,对于广大中小企,其办公环境范围内的软件环境还是比较好统一的,这种情况下选择SmartExcel传统版本完全是没问题的,也是很符合性价比的。
针对SmartExcel在大规模应用中因为环境复杂多样而带来的问题,智管科技汇集公司的骨干力量,经过1年多的集中封闭开发,终于成功推出了填报的时候可以完全脱离Excel和WPS的SmartWebExcel,SmartWebExcel的运行环境不要求安装Excel和WPS,只要客户端机器有现代的浏览器的即可,比如Windows系统中的谷歌浏览器、火狐浏览器、微软Edge浏览器、360浏览器、新版IE浏览器等,苹果系统中的Safri浏览器等都可以使用,SmartWebExcel在脱机Excel和WPS的同时,另外也是实现了跨平台应用,除了Windows、苹果等系统,甚至在一些国产系统中也可以正常使用,只要其中的浏览器足够先进即可。
SmartWebExcel的成功推出,为SmartExcel家族增添了非常强有力的重要成员,使得SmartExcel家族产品可以覆盖更广的应用范围,为客户提供了更多的选择,覆盖更广的客户群里。
SmartWebExcel不是一个完全独立的产品,而是一个具备继承现在劳动成果和模板开发知识的产品,她会自动兼容当前的Excel模板,开发环境也是Excel客户端,除非使用了VBA,否则现有的Excel模板是完全可以直接在SmartWebExcel中使用,实现了一次设计可以在多种方式下使用的效果。在SmartWebExcel中,用户不需要学习太多的新知识,而是继续沿用已经掌握的模板设计技能即可,大大减轻了学习的负担,轻松升级。
下面详细讲解一下关于SmartWebExcel的使用要点。
-
先在服务器端的设置中心对数据库进行升级,如下图所示:

否则登录时会提示,如下图所示:
-
SmartWebExcel对Excel模板的Excel版本有要求,要求是Excel2007以上专用格式,但是默认情况下,我们新建模板的时候如果没有选中“Excel2007以上专用”的话,平台会自动以Excel2003格式建立的,对于这种模板就需要转换成Excel2007以上格式了,否则打开模板时会提示如下信息:

平台提供了自动批量转换的功能,进到系统管理à模板管理,如下图所示:
选择“转换模板Excel格式为 à 2007以上专用格式”,然后 右击à全选à确定 即可,完成后就可以正常使用了。
-
对于一些太老的模板可能打开时还会提示:

这时候就是修改模板打开该模板,然后随便双击某个单元格,接着保存即可
登陆:打开浏览器,输入服务器IP地址+SSMISDIYWeb/MyWeb/#login ,即可打开登陆框,输入用户名,密码和数据库名称 即可登陆网页系统。
-
导航
SmartWebExcel设计了全新的导航,原有的导航模式因为时间问题,准备在下一个版本中再支持,不过原有的导航模式在适应不同屏幕分辨率方面不太完美,而新版导航模式则很好的解决了这个问题,她采用了类似操作系统的资源管理器的方式来实现,会根据屏幕大小自动改变布局,如下图所示:

左边是一个导航树,右边是一个当前导航结果和上面是一个导航路径,这3个区域可以相互配合同时操作;左边的导航树还可以进行搜索。
另外中的分类和模板的图标可以自定义,效果如下图所示:

设置方法的如下图所示:
另外,登录界面也可以自定义图片,如下图所示:
-
进入某个模板的数据中心
我们可以在左边的模板树或者右边的导航图标中,点击模板后进入数据中心,如下图所示:

-
填报
当打开数据中心后,我们就可以在数据中心完成数据的填报、修改、查看等操作。
-
快速填报
当我们的鼠标移到左边导航树或者右边导航图标的具体模板名字时,右上角处出现一个“新建”按钮,我们点击这个按钮就可以直接进入填报状态,而不需要先进入数据中心,然后再进行填报,如下图所示:
-
页面操作
SmartExcelWeb的主控采用了流行的多页面布局方式,每个主要功能都是在一个独立的页面中进行,页面之间通过简单点击就可以进行切换。直接点击页签右上角的叉叉就可以关闭页面,如下图所示:

通过右击页签还可以进行批量关闭操作和进行全屏显示,如下图所示:
同样,右击页签也可以还原显示。
-
数据中心操作
排序:通过直接点击表头就可以进行排序操作,如下图所示:

右击表头还可以进行筛选过滤,如下图所示,目前支持数值、文字、日期类型的项目进行筛选,如下如所示:

<文字>

<日期>

<数值>
对于文字类型,还可以用打勾选择的方式进行筛选,如下图所示:

要实现“客户名称”项目的下拉选择的筛选方式,需要对这个项目进行额外的设置,如下图所示:

注意,要使用下拉选择筛选的方式,建议用在选择内容不要太多的情况,否则会引起性能问题,同时使用也不方便。下拉筛选支持多个项目同时设置,她们之间是并且的关系。
点击工具栏上的“去除过滤”按钮就可以取消所有的筛选条件,回到未筛选的状态,如下图所示:

在“其它”的工具栏中,还有进行多选、锁定等操作。
-
流程工作台
点击主控右上角的“流程工作台”,可以把界面切换到工作流状态,默认是显示待处理任务列表,其它的通过左边的下拉选择来进行切换,在这里可以对流程任务进行查看、处理、查看进度、撤销等操作,同时也支持数据中心的排序、下来筛选等操作。
-
VBA —〉JS(JavaScript)
如果模板里使用了VBA,那么在SmartWebExcel就要转为JS代码才可以正常使用。直接在模板格式上加上的按钮只适用于Excel,对网页版模板不生效,要给网页模板加按钮需要进行额外的设置,如下图所示:

进入模板属性 --> 其它设置 --> Web按钮设置,在这里就可以加入你需要的JS命令按钮,点击增加,然后输入按钮的名字,所在的单元格位置(Sheet、行、列),颜色等,接着就是写JS代码,对于大部分自己加的JS按钮都是为了执行取数公式,这种情况下,可以不写JS代码,而是直接选择要执行的取数公式即可。
点击 编辑 按钮,出现JS代码编辑窗体,如下图所示:

这时候,平台自动为按钮产生了一句代码,这段代码的作用是定义了一个变量 obj,并获取接口,以后obj就是代表模板JS接口对象,所有的JS接口方法都是通过obj来进行调用,下面就是紧接着加入自己的代码即可。
比如要实现点击保存的功能,可以这样写,如下图所示:

只要在后面加上 obj.saveReport() 这一句即可,这句话就是表示通过obj调用其中的saveReport()接口方法;我再看看VBA代码怎么写:

如上图所示,JS写法与VBA类似,并且更加简单。
下面我们再看一个通过代码执行取数公式的例子,JS代码如下:

对应的VBA代码如下:

可见,JS不比VBA复杂,甚至有时候更简单,前面说过,如果仅仅是为了执行取数公式,其实可以不写JS代码,而是直接选择公式即可,如下图所示:
下面就是模板填报时候的样子:(演示按钮)

可以看见模板里出现了3个按钮,点击后就会执行。
目前已经提供了大部分常用的接口方法:
-
接口方法
-
printReport
saveReport
execFormula
newReportData
newReportData2
viewReportData
editReportData
getOperationName
getOperationNameEh
execDBProcedure
execDBFunction
setOperator
updateOperatorStatus
sendEMail
sendSMS
fillRepNextData
flowPostToNext
flowPostToPrior
stopFlowPost
这些接口方法是对应原来的VBA接口方法,参数和作用的意义都是一样的。
注意:JS的语法是区分大小的,这些接口方法都是小写开头。
这里支持标准的JS语法,有兴趣的用户平时可以学习一下一些基本的JS语法即可。
我们除了提供对应于VBA接口的JS接口方法外,我们还提供了一些额外的方法,让你可以方便地访问电子表格中的数据,比如:
msgbox(sMsg);
显示信息对话框
获取当前工作簿
获取工作簿后,进一步可以获取指定的Sheet,
根据sheet的名字获取sheet对象
根据sheet的索引号获取sheet对象
获取当前活动Sheet
getActiveCell();
获取当前活动单元格
打印指定的Sheet,参数是Sheet的索引号,索引号从0开始
获取某个Sheet以后可以进一步调用如下方法:
getValue(行号, 列号);
获取指定行号和列号的单元格的内容,注意:这里的行号和列号是实际行列号 减 1,比如要获取Sheet里的第10行第9列的单元格的内容的话,应该这样调用:
var obj=MWE.Obj;//获取接口对象,注意区分大小写
var sheet =obj.getActiveSheet();//通过接口对象获取当前活动Sheet
//或者 var sheet=obj.getWorkBook().getSheetFromName(“Sheet1”)
//通过工作簿获取名字为Sheet1的sheet对象
//或者 var sheet=obj.getWorkBook().getSheet(0)
//通过工作簿获取索引号为0的sheet对象
msgbox(sheet.getValue(9,8));//注意这里的行列分别减了1
以上代码的显示当前活动Sheet中的第10行第9列的单元格的内容。代码中的“//”表示后面的是注释而不是代码,这部分不执行。
setValue(行号, 列号,内容);
给Sheet的指定行号和列号的单元格写入指定内容,
这里行号和列号也是跟getValue函数的行号和列号的规定一样;