Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Слияние ячеек в Excel

6.0K
22 января 2009 года
Balda
79 / / 12.05.2008
Пишу в MS VS .NET 2008.
Создание документа Excel реализую следующим методом:
Код:
private void ConvertToExcel()
{
    Excel.Application app = null;
    Excel.Workbooks wbs = null;
    Excel.Workbook wb = null;
    Excel.Worksheet ws = null;

    try
    {
        app = new Excel.ApplicationClass();
        app.Visible = true;

        wbs = (Excel.Workbooks)(app.GetType().InvokeMember("Workbooks",BindingFlags.GetProperty, null, app, null));
        wb = (Excel.Workbook)(wbs.GetType().InvokeMember("Add",BindingFlags.InvokeMethod, null, wbs, null));

        ws = (Excel.Worksheet)wb.ActiveSheet;
                Excel.Range range = null;
        ws.PageSetup.PaperSize = Excel.XlPaperSize.xlPaperA4;
           
                //заполняем таблицу
        for(int i=0; i<Count+1;i++)
            for(int j=0;j<this.dataSet2.Tables[0].Columns.Count;j++)
            {
                range = (Excel.Range)ws.Cells[i+1,j+1];
                if((i+1)==1)
                {
                    range.Value2 = this.dataSet2.Tables[0].Columns[j].ColumnName.ToString();   
                   
                }
                else
                {
                                  if ((j + 1) == 1)
                                    range.Value2 = i.ToString();
                                  else
                                     range.Value2 = this.dataGrid1[i - 1, j].ToString();
                                }
            }
            range.Borders.ColorIndex = 1;      
        }

                System.Runtime.InteropServices.Marshal.ReleaseComObject(range);
    }
    finally
    {
     if (ws != null)               
              System.Runtime.InteropServices.Marshal.ReleaseComObject(ws);
    if (wb != null)          
              System.Runtime.InteropServices.Marshal.ReleaseComObject(wb);
    if (app != null)
    {          
                       System.Runtime.InteropServices.Marshal.ReleaseComObject(app);
            GC.Collect();
            GC.WaitForPendingFinalizers();
            GC.Collect();  
           
    }
        }      
}


Надо объединить несколько ячеек.
Пробую так:
 
Код:
range.Merge((object)"B2:B3");


Не получается... Подскажите, пожалуйста где ошибка или как еще можно это сделать.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог