Jak odebrat vzorec v Excelu bez odstranění obsahu v C#

V tomto tutoriálu se naučíme, jak odstranit vzorec Excel bez odstranění obsahu v C#. Někdy musíme sdílet soubory aplikace Excel s ostatními, které obsahují vypočítané hodnoty, ale nechceme odhalit naše vzorce. To vyžaduje odstranit vzorec Excel, ale zachovat obsah v C#, jak je popsáno v následujících krocích.

Kroky k odstranění vzorce Excel, ale zachování hodnoty pomocí C#

  1. Přidejte Aspose.Cells for .NET do projektu pomocí správce balíčků NuGet
  2. Přidejte odkaz na jmenný prostor System a Aspose.Cells
  3. Okamžitá licence, abyste se vyhnuli vodoznaku zkušební verze
  4. Načtěte workbook obsahující data a vzorec
  5. Získejte odkaz na buňku, jejíž vzorec má být odstraněn
  6. Uložte hodnotu do dočasné proměnné a odeberte vzorec
  7. Resetujte hodnotu buňky pomocí dočasné proměnné
  8. Uložte sešit

Výše uvedené kroky popisují proces odebrání vzorce Excel, ale zachování hodnoty v C#. K požadované buňce přistoupíme z listu a její hodnotu uložíme do dočasné proměnné. Poté vzorec z buňky odebereme a znovu jej naplníme hodnotou z dočasné proměnné. Nakonec sešit uložíme.

Kód pro odstranění vzorce Excel a zachování hodnoty v 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");
}
}
}

Výše uvedený ukázkový kód odebere vzorec z jedné buňky. Pokud však chcete odebrat vzorce z celého sešitu, můžete použít WorkSheet.Cells.RemoveFormulas(), která odebere všechny vzorce z celého sešitu a nahradí každou hodnotu buňky příslušným výsledkem vzorce. Následující kód lze použít k odstranění vzorců aplikace Excel, ale zachovat obsah v C# z celého sešitu.

Kód pro odstranění vzorců Excelu, ale ponechejte hodnotu pomocí 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");
}
}
}

Všimněte si, že nepotřebujeme MS Excel ani se pro tuto operaci nepoužívá interop. Jakmile bude soubor Excel připraven, můžete jej také převést do jiných formátů, jak je popsáno v článku na jak vytvořit XPS z excelu v C#.

 Čeština