C# ClosedXML 库在不影响现有公式的情况下插入额外的列
C# ClosedXML library insert extra column without affecting existing formulas
我正在处理一个现有项目,其中每一列都是硬编码定义的,从 A 到 DZ 并且很多 columns/rows 都定义了一个公式(也在代码中设置硬编码)
现在我需要在第 3 个索引上添加一个额外的列,请告诉我它可以在没有 find/replace 这 2000 行 class.[=10= 中所有现有定义的公式的情况下插入]
您可能正在寻找可用于列和范围的 InsertColumnsAfter
和 InsertColumnsBefore
函数。
这是一个小示例,其中包含一个新创建的 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);
}
我正在处理一个现有项目,其中每一列都是硬编码定义的,从 A 到 DZ 并且很多 columns/rows 都定义了一个公式(也在代码中设置硬编码)
现在我需要在第 3 个索引上添加一个额外的列,请告诉我它可以在没有 find/replace 这 2000 行 class.[=10= 中所有现有定义的公式的情况下插入]
您可能正在寻找可用于列和范围的 InsertColumnsAfter
和 InsertColumnsBefore
函数。
这是一个小示例,其中包含一个新创建的 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);
}