我们可以使用File.Create创buildExcel文件吗?

我想创build一个Excel文件,在C#中的特定位置和特定的名称。 我们可以使用File.Create("Filename.xlsx")吗?

这会创build文件,但是当我们尝试打开它时, 它说扩展问题。

我尝试了另一种方式,使用excelApp。 但这样,它会在“〜Documents \ Sheet1.xlsx”中创buildExcel文件的默认值。 所以我不能在这种情况下指定位置和文件名。

 Excel.Application excelApp = new Excel.Application(); Excel.Workbook excelWorkBook = excelApp.Workbooks.Add(1); 

问题类似于 – 创buildExcel时指定path和文件名

由于我无法发表评论,我不得不再次提问。 我已经尝试了链接中提供的答案。

我的代码:

  Excel.Application excelApp = new Excel.Application(); object missing = System.Reflection.Missing.Value; Excel.Workbook excelWorkBook = excelApp.Workbooks.Add(missing); //.... Fill excelWorkbook after creating worksheets ....// excelWorkBook.Save(); 

现在,根据build议,而不是保存,我已经使用了SaveAs。

  excelWorkBook.SaveAs(@"E:\\MyExcelBook\\abcd.xlsx", Excel.XlFileFormat.xlOpenXMLWorkbook, missing, missing, false, false, Excel.XlSaveAsAccessMode.xlNoChange, missing, missing, missing, missing, missing); 

它给了我错误:*文件无法访问。 请尝试以下方法之一:\ n \ n•确保指定的文件夹存在。 \ n•确保包含该文件的文件夹不是只读的。\ n•确保文件名不包含以下任何字符:<>? []:| 或\ n•确保文件/path名称不超过218个字符。

请告诉我我在哪里做错了?

仅仅因为你保存了一个扩展名为“.xlsx”的“空”文件并不意味着excel能够读取这样的文件。 你可以使用OpenXML,ClosedXML(我的首选),互操作(很棒),我敢肯定许多其他创buildExcel文档的方法

File.Create(...)与右键单击文件资源pipe理器,select新的文本文档,并将其从“New Text Document.txt”重命名为“New Text Document.xlsx”没有什么不同。 是的,扩展是优秀的,但Excel无法读取一个空文件, 说明这是一个Excel文件。

您可以使用任何可用的库来创buildexcel文件:

  1. ClosedXML
  2. OpenXML的
  3. 互操作

等等。这些库中的大多数“保存”方法或“另存为”方法将(可能)在默认情况下在工作目录中创build文件,但是您也可以指定一个目录来创build它们。

正如链接问题的答案所示:

 workbook.SaveAs(@"c:\documents\book1.xlsx", Excel.XlFileFormat.xlOpenXMLWorkbook, missing, missing, false, false, Excel.XlSaveAsAccessMode.xlNoChange, missing, missing, missing, missing, missing);