Kaip pašalinti formulę iš Excel nepašalinant turinio iš C#

Šioje pamokoje sužinosime, kaip pašalinti Excel formulę nepašalinant turinio iš C#. Kartais turime bendrinti Excel failus su kitais, kuriuose yra apskaičiuotos vertės, bet nenorime atskleisti savo formulių. Tam reikia ištrinti Excel formulę, bet išlaikyti turinį C#, kaip aprašyta tolesniuose veiksmuose.

Veiksmai, kaip pašalinti Excel formulę, bet išlaikyti vertę naudojant C#

  1. Pridėkite Aspose.Cells for .NET prie projekto naudodami NuGet paketų tvarkyklę
  2. Pridėkite System ir Aspose.Cells vardų srities nuorodą
  3. Momentinė licencija, kad būtų išvengta bandomosios versijos vandens ženklo
  4. Įkelkite workbook su duomenimis ir formule
  5. Gaukite langelio, kurio formulė turi būti pašalinta, nuorodą
  6. Išsaugokite vertę laikinajame kintamajame ir pašalinkite formulę
  7. Iš naujo nustatykite langelio vertę naudodami laikinąjį kintamąjį
  8. Išsaugokite darbo knygą

Aukščiau pateiktuose veiksmuose aprašomas Excel formulės pašalinimo, tačiau vertės išlaikymas C#. Iš darbalapio pasiekiame norimą langelį ir išsaugome jo reikšmę laikinajame kintamajame. Tada pašaliname formulę iš langelio ir vėl užpildome reikšme iš laikinojo kintamojo. Galiausiai išsaugome darbaknygę.

Kodas, skirtas pašalinti Excel formulę ir išlaikyti reikšmę 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");
}
}
}

Aukščiau pateiktas pavyzdinis kodas pašalina formulę iš vieno langelio. Tačiau, jei norite pašalinti formules iš visos darbaknygės, galite naudoti WorkSheet.Cells.RemoveFormulas(), kuris pašalina visas formules iš visos darbaknygės ir pakeičia kiekvieną langelio reikšmę atitinkamu formulės rezultatu. Šis kodas gali būti naudojamas norint ištrinti Excel formules, bet išlaikyti turinį C# iš visos darbaknygės.

Kodas, skirtas pašalinti Excel formules, bet išlaikyti vertę naudojant 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");
}
}
}

Atminkite, kad šiai operacijai nereikia nei MS Excel, nei interop. Kai Excel failas bus paruoštas, galėsite jį konvertuoti į kitus formatus, taip pat kaip aprašyta straipsnyje apie kaip sukurti XPS iš Excel C#.

 Latviski