En este tutorial, aprenderemos cómo eliminar fórmulas de Excel sin eliminar contenidos en C#. A veces tenemos que compartir archivos de Excel con otros que contienen valores calculados pero no queremos exponer nuestras fórmulas. Esto requiere eliminar la fórmula de Excel pero mantener el contenido en C# como se describe en los siguientes pasos.
Pasos para eliminar la fórmula de Excel pero mantener el valor usando C#
- Agregue Aspose.Cells for .NET al proyecto usando el administrador de paquetes NuGet
- Agregar referencia para el espacio de nombres System y Aspose.Cells
- Crea una instancia de la licencia para evitar la marca de agua de la versión de prueba
- Cargue el workbook que contiene datos y fórmula
- Obtener la referencia de la celda cuya fórmula se va a eliminar
- Almacene el valor en una variable temporal y elimine la fórmula
- Restablecer el valor de la celda usando la variable temporal
- Guardar el libro de trabajo
Los pasos anteriores describen el proceso para eliminar la fórmula de Excel pero mantener el valor en C#. Accedemos a la celda deseada desde la hoja de cálculo y guardamos su valor en una variable temporal. Luego eliminamos la fórmula de la celda y la llenamos nuevamente con el valor de la variable temporal. Finalmente, guardamos el libro de trabajo.
Código para eliminar la fórmula de Excel y mantener el valor en 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"); | |
} | |
} | |
} |
El código de muestra anterior elimina la fórmula de una sola celda. Sin embargo, si desea eliminar fórmulas de todo el libro de trabajo, puede usar WorkSheet.Cells.RemoveFormulas() que elimina todas las fórmulas de todo el libro de trabajo y reemplaza cada valor de celda con el resultado de la fórmula respectiva. El siguiente código se puede usar para eliminar fórmulas de Excel pero mantener el contenido en C# de todo el libro de trabajo.
Código para eliminar fórmulas de Excel pero mantener el valor 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"); | |
} | |
} | |
} |
Tenga en cuenta que no necesitamos MS Excel ni interoperabilidad para esta operación. Una vez que el archivo de Excel esté listo, también puede convertirlo a otros formatos, como se describe en el artículo sobre cómo crear XPS desde Excel en C#.