C#使用SPSS.NET操作SPSS数据文件-阿里云开发者社区

开发者社区> 杰克.陈> 正文

C#使用SPSS.NET操作SPSS数据文件

简介: 转自 http://www.lwolf.cn/blog/article/code/Csharp-spss-net.htm 这是最近做的项目涉及到的东西,要将一些SPSS数据(.sav)文件导进数据库中。
+关注继续查看

转自 http://www.lwolf.cn/blog/article/code/Csharp-spss-net.htm

这是最近做的项目涉及到的东西,要将一些SPSS数据(.sav)文件导进数据库中。本来是想在SPSS软件中将文件另存为excel文件,然后再在C# 里操作Excel就好了。后来又不打算这样做了,直接用C#操作SPSS数据文件。于是我就去网上找了下C#操作SPSS的类库,找到了SPSS.NET 这个类库,目前版本1.0,下载地址:http://spss.codeplex.com/,有源代码和直接的dll下载。
      SPSS.NET 其实是调用了spssio32.dll,这个dll在安装了SPSS软件后就可以在安装目录里找到。我也不打算装SPSS,就去搜索了下看有没有 spssio32.dll下载,下载了一个SPSS 14版本的,放到system32目录。结果运行示例程序时提示找不到spssio32.dll。后来才看到说是SPSS.NET只能使用spss12或 13版本的spssio32.dll。只好再去寻找,无果。。后来还是同事下载了SPSS 13并安装后才得到需要的spssio32.dll。
      现在还不是很深入了解怎么使用这个类库,只是看了下它的示例代码,是VB的,我转成C#的了
      

程序代码 程序代码
SpssDataDocument spssDoc = SpssDataDocument.Open("c:\\test.sav", SpssFileAccess.Read);   //读取SPSS数据文件

      还可以直接将文件转换成其他数据形式
      
程序代码 程序代码
SpssConvert.ToDataTable("c:\\test.sav");

      读取SPSS的变量视图中的信息,变量名和标签等
            
程序代码 程序代码
SpssDataDocument doc = SpssDataDocument.Open(txtFilePath.Text, SpssFileAccess.Read);
            foreach (SpssVariable var in doc.Variables)
            {
                Console.WriteLine("{0}  {1}", var.Name, var.Label);
                if (var is SpssNumericVariable)
                {
                    SpssNumericVariable varNum = (SpssNumericVariable)var;
                    foreach (DictionaryEntry label in varNum.ValueLabels)
                    {
                        Console.WriteLine("  " + label.Key.ToString() + "  " + label.Value.ToString());
                    }
                }
            }

       读取数据视图中的数据
            
程序代码 程序代码
SpssDataDocument doc = SpssDataDocument.Open(txtFilePath.Text, SpssFileAccess.Read);
            foreach (SpssVariable var in doc.Variables)
            {
                Console.Write(var.Name + " ");
            }
            Console.WriteLine("\r\n");

            foreach (SpssCase row in doc.Cases)
            {
                foreach (SpssVariable var in doc.Variables)
                {
                    if ((row[var.Name] == null))
                    {
                        Console.Write("<SYSMISS>");
                    }
                    else
                    {
                        Console.Write(row[var.Name]);
                    }
                    Console.Write(" ");
                }
                Console.WriteLine("\r\n");
            }

       建立一个新的SPSS数据文件,使用SpssDataDocument.Create()方法
            
程序代码 程序代码
using (SpssDataDocument doc = SpssDataDocument.Create("c:\\example.sav"))
            {
                //定义字典
                SpssStringVariable v1 = new SpssStringVariable();
                v1.Name = "v1";
                v1.Label = "What is your name?";
                doc.Variables.Add(v1);
                SpssNumericVariable v2 = new SpssNumericVariable();
                v3.Name = "v2";
                v3.Label = "What is your gender?";
                v3.ValueLabels.Add(1, "Male");
                v3.ValueLabels.Add(2, "Female");
                doc.Variables.Add(v2);
                doc.CommitDictionary();
                //写入数据
                SpssCase case1 = doc.Cases.New();
                case1["v1"] = "Andrew";
                case1["v2"] = 1;
                case1.Commit();
                SpssCase case2 = doc.Cases.New();
                case2["v1"] = "Cindy";
                case2["v2"] = 2;
                case2.Commit();
            }
 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
.NET常用操作小知识
一、.NET截取指定长度汉字超出部分以“.....”表示 /// /// 将指定字符串按指定长度进行剪切, /// /// 需要截断的字符串 /// 字符串的最大长度 /// 超过长度的后缀 /// 如果超过长度,返回截断后的新字符串加上后缀,否则,...
706 0
7.数据本地化CCString,CCArray,CCDictionary,tinyxml2,写入UserDefault.xml文件,操作xml,解析xml
 数据本地化 A CCUserDefault 系统会在默认路径cocos2d-x-2.2.3\projects\Hello\proj.win32\Debug.win32下生成一个名为UserDefault.xml.所有的key皆为char *型,value类型为bool intfloat double std::string. 读操作
1251 0
使用 Math 类操作数据
使用 Math 类操作数据 Math 类位于 java.lang 包中,包含用于执行基本数学运算的方法, Math 类的所有方法都是静态方法,所以使用该类中的方法时,可以直接使用类名.
573 0
使用iOS原生sqlite3框架对sqlite数据库进行操作(二)
使用iOS原生sqlite3框架对sqlite数据库进行操作
44 0
使用iOS原生sqlite3框架对sqlite数据库进行操作(一)
使用iOS原生sqlite3框架对sqlite数据库进行操作
36 0
SAS学习笔记之《SAS编程与数据挖掘商业案例》(3)变量操作、观测值操作、SAS数据集管理
SAS学习笔记之《SAS编程与数据挖掘商业案例》(3)变量操作、观测值操作、SAS数据集管理 1. SAS变量操作的常用语句 ASSIGNMENT 创建或修改变量 SUM 累加变量或表达式 KEEP 规定在数据集中保留的变量 DROP 规定在数据集中删除的变量 ARRAY 定义一个数组 RENAME
1431 0
使用iOS原生sqlite3框架对sqlite数据库进行操作(三)
使用iOS原生sqlite3框架对sqlite数据库进行操作
25 0
+关注
杰克.陈
一个安静的程序猿~
10427
文章
2
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载