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