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