Я создаю VSTO Excel Addin, который добавляет лист Excel и устанавливает значения в листе при нажатии кнопки ленты.
Это работает хорошо, когда в Active WorkBook не так много функций. Но когда дело доходит до WorkBook с большим количеством функций, оно становится очень медленным.
Я думаю, что проблема заключается в методе расчета WorkBook.
Создание другой WorkBook объект и объект WorkSheet, а затем скопируйте рабочий лист в исходную рабочую книгу.
Изменить метод расчета.
Я пробовал следующие решения, но это не так не работает.
private void A2_Click(object sender, RibbonControlEventArgs e)
{
var activeSheet = Globals.ThisAddIn.Application.ActiveSheet as Excel.Worksheet;
var thisworkbook = Globals.ThisAddIn.Application.ActiveWorkbook as Excel.Workbook;
string linesheetname = DateTime.Now.ToString("hh-mm-ss");
thisworkbook.Worksheets.Add(After: activeSheet);
activeSheet = thisworkbook.ActiveSheet;
activeSheet.Name = linesheetname;
string[] rowstr = {//about 1000 elements in here};
for (int i = 0; i < rowstr.Length; i++)
{
activeSheet.Cells[i + 1, 1] = rowstr[i];
}
for (int j = 1; j < 1001; j++)
{
activeSheet.Cells[1, j + 1] = j;
}
}
Эта программа занимает слишком много времени для завершения. Можно ли изменить метод расчета в рабочей книге? Есть ли другие способы добавить рабочий лист и очень быстро установить значения в ячейках? Как я могу решить это?