Как да премахнете формула в 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#.

 Български