我似乎无法创建一个新的空白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);
如果我传递一个空文件,我收到此错误
无法打开文件,因为文件格式或文件扩展名无效。 验证文件是否已损坏且文件是否已损坏 扩展名与文件格式匹配。
那么..我怎样才能创建一个空的xls或xls文件?
答案 0 :(得分:2)
空Excel文件不是简单的空文件,因为它们还存储一些标题数据。编写Excel文件的一种现代方法是使用Open XML SDK 2.5
所示的var spreadsheetDocument = SpreadsheetDocument.Create(filepath, SpreadsheetDocumentType.Workbook);
:
filepath
通过这样做,您将获得一个允许您将数据写入Excel文件的引用。
为了获得SaveFileDialog
的值,您可以使用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
}
来指示要使用的路径,如here中所示:
var p = new System.Diagnostics.Process();
p.StartInfo.FileName = "open";
p.StartInfo.WorkingDirectory = installFolder;
p.StartInfo.Arguments = "/bin/bash --args \"open \"SomePath/Commands/myscript.command\"\"";
p.Start();
使用documentation等第三方库,您可以更轻松地在C#中进行Excel操作。
免责声明:以上提示仅适用于Excel 2007及以上格式。
答案 1 :(得分:2)
最简单的方式
var app = new Microsoft.Office.Interop.Excel.Application();
var wb = app.Workbooks.Add();
wb.SaveAs("File Path.xlsx");
wb.Close();
答案 2 :(得分:0)
我最终这样做了......
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);
}