C# 使用NPOI保存xlsx文件后,当我打开xlsx文件时,它会显示文件已损坏

C# 使用NPOI保存xlsx文件后,当我打开xlsx文件时,它会显示文件已损坏,c#,npoi,C#,Npoi,我用这段代码来编写excel文件。编写excel后,当我手动打开excel文件时,它已损坏。 我正在使用NPOI二进制文件2.1.3.1 请说明如何避免excel损坏。尝试添加文件.Flush()beforefile.Close(): 尝试添加file.Flush()beforefile.Close(): 我不建议在重复循环中使用file.Close() 另外,我建议打开文件,进行循环,然后刷新并关闭文件 这种方法在时间上要好得多,因为重复打开和关闭文件会消耗大量时间,并且每次都需要访问驱动器。

我用这段代码来编写excel文件。编写excel后,当我手动打开excel文件时,它已损坏。 我正在使用NPOI二进制文件2.1.3.1
请说明如何避免excel损坏。

尝试添加
文件.Flush()
before
file.Close()


尝试添加
file.Flush()
before
file.Close()


我不建议在重复循环中使用file.Close()

另外,我建议打开文件,进行循环,然后刷新并关闭文件


这种方法在时间上要好得多,因为重复打开和关闭文件会消耗大量时间,并且每次都需要访问驱动器。

我不建议在重复循环中使用file.Close()

另外,我建议打开文件,进行循环,然后刷新并关闭文件


这种方法在时间上要好得多,因为重复打开和关闭文件会消耗大量时间,并且每次都需要访问驱动器。

它不起作用。当我使用flush时,如果我使用循环来写,它不允许我写excel文件excel@Kriez:您的代码不包含循环。请调整您的问题以显示您的真实代码。我已经用一个方法编写了上述代码,我将多次调用该方法。是他们在NPOI中保存xlsx的错误。因为xls文件与上面的代码配合得很好。它不工作。当我使用flush时,如果我使用循环来写,它不允许我写excel文件excel@Kriez:您的代码不包含循环。请调整您的问题以显示您的真实代码。我已经用一个方法编写了上述代码,我将多次调用该方法。是他们在NPOI中保存xlsx的错误。由于xls文件与上述代码配合良好。如果使用
文件()
,则不需要
文件。关闭()
,它将自动关闭
xlWorkseet
的类型是什么?是否有人使用NPOI使用Xlsx编写excel工作表。我需要开源dll来访问xlsx文件。他们是否有其他开源软件可用..来自Microsoft的OpenXml SDK。它是免费的,非常强大。但是NPOI也应该和xls一样使用xlsx。请参见使用()
,您不需要
文件。关闭()
,它将自动关闭您的
xlWorkseet
的类型是什么?是否有人使用NPOI使用Xlsx编写excel工作表。我需要开源dll来访问xlsx文件。他们是否有其他开源软件可用..来自Microsoft的OpenXml SDK。它是免费的,非常强大。但是NPOI也应该和xls一样使用xlsx。看见
xlWorksheet.GetRow(1).GetCell(2).SetCellValue("Hello");
using (FileStream file = new FileStream("Test.xlsx", FileMode.Create, FileAccess.Write))
{
   XLWorkBook.Write(file);
   file.Close();
}
xlWorksheet.GetRow(1).GetCell(2).SetCellValue("Hello");
using (FileStream file = new FileStream("Test.xlsx", FileMode.Create, FileAccess.Write))
{
   XLWorkBook.Write(file);
   file.Flush();
   file.Close();
}