Як видалити формулу в Excel без видалення вмісту в C#

У цьому посібнику ми дізнаємося, як видалити формулу Excel без видалення вмісту в C#. Іноді нам доводиться ділитися файлами Excel з іншими, що містять обчислені значення, але ми не хочемо розкривати свої формули. Для цього потрібно видалити формулу Excel, але зберегти вміст у C#, як описано в наступних кроках.

Кроки для видалення формули Excel, але збереження значення за допомогою C#

  1. Додайте Aspose.Cells for .NET до проекту за допомогою менеджера пакетів NuGet
  2. Додайте посилання на простір імен System і Aspose.Cells
  3. Створення екземпляра ліцензії, щоб уникнути водяного знака пробної версії
  4. Завантажте workbook, що містить дані та формулу
  5. Отримайте посилання на клітинку, формулу якої потрібно видалити
  6. Збережіть значення в тимчасовій змінній і видаліть формулу
  7. Скинути значення клітинки за допомогою тимчасової змінної
  8. Збережіть робочу книгу

Наведені вище дії описують процес видалення формули Excel, але збереження значення в C#. Ми отримуємо доступ до потрібної клітинки з аркуша та зберігаємо її значення у тимчасовій змінній. Потім ми видаляємо формулу з комірки і знову заповнюємо її значенням із тимчасової змінної. Нарешті ми зберігаємо робочу книгу.

Код для видалення формули Excel і збереження значення в C#

using System;
using Aspose.Cells;
namespace RemoveExcelFormulaWithoutRemovingContentsInCSharp
{
class Program
{
static void Main(string[] args)
{
// Instantiate license to avoid trial version watermark
License license = new License();
license.SetLicense("Aspose.Cells.lic");
// Load the workbook containing data and formula
Workbook workbookWithFormula = new Workbook("WorkbookWithFormula.xlsx");
// Get the reference of the cell whose formula is to be removed
Cell cellWithFormula = workbookWithFormula.Worksheets[0].Cells["C1"];
// Store value in a temporary variable
Object tempData = cellWithFormula.Value;
// Remove formula
cellWithFormula.Formula = "";
// Reset cell value using the temporary variable
cellWithFormula.Value = tempData;
// Save the workbook
workbookWithFormula.Save("WorkbookWithoutFormula.xlsx");
}
}
}

Наведений вище приклад коду видаляє формулу з однієї клітинки. Однак, якщо ви хочете видалити формули з усієї книги, ви можете скористатися WorkSheet.Cells.RemoveFormulas(), яка видаляє всі формули з усієї книги та замінює кожне значення клітинки відповідним результатом формули. Наведений нижче код можна використовувати для видалення формул Excel, але збереження вмісту в C# з усієї книги.

Код для видалення формул Excel, але збереження значення за допомогою C#

using System;
using Aspose.Cells;
namespace RemoveAllExcelFormulasWithoutRemovingContentsInCSharp
{
class Program
{
static void Main(string[] args)
{
// To avoid trial version watermark first instantiate the license
License license = new License();
license.SetLicense("Aspose.Cells.lic");
// Load the target workbook from which all formulas are to be deleted
Workbook workbookWithFormula = new Workbook("WorkbookWithFormulas.xlsx");
// Iterate through all the worksheets to remove formulas
foreach(Worksheet worksheet in workbookWithFormula.Worksheets)
worksheet.Cells.RemoveFormulas();
// Save the resultant workbook
workbookWithFormula.Save("WorkbookWithoutFormulas.xlsx");
}
}
}

Зауважте, що для цієї операції нам не потрібен MS Excel і interop. Коли файл Excel буде готовий, ви також можете конвертувати його в інші формати, як описано в статті як створити XPS з excel на C#.

 Українська