データ分析、レポート作成、業務自動化などの分野で、開発者が Excel ファイルを扱う機会は非常に多いものです。しかし、よく求められる処理のひとつに「Excel のセルから数式を削除し、計算結果の値だけを残す」というものがあります。最終版のレポートを共有する際など、機密性の高い数式や参照を隠したまま結果を保持することが重要な場合に、この処理は欠かせません。
手動でこの操作を行ったことがある人なら、Microsoft Excel の「値の貼り付け(Paste Values)」機能をご存じでしょう。この機能を使えば、数式を静的な値に置き換えることができます。では、この処理を .NET アプリケーションで自動化したい場合はどうすればよいでしょうか?その答えが、Spire.XLS for .NET です。
なぜ Spire.XLS for .NET を選ぶのか
Spire.XLS for .NETは、Microsoft Excel をインストールすることなく、C# や VB.NET で Excel ファイルを作成・読み取り・編集・変換できる高機能な Excel 操作ライブラリです。数式、書式設定、グラフ、ピボットテーブルなど、Excel データを完全に制御することができます。特に今回のようなケースでは、数式を検出して削除し、計算済みの値を保持する作業を非常に簡単に実現できます。
手順:Excel で数式を削除して値を保持する
ここでは、Spire.XLS for .NET を使用し、わずか数行の C# コードでこの機能を実装する方法を紹介します。
ステップ 1. Spire.XLS for .NET をインストールする
まず、Spire.XLS for .NET の API ライブラリを PC に追加します。公式サイトからダウンロードするか、NuGet を使用して以下のコマンドで導入できます。
PM> Install-Package Spire.XLS
ステップ 2. サンプルコードをコピーしてカスタマイズする
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);
}
}
}
Spire.XLS for .NET を使用するメリット
- Microsoft Excel のインストールが不要
- 高速かつ安定:バッチ処理や自動化ワークフローに最適
- すべての Excel 形式(XLS, XLSX, CSV など)に対応
- .NET Framework、.NET Core、.NET 6/7 と簡単に統合可能グラフ作成、ピボットテーブル、データ検証、シート保護など高度な操作もサポート
Spire.XLS for .NET には無料評価版があり、この機能をすぐに試すことができます。生成されるファイルの評価メッセージを削除したい場合、またはすべての機能を試したい場合は、30 日間の一時ライセンスを申請することができます。
まとめ
Excel ファイルの数式を自動的に削除して値だけを残す処理を自動化すれば、作業時間を短縮し、機密性の高い数式の漏えいを防ぐことができます。
Spire.XLS for .NET を使用すれば、Excel の「値の貼り付け」操作をクリーンで自動化されたスケーラブルなソリューションに置き換えることが可能です。業務用のレポートツールから軽量なデータ処理アプリまで、この方法を使えば、Excel の数式を安全かつ効率的に扱うことができます。