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();
            }
 
目录
相关文章
|
14天前
|
C# Windows
.NET开源免费的Windows快速文件搜索和应用程序启动器
今天大姚给大家分享一款.NET开源(MIT License)、免费、功能强大的Windows快速文件搜索和应用程序启动器:Flow Launcher。
|
14天前
|
数据可视化 网络协议 C#
C#/.NET/.NET Core优秀项目和框架2024年3月简报
公众号每月定期推广和分享的C#/.NET/.NET Core优秀项目和框架(每周至少会推荐两个优秀的项目和框架当然节假日除外),公众号推文中有项目和框架的介绍、功能特点、使用方式以及部分功能截图等(打不开或者打开GitHub很慢的同学可以优先查看公众号推文,文末一定会附带项目和框架源码地址)。注意:排名不分先后,都是十分优秀的开源项目和框架,每周定期更新分享(欢迎关注公众号:追逐时光者,第一时间获取每周精选分享资讯🔔)。
|
1月前
|
XML C# 数据格式
使用C#操作XML文件
使用C#操作XML文件
11 0
|
1月前
mvc.net分页查询案例——DLL数据访问层(HouseDLL.cs)
mvc.net分页查询案例——DLL数据访问层(HouseDLL.cs)
8 0
|
1月前
|
C#
C# 文件操作(全部) 追加、拷贝、删除、移动文件、创建目录
C# 文件操作(全部) 追加、拷贝、删除、移动文件、创建目录
21 0
|
4天前
|
XML C# 数据格式
C# 解析XML文件
C# 解析XML文件
11 1
|
8天前
|
开发框架 前端开发 JavaScript
采用C#.Net +JavaScript 开发的云LIS系统源码 二级医院应用案例有演示
技术架构:Asp.NET CORE 3.1 MVC + SQLserver + Redis等 开发语言:C# 6.0、JavaScript 前端框架:JQuery、EasyUI、Bootstrap 后端框架:MVC、SQLSugar等 数 据 库:SQLserver 2012
|
29天前
|
SQL C# 数据库
C# 读取多条数据记录导出到 Word 标签模板
C# 读取多条数据记录导出到 Word 标签模板
|
29天前
|
安全 数据处理 C#
C# Post数据或文件到指定的服务器进行接收
C# Post数据或文件到指定的服务器进行接收
|
29天前
|
C# 开发工具 数据安全/隐私保护
C#实现基于Word保护性模板文件的修改
C#实现基于Word保护性模板文件的修改