我正在构建一个MVC4应用程序,它以编程方式为我创建一个Excel文档。就在不久之前,我终于使用EPPlus(http://www.codeplex.com/EPPlus)来实现这一点。
这是我的代码到目前为止(还没什么花哨的):
// Create a new excel file
DirectoryInfo outputDir = new DirectoryInfo(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments));
FileInfo newFile = new FileInfo(outputDir.FullName + @"\export.xlsx");
if (newFile.Exists)
{
newFile.Delete(); // ensures we create a new workbook
newFile = new FileInfo(outputDir.FullName + @"\sample1.xlsx");
}
Package = new ExcelPackage(newFile);
// Create a new worksheet and add stuff
ExcelWorksheet worksheet = Package.Workbook.Worksheets.Add("Worksheet 1");
int i = 1;
foreach (Isala.Models.Metingen.Type type in types)
{
worksheet.Cells[1, i].Value = type.Naam;
i++;
}
// Save the file
export.Package.Save();
所以,这很有效。我得到一个很好的Excel文件。一个问题。对于我的项目的要求,我需要能够将此Excel文档导入SPSS。这是有效的,但奇怪的是:它只在打开文件并再次保存后才能工作。
我在ExcelPackage中遗漏了哪些重要内容?为什么我不能在再次保存之前导入我的文档?我肯定无法解释这一点。我希望你能。
(对于c#的SPSS导出库的任何提示也欢迎,我找不到一个好的)
[编辑]
顺便说一句:提供的示例在保存之前不起作用。也许那里有不支持的东西?
[EDIT2]
实际从webhost下载文件时,我仍然无法在保存文件之前打开该文件。它可能与Office的好功能有关,以防止文件来自互联网时编辑?
答案 0 :(得分:1)
1)您是否确定您创建的文件在尝试将其读入SPSS之前实际已关闭,以便SPSS可以实际访问它?
2)SPSS社区网站(www.ibm.com/developerworks/spssdevcentral)上提供的(免费)i / o模块可以在C#中使用一些包装代码。