0

我正在使用 aspose excel 导出。我在.net 中设置公式。

我想要第三个单元格中两个单元格值的总和。像

excelbook.Worksheets[0].Cells["A2"].R1C1Formula = "=SUM(R1C1,R1C2)";

但我想动态设置列。就像上面的公式列 C1,C2 是固定的。

现在我想动态选择列名,我想像下面这样构建我的公式

excelbook.Worksheets[0].Cells["A2"].R1C1Formula = "=SUM(R1C(单元格 B1 的值),R1C(单元格 B2 的值))";

因此,如果我在 B1 单元格中输入 1,在 B2 单元格中输入 3,那么它应该对 A1 和 C1 求和。我可以在 B1 和 B2 单元格中输入任何值,Excel 应该根据输入的值计算总和。

请建议如何构建这种类型的公式。

直接在excel中我们可以这样做:-

=间接(B1&1)+间接(B2&1)

所以请建议我可以在 r1c1 公式中使用 INDIRECT 还是建议其他方式。

4

1 回答 1

0

如果要在 Excel 中添加 D1 和 E1,但要根据特定单元格的值选择行;例如,在这种情况下,您可以使用 A1 和 A2 来放置要选择的行的值,然后您将使用如下公式:

=SUM(间接("D"&$A$1),间接("E"&$A$2))

您也可以使用Aspose.Cells for .NET分配相同的公式。请看以下代码:

        //create XLS File
        //Instantiate a Workbook object that represents Excel file.
        //create a workbook
        Workbook CellsDocument = new Workbook();
        //Note when you create a new workbook, a default worksheet
        //"Sheet1" is added (by default) to the workbook.
        //Access the first worksheet "Sheet1" in the book.
        Worksheet sheet = CellsDocument.Worksheets[0];
        //Access the cells and put values
        Aspose.Cells.Cell cellA1 = sheet.Cells["A1"];
        cellA1.PutValue(1);

        Aspose.Cells.Cell cellA2 = sheet.Cells["A2"];
        cellA2.PutValue(1);

        Aspose.Cells.Cell cellD1 = sheet.Cells["D1"];
        cellD1.PutValue(4);

        Aspose.Cells.Cell cellE1 = sheet.Cells["E1"];
        cellE1.PutValue(5);

        Aspose.Cells.Cell cellE14 = sheet.Cells["E14"];
        cellE14.R1C1Formula = "=SUM(INDIRECT(\"D\"&$A$1),INDIRECT(\"E\"&$A$2))";


        //Save the Excel file.
        CellsDocument.Save("output.xls", Aspose.Cells.SaveFormat.Excel97To2003);

请在最后使用最新版本的 Aspose.Cells for .NET 进行尝试。如果您认为这没有帮助,或者我无法清楚地理解您的问题,请分享您的进一步想法。

披露:我在 Aspose 担任开发人员布道师。

于 2011-10-27T18:11:07.790 回答