ในบทช่วยสอนนี้ เราจะเรียนรู้วิธีลบสูตร Excel โดยไม่ต้องลบเนื้อหาใน C# บางครั้งเราต้องแชร์ไฟล์ Excel กับไฟล์อื่นที่มีค่าจากการคำนวณ แต่เราไม่ต้องการเปิดเผยสูตรของเรา จำเป็นต้องลบสูตร Excel แต่คงเนื้อหาไว้ใน C# ตามที่อธิบายไว้ในขั้นตอนต่อไปนี้
ขั้นตอนในการลบสูตร Excel แต่เก็บค่าโดยใช้ C#
- เพิ่ม Aspose.Cells for .NET ในโครงการโดยใช้ NuGet package manager
- เพิ่มการอ้างอิงสำหรับเนมสเปซ 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 หรือใช้การทำงานร่วมกันสำหรับการดำเนินการนี้ เมื่อไฟล์ Excel พร้อมแล้ว คุณยังสามารถแปลงไฟล์เป็นรูปแบบอื่นได้ด้วย ตามที่อธิบายไว้ในบทความเกี่ยวกับ วิธีสร้าง XPS จาก excel ใน C#