Come rimuovere una formula in Excel senza rimuovere il contenuto in C#

In questo tutorial impareremo come rimuovere la formula di Excel senza rimuovere i contenuti in C#. A volte dobbiamo condividere file Excel con altri contenenti valori calcolati ma non vogliamo esporre le nostre formule. Ciò richiede di eliminare la formula di Excel ma di mantenere il contenuto in C# come descritto nei passaggi seguenti.

Passaggi per rimuovere la formula di Excel ma mantenere il valore usando C#

  1. Aggiungi Aspose.Cells for .NET al progetto utilizzando il gestore di pacchetti NuGet
  2. Aggiungi riferimento per lo spazio dei nomi System e Aspose.Cells
  3. Istanziare la licenza per evitare la filigrana della versione di prova
  4. Carica il workbook contenente i dati e la formula
  5. Ottieni il riferimento della cella la cui formula deve essere rimossa
  6. Memorizza il valore in una variabile temporanea e rimuovi la formula
  7. Reimposta il valore della cella utilizzando la variabile temporanea
  8. Salva la cartella di lavoro

I passaggi precedenti descrivono il processo per rimuovere la formula di Excel ma mantenere il valore in C#. Accediamo alla cella desiderata dal foglio di lavoro e ne salviamo il valore in una variabile temporanea. Quindi rimuoviamo la formula dalla cella e la riempiamo di nuovo con il valore dalla variabile temporanea. Infine, salviamo la cartella di lavoro.

Codice per rimuovere la formula di Excel e mantenere il valore in 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");
}
}
}

Il codice di esempio precedente rimuove la formula da una singola cella. Tuttavia, se desideri rimuovere le formule dall’intera cartella di lavoro, puoi utilizzare WorkSheet.Cells.RemoveFormulas() che rimuove tutte le formule dall’intera cartella di lavoro e sostituisce ogni valore di cella con il rispettivo risultato della formula. Il codice seguente può essere usato per eliminare le formule di Excel ma mantenere il contenuto in C# dall’intera cartella di lavoro.

Codice per rimuovere le formule di Excel ma mantieni il valore usando 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");
}
}
}

Si noti che per questa operazione non è necessario né MS Excel né l’interoperabilità. Una volta che il file Excel è pronto puoi anche convertirlo in altri formati anche come descritto nell’articolo su come creare XPS da Excel in C#.

 Italiano