最近在搞论文,SPSS的二次开发5年前搞过一次,那时候还是菜鸟。
现在也是菜鸟,但是搞起来还算是顺手。搞SPSS的二次开发现在很方便了,5年前,就只有苏金明老师等编的那本书了,那时候我还只能用Saxbasic编程。其实还是要看spss的官方开发文档,内容详细,全英文的慢慢看也不难。
调用SPSS的方式现在发现,简直太多了。
我用ASP.NET+C#+Castle(Nhibernate)+SQL Server2005在VS2008下采用.NET MVC 框架开发一套BS系统,调用SPSS17做分析。
调用SPSS有以下方式:
1.自己写个类来装载SPSS的DLL,调用SPSS XD API。这种比较麻烦,官方文档有例子。但是要自己调通才行,搞来搞去的,那个东东很琐碎。注意要设置引用。
2.使用SPSS.BackendAPI 和SPSS.BackendAPI.Controller。这种比较方便啦,帮你封装好了SPSS XD API。拿API手册就可以玩转。缺点,这种方式输出比较麻烦,不好看。而且图片输出很麻烦。
3.使用SPSS的COM组件。这种就爽了,跟VBA编程一样。注意应用相关的SPSS的库进项目。调用用SPSS的方法太多了。第一种,直接process启动SPSS的exe;第二种,用System.Activator.CreateInstance创建实例,其实很麻烦;第三种,直接new Application16Class,ApplicationClass;SPSS的进程很麻烦,不好KILL。所以调试的时候,经常要等一会儿。
采用第三种方式的话,灵活度就相当的大了,对SPSS的控制会很全面,需要研究好SPSS OLE。搞到这里,就又回到5年前写程序的那些东东了。。。
调用SPSS最头痛的莫过于要管理好打开的DATASET,有些还是隐藏的,所以退出时要kill掉全部,但是DATA FILE总是给你留一个,这个时候就要用invoke去点菜单,把整个SPSS的进程关掉,最后回收SPSS进程(否则再次调用SPSS会出现反射异常),那个Quit方法完全是摆设。。。合理的使用Syntax来操纵SPSS会使整个应用变得效率更高。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/14264218/viewspace-615987/ ,如需转载,请注明出处,否则将追究法律责任。