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();
            }
 
目录
相关文章
|
12天前
|
物联网 数据处理 C#
C#实现上位机开发,串口通信,读写串口数据并处理16进制数据
C#实现上位机开发,串口通信,读写串口数据并处理16进制数据。在自动化、物联网以及工业控制行业中,上位机开发是一项重要的技能。本教程主要介绍使用C#进行上位机开发,重点在于串口通信和数据处理。
187 82
|
2月前
|
开发框架 搜索推荐 算法
一个包含了 50+ C#/.NET编程技巧实战练习教程
一个包含了 50+ C#/.NET编程技巧实战练习教程
121 18
|
2月前
|
Linux C# Windows
.NET使用MiniWord高效生成Word文件
.NET使用MiniWord高效生成Word文件
54 12
|
2月前
|
开发框架 .NET Java
C#集合数据去重的5种方式及其性能对比测试分析
C#集合数据去重的5种方式及其性能对比测试分析
38 11
|
2月前
|
缓存 算法 安全
精选10款C#/.NET开发必备类库(含使用教程),工作效率提升利器!
精选10款C#/.NET开发必备类库(含使用教程),工作效率提升利器!
85 12
|
2月前
|
C#
基于 C# 编写的 Visual Studio 文件编码显示与修改扩展插件
基于 C# 编写的 Visual Studio 文件编码显示与修改扩展插件
|
2月前
|
开发框架 .NET Java
C#集合数据去重的5种方式及其性能对比测试分析
C#集合数据去重的5种方式及其性能对比测试分析
55 10
|
2月前
|
开发框架 人工智能 .NET
C#/.NET/.NET Core拾遗补漏合集(24年12月更新)
C#/.NET/.NET Core拾遗补漏合集(24年12月更新)
|
2月前
|
开发框架 算法 .NET
C#/.NET/.NET Core技术前沿周刊 | 第 15 期(2024年11.25-11.30)
C#/.NET/.NET Core技术前沿周刊 | 第 15 期(2024年11.25-11.30)
|
2月前
|
开发框架 Cloud Native .NET
C#/.NET/.NET Core技术前沿周刊 | 第 16 期(2024年12.01-12.08)
C#/.NET/.NET Core技术前沿周刊 | 第 16 期(2024年12.01-12.08)

热门文章

最新文章