Для получения информации о работе с режимом объекта Excel, я бы рекомендовал сначала поискать решение VBA, а затем преобразовать его в C # (что тривиально). В Интернете доступно гораздо больше ресурсов VBA, и иногда вы даже можете помочь себе, записав макрос VBA.
В зависимости от того, где именно находятся ваши формулы, вы можете достичь желаемого, вставляя строки.
например. если у вас есть формула, скажем, A3, которая ссылается на диапазон G1: G8, и теперь вы хотите вставить двадцать строк данных вместо 8, вы можете переместить строку 8 вниз 20-8 = 12 раз, как показано ниже, перед записью ваших данных .
Dim rng As Range
Dim nIndex As Long
Set rng = Rows("8:8")
For nIndex = 1 To 20 - 8
rng.Insert Shift:=xlDown
Next nIndex
Когда вы сделаете это, формула в A3 будет автоматически изменена, чтобы включить вставленные строки.
Обратите внимание, что выполнение этого с помощью Interop не будет особенно эффективным для большого количества строк (обратное путешествие из приложения в процесс Excel для каждой вставленной строки). Одним из способов повышения производительности является одновременное добавление нескольких строк.