データをテーブルの形式で記録するにはExcelを使用すれば上出来だと思います。Excelレポートを作成するとき、データの計算に多くの数式を使用することがよくあります。そして、作成後、社内の機密や何らかの個人情報を含むなど他の理由のせいで、これらの数式を削除してデータのみをセーブしたい場合も時々あるんでしょうね。セルの数式をバッチ削除し、データのみをセーブする方法をよく知らないなら、この記事を読んだ後、無料のコンポーネントFree Spire.XLSでそのニーズを完全に解決できると思います。
以下のテーブルの例にしよう。このテーブルの列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);
数式を削除した結果を展示します:
完全なるコード:
using System;
using Spire.Xls;
namespace Excel_Formula
{
class Program
{
static void Main(string[] args)
{
//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);
}
}
}
はい、おしまい、今回の記事はここで終わりにします、最後まで読んでいただいて、誠にありがとうございます。