使用 c# 将 .sav(spss) 文件转换为 .csv 文件

我可以使用 C# 将 spss(.sav) 文件转换为 .csv 文件吗?在这里,我想浏览 1 个 .sav 文件,我需要生成相同的 .csv 文件。任何人都可以提供任何链接或转换代码。

我有大约 100 个 spss 文件,所以我需要创建一个控制台应用程序,它将从父文件夹中获取每个文件并为每个 sav 文件生成相应的 csv 文件


收到一只叮咚
浏览 443回答 1
1回答

慕的地6264312

有几种可能:1)使用图书馆似乎有一个库可以读取 SPSS 文件。您可以安装 NuGet 包SpssLib并SpssReader从FileStreamusing(var fileStream = File.OpenRead("spss-file.sav")){    var spssReader = new SpssReader(fileStream);    // read variable names from spssReader.Variables and store to CSV    // read records from spssReader.Records and store to CSV}2) 手动编码解决方案如果您因任何原因无法使用该库,您可以手动编写一个解决方案。2.1)看看PSPP如果(且仅当)您计划(或至少可以)在 GPL 下发布您的代码,您可以查看 PSPP 源代码。无论如何,如果你不能 GPL 你的代码,不要。做。它。改为在洁净室实施,否则您将始终处于湿滑的地面上。2.2)看看规范有一个关于 SAV 文件格式的在线文档。这可能需要一些时间,但您最终可能会弄清楚如何将其转换为 CSV。3)使用PSPP如果您在运送 GPL 软件时没有问题(或者能够以某种方式按需下载文件),您可以使用 PSPP 控制台应用程序。PSPP 是 SPSS 的 GNU 替代品,它旨在(但尚未)提供 SPSS 所提供的功能。显然它带有一个方便的小 CLI 工具pspp-convert(请参阅文档)。您可以通过命令行调用它pspp-convert input.sav output.csv在Process类的帮助下,您可以启动另一个进程(即本例中的程序)。如果pspp-convert位于当前目录或PATH变量中的任何目录中,则将文件转换为 CSV 非常简单public ConvertSpssFile(string inputFile){    var outputFile = Path.ChangeExtension(inputFile, "csv");    Process.Start("pspp-convert", $"{inputFile} {outputFile}");}
打开App,查看更多内容
随时随地看视频慕课网APP