Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách xóa công thức Excel mà không xóa nội dung trong C#. Đôi khi chúng tôi phải chia sẻ tệp Excel với những người khác có chứa các giá trị được tính toán nhưng chúng tôi không muốn để lộ công thức của mình. Điều này yêu cầu xóa công thức Excel nhưng giữ lại nội dung trong C# như được mô tả trong các bước sau.
Các bước để Xóa Công thức Excel nhưng Giữ Giá trị bằng C#
- Thêm Aspose.Cells for .NET vào dự án bằng trình quản lý gói NuGet
- Thêm tham chiếu cho không gian tên System và Aspose.Cells
- Khởi tạo giấy phép để tránh hình mờ phiên bản dùng thử
- Tải workbook chứa dữ liệu và công thức
- Lấy tham chiếu của ô có công thức bị xóa
- Lưu trữ giá trị trong một biến tạm thời và loại bỏ công thức
- Đặt lại giá trị ô bằng biến tạm thời
- Lưu sổ làm việc
Các bước trên mô tả quy trình xóa công thức Excel nhưng giữ nguyên giá trị trong C#. Chúng tôi truy cập ô mong muốn từ trang tính và lưu giá trị của nó vào một biến tạm thời. Sau đó, chúng tôi xóa công thức khỏi ô và điền lại giá trị từ biến tạm thời. Cuối cùng, chúng tôi lưu sổ làm việc.
Code Xóa Công thức Excel và giữ nguyên giá trị trong 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"); | |
} | |
} | |
} |
Mã mẫu ở trên xóa công thức khỏi một ô. Tuy nhiên, nếu bạn muốn xóa công thức khỏi toàn bộ sổ làm việc, bạn có thể sử dụng WorkSheet.Cells.RemoveFormulas() để xóa tất cả công thức khỏi toàn bộ sổ làm việc và thay thế từng giá trị ô bằng kết quả công thức tương ứng. Mã sau đây có thể được sử dụng để xóa công thức excel nhưng giữ lại nội dung trong C# từ toàn bộ sổ làm việc.
Mã để Xóa Công thức Excel nhưng giữ nguyên giá trị bằng 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"); | |
} | |
} | |
} |
Lưu ý rằng chúng tôi không cần MS Excel cũng như không sử dụng interop cho thao tác này. Khi tệp Excel đã sẵn sàng, bạn cũng có thể chuyển đổi nó sang các định dạng khác như được mô tả trong bài viết trên cách tạo XPS từ excel trong C#.