我们可以使用File.create创建Excel文件吗



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

这会创建文件,但当我们尝试打开它时;它在扩展中说了问题。

我尝试了另一种方法,使用excelApp。但这样,它会创建默认的Excel文件"~Documents\Sheet1.xlsx"。因此,在这种情况下,我无法指定位置和文件名。

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

问题类似于-在创建excel 时指定路径和文件名

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

我的代码:

    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();

现在,根据建议,我使用了SaveAs,而不是Save。

 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•确保文件/路径名包含的字符不超过218个

请告诉我我哪里做错了?

仅仅因为你保存了一个扩展名为.xlsx的"空"文件,并不意味着excel能够读取这样的文件。您可以使用OpenXML、ClosedXML(我的首选)、interop(恶心),我相信还有许多其他创建excel文档的方法

File.Create(...)与右键单击文件资源管理器,选择新的文本文档,并将其从"new text document.txt"重命名为"new text document.xlsx"没有太大区别。是的,扩展名是excel,但excel无法读取声明为excel文件的空文件。

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

  1. 关闭的XML
  2. OpenXML
  3. Interop

等等。默认情况下,这些库中的大多数"Save"方法或"SaveAs"方法都会在工作目录中创建文件,但您也可以指定一个目录来创建它们。

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

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

最新更新