1 回答
TA贡献1817条经验 获得超6个赞
有几种可能:
1)使用图书馆
似乎有一个库可以读取 SPSS 文件。
您可以安装 NuGet 包SpssLib并SpssReader从FileStream
using(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}");
}
- 1 回答
- 0 关注
- 441 浏览
添加回答
举报