У цьому посібнику ми дізнаємося, як видалити формулу Excel без видалення вмісту в C#. Іноді нам доводиться ділитися файлами Excel з іншими, що містять обчислені значення, але ми не хочемо розкривати свої формули. Для цього потрібно видалити формулу Excel, але зберегти вміст у C#, як описано в наступних кроках.
Кроки для видалення формули Excel, але збереження значення за допомогою C#
- Додайте Aspose.Cells for .NET до проекту за допомогою менеджера пакетів NuGet
- Додайте посилання на простір імен System і Aspose.Cells
- Створення екземпляра ліцензії, щоб уникнути водяного знака пробної версії
- Завантажте workbook, що містить дані та формулу
- Отримайте посилання на клітинку, формулу якої потрібно видалити
- Збережіть значення в тимчасовій змінній і видаліть формулу
- Скинути значення клітинки за допомогою тимчасової змінної
- Збережіть робочу книгу
Наведені вище дії описують процес видалення формули 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#.