C # Создать книгу Excel с 1 листом по умолчанию - PullRequest
11 голосов
/ 09 ноября 2011

Я пытаюсь создать файл Excel с C # COM-взаимодействием, но, кажется, он создает его по умолчанию с 3 листами вместо пустого или только с одним. Что нужно для его создания Пусто или только с одним:

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);

Ответы [ 2 ]

23 голосов
/ 09 ноября 2011

Взгляните на объяснение 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));

        }
    }
}
2 голосов
/ 24 июня 2013
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));
...