C#默认创建一张Excel工作簿

标签 c# excel office-interop

我正在尝试使用 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的解释.

  1. 尝试Workbooks.Add(XlWBATemplate.xlWBATWorksheet),或者
  2. 看看是否可以将 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/

相关文章:

java - 使用spring hibernate将mysql表导出到excel

excel - 我可以在数据验证、允许、列表中添加公式吗?

c# - 用C#读取Excel文件——选择工作表

c# - 如何在工作簿中查找所有命名范围

c# - 我是否必须关闭 Word Interop 应用程序?

c# - 如何在我的 C# 代码中获得#Eval ("X") 的结果?

c# - .NET 中的随机和线程问题

c# - 如何仅在 .net Forms 2.0 CF 中绘制可视内容

c# - 使用c#删除书签的内容而不删除ms word中的书签

C# 枚举,双前枚举值