Jak usunąć formułę w programie Excel bez usuwania zawartości w języku C#

W tym samouczku nauczymy się, jak usunąć formułę Excela bez usuwania zawartości w C#. Czasami musimy udostępniać innym pliki Excela zawierające obliczone wartości, ale nie chcemy ujawniać naszych formuł. Wymaga to usunięcia formuły programu Excel, ale zachowania zawartości w języku C# zgodnie z opisem w poniższych krokach.

Kroki, aby usunąć formułę programu Excel, ale zachować wartość przy użyciu języka C#

  1. Dodaj Aspose.Cells for .NET do projektu za pomocą menedżera pakietów NuGet
  2. Dodaj odwołanie do przestrzeni nazw System i Aspose.Cells
  3. Utwórz instancję licencji, aby uniknąć znaku wodnego wersji próbnej
  4. Załaduj workbook zawierający dane i formułę
  5. Pobierz odwołanie do komórki, której formuła ma zostać usunięta
  6. Zapisz wartość w zmiennej tymczasowej i usuń formułę
  7. Zresetuj wartość komórki za pomocą zmiennej tymczasowej
  8. Zapisz skoroszyt

Powyższe kroki opisują proces usuwania formuły programu Excel z zachowaniem wartości w języku C#. Uzyskujemy dostęp do żądanej komórki z arkusza roboczego i zapisujemy jej wartość w zmiennej tymczasowej. Następnie usuwamy formułę z komórki i ponownie wypełniamy ją wartością ze zmiennej tymczasowej. Na koniec zapisujemy skoroszyt.

Kod do usunięcia formuły Excela i zachowania wartości w 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");
}
}
}

Powyższy przykładowy kod usuwa formułę z pojedynczej komórki. Jeśli jednak chcesz usunąć formuły z całego skoroszytu, możesz użyć metody WorkSheet.Cells.RemoveFormulas(), która usuwa wszystkie formuły z całego skoroszytu i zastępuje każdą wartość komórki odpowiednim wynikiem formuły. Poniższego kodu można użyć do usunięcia formuł programu Excel, ale zachować zawartość w języku C# z całego skoroszytu.

Kod do usuwania formuł programu Excel, ale zachowaj wartość przy użyciu języka 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");
}
}
}

Zauważ, że do tej operacji nie potrzebujemy ani MS Excel, ani interop. Gdy plik Excel jest gotowy, możesz go również przekonwertować na inne formaty, również zgodnie z opisem w artykule na jak stworzyć XPS z Excela w C#.

 Polski