web-dev-qa-db-ja.com

C#デフォルトで1枚のExcelワークブックを作成する

C#COM相互運用機能を使用してExcelファイルを作成しようとしていますが、デフォルトでは空または1枚ではなく3枚で作成されているようです。空または1つだけで作成するために必要なもの:

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

Workbooks.Addメソッド に関するMSDNの説明をご覧ください。

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

        }
    }
}
23
Matt
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));
2
RAYANED