در این آموزش یاد می گیریم که چگونه فرمول اکسل را بدون حذف محتویات در سی شارپ حذف کنیم. گاهی اوقات مجبور می شویم فایل های اکسل را با دیگران به اشتراک بگذاریم که حاوی مقادیر محاسبه شده هستند، اما نمی خواهیم فرمول های خود را در معرض دید قرار دهیم. برای این کار باید فرمول اکسل را حذف کنید اما همانطور که در مراحل زیر توضیح داده شده است، محتویات آن را در سی شارپ نگه دارید.
مراحل حذف فرمول اکسل اما با استفاده از سی شارپ مقدار را حفظ کنید
- با استفاده از مدیر بسته NuGet، Aspose.Cells for .NET را به پروژه اضافه کنید
- مرجع برای فضای نام System و Aspose.Cells اضافه کنید
- مجوز فوری برای جلوگیری از واترمارک نسخه آزمایشی
- workbook حاوی داده ها و فرمول را بارگیری کنید
- مرجع سلولی که فرمول آن باید حذف شود را دریافت کنید
- مقدار را در یک متغیر موقت ذخیره کنید و فرمول را حذف کنید
- با استفاده از متغیر موقت مقدار سلول را بازنشانی کنید
- کتاب کار را ذخیره کنید
مراحل بالا فرآیند حذف فرمول اکسل را توضیح می دهد اما مقدار را در 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() استفاده کنید که همه فرمولها را از کل کتاب کار حذف میکند و هر مقدار سلول را با نتیجه فرمول مربوطه جایگزین میکند. کد زیر را می توان برای حذف فرمول های اکسل استفاده کرد اما محتویات آن را به زبان سی شارپ از کل کتاب کار نگهداری کرد.
برای حذف فرمول های اکسل کد کنید اما مقدار را با استفاده از سی شارپ نگه دارید
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 برای این عملیات استفاده می شود. پس از آماده شدن فایل اکسل، می توانید آن را به فرمت های دیگر نیز همانطور که در مقاله در نحوه ایجاد XPS از اکسل در سی شارپ توضیح داده شده تبدیل کنید.