C# ClosedXML 库在不影响现有公式的情况下插入额外的列

C# ClosedXML library insert extra column without affecting existing formulas

我正在处理一个现有项目,其中每一列都是硬编码定义的,从 A 到 DZ 并且很多 columns/rows 都定义了一个公式(也在代码中设置硬编码)

现在我需要在第 3 个索引上添加一个额外的列,请告诉我它可以在没有 find/replace 这 2000 行 class.[=10= 中所有现有定义的公式的情况下插入]

您可能正在寻找可用于列和范围的 InsertColumnsAfterInsertColumnsBefore 函数。

这是一个小示例,其中包含一个新创建的 Excel 文件,阐明了用法:

private void ExcelExample()
{
    string xlsx = Path.GetTempFileName() + ".xlsx";
    XLWorkbook wb = new XLWorkbook();
    IXLWorksheet ws = wb.AddWorksheet("Table1");
    ws.Cell(1, 1).SetValue("Col1");
    ws.Cell(1, 2).SetValue("Col2");
    ws.Cell(1, 3).SetValue("Col3");
    ws.Cell(2, 1).SetFormulaA1("=A1");
    ws.Cell(2, 2).SetFormulaA1("=B1");
    ws.Cell(2, 3).SetFormulaA1("=C1");
    ws.Column(1).InsertColumnsAfter(1);
    ws.Cell(1, 2).SetValue("Col1.5");
    ws.Range("D:D").InsertColumnsBefore(1);
    ws.Cell(1, 4).SetValue("Col2.5");
    wb.SaveAs(xlsx);
    Process.Start(xlsx);
}