Я пишу VSTO для Excel.У меня следующая проблема: Все это происходит в приложении Excel
Мне нужно программно добавить новый лист, который должен выглядеть так же, как шаблон.У меня есть шаблон, из которого я могу скопировать ячейки и форматирование в новую добавленную ячейку.
Как я могу это сделать?
Я пробовал следующий способ, чтобы открыть приложение Excelсделать его невидимым для пользователя и открыть необходимый шаблон в этом приложении.Я просматриваю строки использованного диапазона и пытаюсь скопировать строку за строкой.Тем не менее, я сталкиваюсь с проблемами при открытии шаблона.Как только он открывается, в другой раз он генерирует исключение COM (не знаю, что это).
var activeExcel = (Workbook)Globals.ThisAddIn.Application.ActiveWorkbook;
Sheet = (Worksheet) activeExcel.Worksheets.Add();
Sheet.Name = "Счёт-фактура";
var sourcePath = LocationHelperTool.GetTemplatePathByName("SystemInvoice.xlsx");
try
{
var excelApp = new Application() { Visible = false };
var workbook = excelApp.Workbooks.Open(sourcePath);
var workSheets = workbook.Worksheets;
const string sourceSheetName = "Счёт-фактура";
var sourceSheet = (Worksheet)workSheets.Item[sourceSheetName];
var sourceRange = sourceSheet.UsedRange;
for (var i = 1; i <= sourceRange.Rows.Count; i++)
{
var soRange = sourceRange.Rows[i];
var deRange = Sheet.Rows[i];
soRange.Copy(Type.Missing);
deRange.pasteSpecial(XlPasteType.xlPasteFormats);
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
Clipboard.Clear();
excelApp.Quit();
}
Я хочу открыть новый лист в экземпляре Excel, с которым взаимодействует пользователь, и этот лист должен быть точным клоном шаблона