[Может кто-то с большим количеством очков, пожалуйста, поместите этот текст в качестве комментария к ответу M_R_H.]
Решение, которое дал M_R_H, помогло мне, но внесло новую ошибку в проблему. Если вы используете данный метод CreateRow «как есть», если какая-либо из строк, для которых выполняется перемещение / повторная ссылка, имеет формулы, CalcChain.xml (в пакете) будет поврежден.
Я добавил следующий код в предлагаемое решение CreateRow. Это все еще не решает проблему, потому что, я думаю, этот код только исправляет скопированную в данный момент ссылку на строку:
if (cell.CellFormula != null) {
string cellFormula = cell.CellFormula.Text;
cell.CellFormula = new CellFormula(cellFormula.Replace(row.RowIndex.Value.ToString(), newRowIndex.ToString()));
}
Как правильно исправить / обновить CalcChain.xml?
PS: SheetData можно получить из вашего рабочего листа как:
worksheet.GetFirstChild<SheetData>();