Настройка общих формул

Установка общего формула с помощью Aspose.Cells для Python via .NET

Предположим, у вас есть лист с данными в формате, который выглядит как приведенный ниже образец листа.

Исходный файл с одним столбцом или данными
todo:image_alt_text

Вы хотите добавить функцию в ячейку B2, которая рассчитает налог с продаж для первой строки данных. Налог составляет 9%. Формула для расчета налога: "=A2*0.09". В этой статье объясняется, как применить эту формулу с помощью Aspose.Cells для Python via .NET.

Aspose.Cells для Python via .NET позволяет указывать формулу с помощью свойства Cell.formula. Есть два варианта добавления формул в остальные ячейки (B3, B4, B5 и т. д.) в столбце.

Либо делайте то, что вы делали для первой ячейки, фактически устанавливая формулу для каждой ячейки и обновляя соответствующую ссылку (A30.09, A40.09, A5*0.09 и так далее). Это требует обновления ссылок для каждой строки и также требует, чтобы Aspose.Cells для Python via .NET парсил каждую формулу отдельно, что может занимать много времени при больших таблицах и сложных формулах. Кроме того, это увеличивает объем кода, хотя циклы могут сократить их.

Другой подход - использовать общую формулу. С общей формулой формулы автоматически обновляются для ссылок на ячейки в каждой строке, чтобы налог был рассчитан правильно. Метод Cell.set_shared_formula более эффективен, чем первый метод.

Приведенный ниже пример демонстрирует, как его использовать.

from aspose.cells import SaveFormat, Workbook
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET
# The path to the documents directory.
dataDir = RunExamples.GetDataDir(".")
# Instantiate a Workbook from existing file
workbook = Workbook(dataDir + "source.xlsx")
# Get the cells collection in the first worksheet
cells = workbook.worksheets[0].cells
# Apply the shared formula in the range i.e.., B2:B14
cells.get("B2").set_shared_formula("=A2*0.09", 13, 1)
# Save the excel file
workbook.save(dataDir + "Output_out.xlsx", SaveFormat.XLSX)