C#默认情况下创build1张工作表的Excel工作簿

我试图用C#COM互操作创build一个Excel文件,但似乎它创build它默认3张,而不是空的或只有一个。 需要什么来创build它空的或只有一个:

Excel.Application xl = null; Excel._Workbook wb = null; // Create a new instance of Excel from scratch xl = new Excel.Application(); xl.Visible = true; wb = (Excel._Workbook)(xl.Workbooks.Add(Missing.Value)); wb.SaveAs(@"C:\a.xls", Excel.XlFileFormat.xlWorkbookNormal, null, null, false, false, Excel.XlSaveAsAccessMode.xlShared, false, false, null, null, null); 

看看MSDN对Workbooks.Add方法的解释。

  1. 尝试Workbooks.Add(XlWBATemplate.xlWBATWorksheet)
  2. 看看你是否可以将xl.SheetsInNewWorkbook属性设置为0或1。

我继续前进,validation了这一点。 这里是代码:

 using Microsoft.Office.Interop.Excel; using System.Reflection; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { Application xl = null; _Workbook wb = null; // Option 1 xl = new Application(); xl.Visible = true; wb = (_Workbook)(xl.Workbooks.Add(XlWBATemplate.xlWBATWorksheet)); // Option 2 xl = new Application(); xl.SheetsInNewWorkbook = 1; xl.Visible = true; wb = (_Workbook)(xl.Workbooks.Add(Missing.Value)); } } } 
 Excel.Application xl = null; Excel._Workbook wb = null; xl = new Excel.Application(); xl.SheetsInNewWorkbook = 1; xl.Visible = true; wb = (_Workbook)(xl.Workbooks.Add(Missing.Value));