他人と Excel ファイルを共有したいが、基礎の数式にアクセス権を与えたくない場合、数式を数値に変換することは良い選択です。これにより、受信者は元の式を変更せずに計算結果を表示または使用することができます。この記事では、Spire.XLS for .NET を使用して Excel で数式を削除し、値を保持する方法について説明します。
Spire.XLS for .NET をインストールします
まず、Spire.XLS for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。
PM> Install-Package Spire.XLS
Excel で数式を削除し、値を保持する
MS Excel には、数式を削除しながら値を保持するための「値の貼り付け」機能があります。同じ機能を C# のコードで実装するには、以下の手順を参照してください。
- Workbook のインスタンスを作成します。
- Workbook.LoadFromFile() メソッドを使用して、サンプルの Excel ファイルを読み込みます。
- ファイル内のワークシートをループし、各シート内のセルをループします。
- CellRange.HasFormula プロパティを使用して、セルに数式が含まれているかどうかを判断します。
- もし含まれている場合は、CellRange.FormulaValue プロパティを使用して数式の値を取得します。その後、セル内の元の数式をクリアし、CellRange.Value2 プロパティを使用してその値で埋めます。
- Workbook.SaveToFile() メソッドを使用して、結果のファイルを保存します。
- C#
using Spire.Xls;
using System;
namespace RemoveFormulas
{
class Program
{
static void Main(string[] args)
{
//Workbookのインスタンスを作成する
Workbook workbook = new Workbook();
//サンプルのExcelファイルを読みむ
workbook.LoadFromFile("Sample.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.Version2016);
}
}
}
一時ライセンスを申請する
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。