В този урок ще научим как да премахнем формулата на Excel, без да премахваме съдържанието в C#. Понякога се налага да споделяме файлове на Excel с други, съдържащи изчислени стойности, но не искаме да излагаме нашите формули. Това изисква да изтриете формулата на Excel, но да запазите съдържанието в C#, както е описано в следващите стъпки.
Стъпки за премахване на формула на Excel, но запазване на стойност с помощта на C#
- Добавете Aspose.Cells for .NET към проекта с помощта на мениджъра на пакети NuGet
- Добавете препратка към пространството на имената System и Aspose.Cells
- Инстанцирайте лиценз, за да избегнете пробна версия воден знак
- Заредете workbook, съдържащ данни и формула
- Вземете референцията на клетката, чиято формула трябва да бъде премахната
- Съхранявайте стойността във временна променлива и премахвайте формулата
- Нулирайте стойността на клетката с помощта на временната променлива
- Запазете работната книга
Горните стъпки описват процеса за премахване на формулата на Excel, но запазване на стойността в C#. Влизаме в желаната клетка от работния лист и записваме нейната стойност във временна променлива. След това премахваме формулата от клетката и отново я запълваме със стойност от временната променлива. Накрая запазваме работната книга.
Код за премахване на формула на Excel и запазване на стойността в 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"); | |
} | |
} | |
} |
Горният примерен код премахва формула от една клетка. Ако обаче искате да премахнете формули от цялата работна книга, можете да използвате WorkSheet.Cells.RemoveFormulas(), която премахва всички формули от цялата работна книга и замества всяка стойност на клетка със съответния резултат от формулата. Следният код може да се използва за изтриване на формули на Excel, но запазване на съдържанието в C# от цялата работна книга.
Код за премахване на формули на Excel, но запазване на стойността с помощта на 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"); | |
} | |
} | |
} |
Обърнете внимание, че нито се нуждаем от MS Excel, нито interop се използва за тази операция. След като файлът на Excel е готов, можете също да го конвертирате в други формати, както е описано в статията на как да създадете XPS от excel в C#.