Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用C#表单创建空白excel文件?_C#_Excel - Fatal编程技术网

如何使用C#表单创建空白excel文件?

如何使用C#表单创建空白excel文件?,c#,excel,C#,Excel,我似乎无法创建新的空白excel文件,以便以后可以使用excel互操作在其中写入 System.IO.FileStream fs =(System.IO.FileStream)saveFileDialog1.OpenFile(); switch (saveFileDialog1.FilterIndex) { case 1: //write blank xlsx? break; case 2: //write blan

我似乎无法创建新的空白excel文件,以便以后可以使用excel互操作在其中写入

 System.IO.FileStream fs =(System.IO.FileStream)saveFileDialog1.OpenFile();
 switch (saveFileDialog1.FilterIndex)
 {
     case 1:
         //write blank xlsx?
         break;
     case 2:
         //write blank xls?
         break;
 }
 fs.Close();
 ExportDataSetToExcel(_destinationDataSet, saveFileDialog1.FileName);
如果我传递了一个空文件,我会得到这个错误

无法打开文件,因为文件格式或文件扩展名无效。 验证文件是否已损坏,以及文件是否已损坏 扩展名与文件的格式匹配


所以。。如何创建空xls或xls文件?

空Excel文件不是简单的空文件,因为它们还存储一些头数据。编写Excel文件的一种现代方法是使用
OpenXMLSDK2.5
,如图所示:

通过这样做,您将获得一个引用,该引用允许您将数据写入Excel文件

为了获得
filepath
的值,您可以使用
SaveFileDialog
来指示要使用的路径,如中所示:

通过使用第三方库,例如,您可以更轻松地在C#中操作Excel


免责声明:以上提示仅适用于Excel 2007及以上格式。

空Excel文件不是简单的空文件,因为它们还存储一些标题数据。编写Excel文件的一种现代方法是使用
OpenXMLSDK2.5
,如图所示:

通过这样做,您将获得一个引用,该引用允许您将数据写入Excel文件

为了获得
filepath
的值,您可以使用
SaveFileDialog
来指示要使用的路径,如中所示:

通过使用第三方库,例如,您可以更轻松地在C#中操作Excel

免责声明:以上提示仅适用于Excel 2007及以上格式。

最简单的方法

var app = new Microsoft.Office.Interop.Excel.Application();
var wb = app.Workbooks.Add();
wb.SaveAs("File Path.xlsx");
wb.Close();
最简单的方法

var app = new Microsoft.Office.Interop.Excel.Application();
var wb = app.Workbooks.Add();
wb.SaveAs("File Path.xlsx");
wb.Close();

我最后做了这个

if (saveFileDialog1.FileName != "")
    {
      var app = new Application();
      var wb = app.Workbooks.Add();
      switch (saveFileDialog1.FilterIndex)
         {
            case 1:
               wb.SaveAs(saveFileDialog1.FileName);
               break;    
            case 2:
               wb.SaveAs(saveFileDialog1.FileName, XlFileFormat.xlExcel8);
                        break;
         }
      wb.Close();
      app.Quit();

      ExportDataSetToExcel(_destinationDataSet, saveFileDialog1.FileName);
    }

我最后做了这个

if (saveFileDialog1.FileName != "")
    {
      var app = new Application();
      var wb = app.Workbooks.Add();
      switch (saveFileDialog1.FilterIndex)
         {
            case 1:
               wb.SaveAs(saveFileDialog1.FileName);
               break;    
            case 2:
               wb.SaveAs(saveFileDialog1.FileName, XlFileFormat.xlExcel8);
                        break;
         }
      wb.Close();
      app.Quit();

      ExportDataSetToExcel(_destinationDataSet, saveFileDialog1.FileName);
    }

如果您计划使用Excel Interop,为什么不创建工作簿并保存它?首先,检查以验证您是否正确使用了
SaveFileDialog
(是否打开了对话框,以便可以选择文件名?@rene虽然我真的不知道如何做,但我希望尽可能不使用Excel Interop。。。它非常慢,需要客户端拥有完整的office套件才能使用OpenXML sdk、ClosedXml或ePlus…我选择了Open Xml@rene。如果您计划使用Excel Interop,为什么不创建工作簿并保存它?首先,检查以验证您是否正确使用了
SaveFileDialog
(您是否打开了对话框,以便可以选择文件名?@rene尽管我真的不知道如何做,但我希望尽可能不使用Excel Interop…它非常慢,需要客户端拥有完整的office套件才能工作使用OpenXML sdk、ClosedXml或ePlus…我选择了open Xml@rene。