开发者社区> 杰克.陈> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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();
            }
 

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

相关文章
就这么 来ADO.net类操作数据库
使用ADO.net操作数据库其实也是很简单,而且使用频率蛮高的一种方式。话不多说,上代码才更容易理解。 首先,先要引入数据库操作相关的命名空间,这样才能使用下面的代码 //数据库连接引用的命名空间 using System.
506 0
VC++中使用ADO方式操作ACCESS数据库
ADO(ActiveX Data Object)是Microsoft数据库应用程序开发的新接口,是建立在OLE DB之上的高层数据库访问技术,即使你对OLE DB,COM不了解也能轻松对付ADO,因为它非常简单易用,甚至比你以往所接触的ODBC API、DAO、RDO都要容易使用,并不失灵活性。
826 0
ADO.NET结合C#常见的数据库操作(二)
  现在接着上次的来讲SqlDataAdapter的相关应用。   SqlDataAdapter表示用于填充 DataSet 和更新 SQL Server 数据库的一组数据命令和一个数据库连接。 此类不能被继承。
589 0
【SSM面向CRUD编程专栏 1】Spring简介 xml配置文件 依赖注入 数据注入(一)
【SSM面向CRUD编程专栏 1】Spring简介 xml配置文件 依赖注入 数据注入(一)
0 0
+关注
杰克.陈
一个安静的程序猿~
文章
问答
文章排行榜
最热
最新
相关电子书
更多
大批量处理excel文件到ODPS中方案
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载