我正在尝试使用 C# COM 互操作创建一个 Excel 文件,但它似乎默认使用 3 张而不是空的或只有一张创建它。 创建它需要什么 Empty 或只有一个:
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 Method的解释.
- 尝试
Workbooks.Add(XlWBATemplate.xlWBATWorksheet)
,或者 - 看看是否可以将
xl.SheetsInNewWorkbook
属性设置为 0 或 1。
我继续验证了这一点。这是代码:
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));
}
}
}
关于C#默认创建一张Excel工作簿,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8066189/