Динамически установить столбец в формуле суммы, используя aspose.cells - PullRequest
0 голосов
/ 12 октября 2011

Я использую Aspose Excel Export. Я устанавливаю формула в .net.

Я хочу сумму двух значений в третьей ячейке. как

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

но я хочу установить столбец динамически. как в вышеприведенном столбце формулы 1, С2 фиксированы.

теперь я хочу выбрать имя столбца динамически, я хочу построить мою формулу, как показано ниже

excelbook.Worksheets [0] .Cells ["A2"]. R1C1Formula = "= SUM (R1C (значение ячейки B1), R1C (значение ячейки B2))";

поэтому, если я введу 1 в ячейку B1 и 3 в ячейку B2, то он должен сложить A1 и C1.i может ввести любое значение в ячейку B1 и B2, а Excel должен рассчитать сумму на основе введенных значений.

Подскажите, пожалуйста, как построить этот тип формуллы.

прямо в excel мы можем сделать так: -

= ДВССЫЛ (В1 & 1) + ДВССЫЛ (В2 & 1)

поэтому, пожалуйста, предложите мне использовать опосредованное в формуле r1c1 или предложить другой способ.

1 Ответ

0 голосов
/ 27 октября 2011

Если вы хотите добавить D1 и E1 в Excel, но вы хотите выбрать строку на основе значения конкретной ячейки;например, в этом случае вы могли бы использовать A1 и A2, чтобы поместить значение строки для выбора, тогда вы будете использовать формулу, подобную этой:

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

Вы можете назначить ту же формулу, используя Aspose.Cells для .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 для .NET .Если вы считаете, что это не помогает, или я не могу четко понять ваш вопрос, то, пожалуйста, поделитесь своими дальнейшими мыслями.

Раскрытие информации: я работаю евангелистом разработчика в Aspose.

...