1. 程式人生 > >C# 如何批量刪除Excel單元格中的公式只保留資料

C# 如何批量刪除Excel單元格中的公式只保留資料

在建立Excel報表時,我們經常會用到很多公式來計算資料,建立後出於保密性或其他一些原因,有些時候我們可能想刪除這些公式,只保留資料。這篇文章將介紹如何使用Free Spire.XLS元件和C#批量刪除Excel文件中的所有公式並保留資料。

下面Excel文件工作表中D列的單元格都包含有公式,我選中了其中一個單元格來截圖:


在使用程式碼前,需要建立一個C#應用程式,下載Free Spire.XLS元件並從安裝資料夾下引用Spire.Xls.dll到程式中。

具體步驟如下:

步驟1:建立Workbook例項,載入Excel文件。

Workbook workbook = new Workbook();
workbook.LoadFromFile("Input.xlsx");

步驟2:遍歷文件中所有工作表,找到其中所有包含公式的單元格,獲取單元格中公式的資料,然後清除單元格中的內容,最後將資料再次賦值給單元格。

foreach (Worksheet sheet in workbook.Worksheets)
{
   foreach (CellRange cell in sheet.Range)
    {
       if(cell.HasFormula)
        {
            Object value = cell.FormulaValue;                       
            cell.Clear(ExcelClearOptions.ClearContent);
            cell.Value2 = value;
        }
    }
}
步驟3:儲存文件。
workbook.SaveToFile("DeleteFormula.xlsx",ExcelVersion.Version2013);

刪除公式後的效果:


完整程式碼:

//建立Workbook例項
Workbook workbook = new Workbook();
//載入Excel文件
workbook.LoadFromFile("Input.xlsx");
 
//遍歷文件中所有工作表,找到其中所有包含公式的單元格,獲取單元格中公式的資料,然後清除單元格中的內容,最後將資料再次賦值給單元格
foreach (Worksheet sheet in workbook.Worksheets)
{
   foreach (CellRange cell in sheet.Range)
    {
       if(cell.HasFormula)
        {
            Object value = cell.FormulaValue;                       
            cell.Clear(ExcelClearOptions.ClearContent);
            cell.Value2 = value;
        }
    }
}          
 
//儲存文件
workbook.SaveToFile("DeleteFormula.xlsx",ExcelVersion.Version2013);