创buildxlsx文件

我基本上是创build一个xlsx文件,但使用下面的文件时,我得到一个错误。

System.IO.FileFormatException:存档文件不能大小为0。

我尝试的方式。

string file = "c:\\DoneDone61.xlsx"; using(File.Create(file)) { } 

另外我无法手动打开excel文件,因为它说文件已损坏。

提前感谢您的答复。

一个你认为是“空白”的Excel文件不仅仅是一个没有数据的文件(这就是你正在创build的)。 你可以在Excel中手动创build一个文档,然后在记事本中打开它。 你会注意到它里面实际上有数据。 该数据用于存储关于名为“Sheet1”,“Sheet2”和“Sheet3”的三张空白页的信息。 此外,还有一些标题信息,以便任何查看该文件的程序知道它实际上是一个压缩文件(按照Excel文件格式)。 所以,正如你所看到的,即使是一个非常空的excel文件仍然包含SOME数据。

如果你想用C#创build一个空白的Excel文档,你有两个好的select:

  1. 使用一个库,可以让你实际上创buildExcel文档,正确地创build文件。 看看像Microsoft OpenXML SDK或ExcelPackage 。
  2. 创build一个空的Excel文档,将其存储在某个地方,当您想“创build”一个新的空Excel文档时,只需复制一份该文件。

这个 …

 using(File.Create(filePath)) { } 

…创build一个空文件。 阅读: 真的是空的(=> 0字节 )不是一个XLSX框架的空XLSX:ZIP容器,文件头,样式定义….

你期望什么?

编辑:如果你想创build一个空的XLSX文件(如“右键单击鼠标>新build>新的Microsoft Excel”),你必须使用这样的模板,…并将其写入到磁盘上。

为此,您必须将该模板文件与您的应用程序一起部署,然后执行File.Copy(source, dest) ,或将其作为资源集成并将资源内容写入磁盘。

你需要使用的是Interop.Excel命名空间。 这里是msdn的指南

请使用这个…它有点hacky,但不能得到一个更好的方式来使用InterOp做到这一点

  public static void CreateEmptyXLSXFile(string FilePath) { FileStream MyStream = new FileStream(FilePath, FileMode.CreateNew, FileAccess.ReadWrite); MyStream.Write(ExcelDocumentsInterOps.GetEmptyXSLXFileBytes(), 0, ExcelDocumentsInterOps.GetEmptyXSLXFileBytes().Length); MyStream.Flush(); MyStream.Close(); MyStream.Dispose(); MyStream = null; } /// <summary> /// Returns the bytes for an empty xslx file /// </summary> /// <returns></returns> public static byte[] GetEmptyXSLXFileBytes() { string TheSting = "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"; return Convert.FromBase64String(TheSting); } 

在.NET中处理电子表格相关的任务时,可以使用这个名为SpreadsheetLight的 开源库来编写一个excel文件(特别是如果你想在某个时候写内容的话)。

如果你喜欢通过Nuget把它添加为包,你可以说:

安装包SpreadsheetLight

之后,通过GenerateReport()例如 :

 // this one creates an empty workbook using (SLDocument sl = new SLDocument()) { // sl.SetCellValue("B3", "I love ASP.NET MVC"); sl.SaveAs("c:\\DoneDone61.xlsx"); } 

另请参阅他们的教程更有趣的东西。