C#でコンテンツを削除せずにExcelで数式を削除する方法

このチュートリアルでは、C#のコンテンツを削除せずにExcelの数式を削除する方法を学習します。計算値を含むExcelファイルを他のファイルと共有する必要がある場合もありますが、数式を公開したくありません。これには、Excelの数式を削除する必要がありますが、次の手順で説明するように、内容をC#のままにします。

Excelの数式を削除するが、C#を使用して値を保持する手順

  1. NuGetパッケージマネージャーを使用してプロジェクトにAspose.Cells for .NETを追加します
  2. SystemおよびAspose.Cells名前空間の参照を追加します
  3. 試用版の透かしを回避するためにライセンスをインスタンス化する
  4. データと数式を含むworkbookをロードします
  5. 数式を削除するセルの参照を取得します
  6. 値を一時変数に格納し、数式を削除します
  7. 一時変数を使用してセル値をリセットする
  8. ブックを保存する

上記の手順は、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");
}
}
}

この操作にはMSExcelも相互運用も使用されないことに注意してください。 Excelファイルの準備ができたら、C#でExcelからXPSを作成する方法の記事で説明されているように、他の形式に変換することもできます。

 日本語