使用aspose.cells在sum公式中动态设置列

时间:2011-10-12 13:50:29

标签: aspose aspose-cells

我使用aspose excel导出。我在.net中设置formulla。

我想在第三个单元格中输入两个单元格的值。像

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

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

现在我想动态选择列名,我想在下面构建我的formulla

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

所以,如果我在B1单元格中输入1,在B2单元格中输入3,那么它应该加上A1和C1.i可以输入B1和B2单元格中的任何值,excel应该根据输入的值计算总和。

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

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

= INDIRECT(B1&安培; 1)+ INDIRECT(B2&安培; 1)

所以请建议我可以在r1c1 formulla中使用INDIRECT或建议其他方式。

1 个答案:

答案 0 :(得分:0)

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

= SUM(INDIRECT( “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);

请使用latest version of the Aspose.Cells for .NET在您的最后尝试。如果您认为它没有帮助或我无法清楚地理解您的问题,那么请分享您的进一步想法。

披露:我在Aspose担任开发人员传播者。