Большой! Рад, что ты сделал это. Но если ответ полезен, не забудьте принять его.

у объединить ячейки и сделать это несколько раз ... Причина, по которой я использую это объединение, потому что я хочу больше одной таблицы. и разное количество столбцов для каждой таблицы и разный размер столбца для другой ... Число и места слияний неизвестны

    using Microsoft.Office.Interop.Excel;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp111
{
    class Program
    {
        static void Main(string[] args)
        {
            string x = @"C:\Users\hed-b\source\repos\TESTUserFormFromExcel\ConsoleApp111\bin\Debug\TEST.xltm";

            Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application
            {
                DisplayAlerts = false,
                Visible = false,
                ScreenUpdating = false,
            };

            Workbook wb = xlApp.Workbooks.Open(x);
            Worksheet ws = (Worksheet)wb.Worksheets[1];
            if (ws == null)
            {
                Console.WriteLine("Worksheet could not be created. Check that your office installation and project references are correct.");
                return;
            }
            Stopwatch stopWatch = Stopwatch.StartNew();

            for (int i = 2; i <= 10; i++)
            {
                ws.get_Range("A"+i, "B"+i).Merge();

            }
            for (int i = 2; i <= 10; i++)
            {
                ws.get_Range("C" + i, "D" + i).Merge();
            }
            for (int i = 2; i <= 10; i++)
            {
                ws.get_Range("E" + i, "H" + i).Merge();
            }
            Console.WriteLine(stopWatch.ElapsedMilliseconds);

            stopWatch = Stopwatch.StartNew();
            ws.get_Range("A" + 2, "H" + 10).Value2 = new string[10, 5]{
                { "aaaaaaaaaaaaaaaaa","","aaaaaaaaaaaaaaaaa","","aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"},
                { "aaaaaaaaaaaaaaaaa","","aaaaaaaaaaaaaaaaa","","aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"},
                { "aaaaaaaaaaaaaaaaa","","aaaaaaaaaaaaaaaaa","","aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"},
                { "aaaaaaaaaaaaaaaaa","","aaaaaaaaaaaaaaaaa","","aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"},
                { "aaaaaaaaaaaaaaaaa","","aaaaaaaaaaaaaaaaa","","aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"},
                { "aaaaaaaaaaaaaaaaa","","aaaaaaaaaaaaaaaaa","","aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"},
                { "aaaaaaaaaaaaaaaaa","","aaaaaaaaaaaaaaaaa","","aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"},
                { "aaaaaaaaaaaaaaaaa","","aaaaaaaaaaaaaaaaa","","aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"},
                { "aaaaaaaaaaaaaaaaa","","aaaaaaaaaaaaaaaaa","","aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"},
                { "aaaaaaaaaaaaaaaaa","","aaaaaaaaaaaaaaaaa","","aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"},
            };

            ws.get_Range("A" + 11, "H" + 15).Value2 = new string[5, 8]{
                { "bbbbb","bbbbb","bbbbb","bbbbb","bbbbb","bbbbb","bbbbb","bbbbb"},
                { "bbbbb","bbbbb","bbbbb","bbbbb","bbbbb","bbbbb","bbbbb","bbbbb"},
                { "bbbbb","bbbbb","bbbbb","bbbbb","bbbbb","bbbbb","bbbbb","bbbbb"},
                { "bbbbb","bbbbb","bbbbb","bbbbb","bbbbb","bbbbb","bbbbb","bbbbb"},
                { "bbbbb","bbbbb","bbbbb","bbbbb","bbbbb","bbbbb","bbbbb","bbbbb"}
            };

            Console.WriteLine(stopWatch.ElapsedMilliseconds);

            xlApp.ScreenUpdating = true;
            xlApp.Visible = true;
        }
    }
}

Я просто ищу лучший способ сделать это быстрее

Все эти примеры программных слияний занимают около 1724 мс. в моей настоящей программе у меня намного больше слияний, и я занимаю более 5000 мс. Это объединяет то, что занимает большую часть времени ...

Ответы на вопрос(1)

Ваш ответ на вопрос