如何使用C#表单创build一个空白的Excel文件?
我似乎无法创build一个新的空白excel文件,所以我可以在后面用excel Interop编写它
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);
如果我传递一个空文件,我得到这个错误
无法打开文件,因为文件格式或文件扩展名无效。 validation该文件是否已损坏,文件扩展名是否与该文件的格式匹配。
所以..我怎样才能创build一个空的xls或xls文件?
最简单的方法
var app = new Microsoft.Office.Interop.Excel.Application(); var wb = app.Workbooks.Add(); wb.SaveAs("File Path.xlsx"); wb.Close();
清空Excel文件不是简单的空文件,因为它们还存储一些标题数据。 编写Excel文件的一种现代方式是使用Open XML SDK 2.5
如下所示:
var spreadsheetDocument = SpreadsheetDocument.Create(filepath, SpreadsheetDocumentType.Workbook);
通过这样做,您可以获得一个引用,允许您将数据写入Excel文件。
为了获得文件filepath
的值,可以使用SaveFileDialog
来指示要使用的path,如文档中所示 :
var saveFileDialog1 = new SaveFileDialog(); saveFileDialog1.Filter = "Excel files|*.xlsx"; saveFileDialog1.Title = "Save an Image File"; saveFileDialog1.ShowDialog(); if(saveFileDialog1.FileName != "") { // file name is available here }
您可以使用第三方库(如EPPlus)更轻松地使用C#进行Excel操作。
免责声明:以上提示仅适用于Excel 2007及以上版本。
我结束了这个…
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); }