チュートリアル

簡単にライブラリーを使用するためのチュートリアルコレクション

チュートリアル»xlsnetformula

Displaying items by tag: xlsnetformula

他人と 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);
        }
    }
}

C#:Excel で数式を削除し、値を保持する方法

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Published in 数式
Tagged under

Excel ワークシートは多くの機能を備えた表計算であり、その中でも数式と関数は間違いなく最も重要な機能の一つである。数式と関数を使用することで、ユーザーはデータに対して幅広い計算、統計、論理演算を実行することができ、意味のある分析結論を迅速かつ正確に導き出すことができます。この記事では、Spire.XLS for .NET を使用して Excel ワークシートに数式と関数を追加する方法を説明します。

Spire.XLS for.NET をインストールします

まず、Spire.XLS for.NET パッケージに含まれている DLL ファイルを.NETプロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。

PM> Install-Package Spire.XLS

Excel ワークシートに数式と関数を挿入する

Spire.XLS for .NET が提供する Worksheet.Range[int row, int column].Formula プロパティを使用すると、Excel ワークシートの指定したセルに数式や関数を追加することができます。 Excel のワークシートに数式や関数を追加する主な手順は以下の通りです:

  • Workbook のオブジェクトを作成します。
  • Workbook.Worksheets[int index] プロパティを使って、指定したワークシートを取得します。
  • セルにデータを書き込み、セルの書式を設定します。
  • Range[int row, int column].Formula プロパティを使って、ワークシートの指定されたセルに数式と関数を追加します。
  • Workbook.SaveToFile() メソッドを使用してワークブックを保存します。
  • C#
  • VB.NET
using Spire.Xls;
using System;

namespace InsertFormulasAndFunctions
{
    internal class Program
    {
        static void Main(string[] args)
        {
            //Workbookのオブジェクトを作成する
            Workbook workbook = new Workbook();

            //最初のワークシートを取得する
            Worksheet worksheet = workbook.Worksheets[0];

            //currentRowとcurrentFormulaの2つの変数を宣言する
            int currentRow = 1;
            String currentFormula = null;

            //列の幅を設定する
            worksheet.SetColumnWidth(1, 32);
            worksheet.SetColumnWidth(2, 16);

            //セルにコンテンツを書き込む
            worksheet.Range[currentRow, 1].Value = "試験データ";
            worksheet.Range[currentRow, 2].NumberValue = 1;
            worksheet.Range[currentRow, 3].NumberValue = 2;
            worksheet.Range[currentRow, 4].NumberValue = 3;
            worksheet.Range[currentRow, 5].NumberValue = 4;
            worksheet.Range[currentRow, 6].NumberValue = 5;
            currentRow += 2;
            worksheet.Range[currentRow, 1].Value = "数式または関数";
            worksheet.Range[currentRow, 2].Value = "結果";

            //セルの書式を設定する
            CellRange range = worksheet.Range[currentRow, 1, currentRow, 2];
            range.Style.Font.FontName = "Yu Gothic UI";
            range.Style.KnownColor = ExcelColors.LightGreen;
            range.Style.FillPattern = ExcelPatternType.Solid;
            range.Style.Borders[BordersLineType.EdgeBottom].LineStyle = LineStyleType.Medium;
            range.Style.Font.IsBold = true;

            //算術計算
            currentFormula = "=1/2+3*4";
            worksheet.Range[++currentRow, 1].Text = "'" + currentFormula;
            worksheet.Range[++currentRow, 2].Formula = currentFormula;

            //日付関数
            currentFormula = "=TODAY()";
            worksheet.Range[++currentRow, 1].Text = "'" + currentFormula;
            worksheet.Range[currentRow, 2].Formula = currentFormula;
            worksheet.Range[currentRow, 2].Style.NumberFormat = "YYYY/MM/DD";

            //三角関数
            currentFormula = "=SIN(PI()/6)";
            worksheet.Range[++currentRow, 1].Text = "'" + currentFormula;
            worksheet.Range[currentRow, 2].Formula = currentFormula;

            //平均関数
            currentFormula = "=AVERAGE(B1:F1)";
            worksheet.Range[++currentRow, 1].Text = "'" + currentFormula;
            worksheet.Range[currentRow, 2].Formula = currentFormula;

            //合計関数
            currentFormula = "=SUM(B1:F1)";
            worksheet.Range[++currentRow, 1].Text = "'" + currentFormula;
            worksheet.Range[currentRow, 2].Formula = currentFormula;

            //ワークブックを保存する
            workbook.SaveToFile("数式と関数の追加.xlsx", FileFormat.Version2013);
        }
    }
}
Imports Spire.Xls
Imports System

Namespace InsertFormulasAndFunctions
    Friend Class Program
        Shared Sub Main(ByVal args() As String)
            'Workbookのオブジェクトを作成する
            Dim workbook As Workbook = New Workbook()

            '最初のワークシートを取得する
            Dim worksheet As Worksheet = workbook.Worksheets(0)

            'currentRowとcurrentFormulaの2つの変数を宣言する
            Dim currentRow As Integer = 1
            Dim currentFormula As String = Nothing

            '列の幅を設定する
            worksheet.SetColumnWidth(1, 32)
            worksheet.SetColumnWidth(2, 16)

            'セルにコンテンツを書き込む
            worksheet.Range(currentRow, 1).Value = "試験データ"
            worksheet.Range(currentRow, 2).NumberValue = 1
            worksheet.Range(currentRow, 3).NumberValue = 2
            worksheet.Range(currentRow, 4).NumberValue = 3
            worksheet.Range(currentRow, 5).NumberValue = 4
            worksheet.Range(currentRow, 6).NumberValue = 5
            currentRow += 2
            worksheet.Range(currentRow, 1).Value = "数式または関数"
            worksheet.Range(currentRow, 2).Value = "結果"

            'セルの書式を設定する
            Dim range As CellRange = worksheet.Range(currentRow, 1, currentRow, 2)
            range.Style.Font.FontName = "Yu Gothic UI"
            range.Style.KnownColor = ExcelColors.LightGreen
            range.Style.FillPattern = ExcelPatternType.Solid
            range.Style.Borders(BordersLineType.EdgeBottom).LineStyle = LineStyleType.Medium
            range.Style.Font.IsBold = True

            '算術計算
            currentFormula = "=1/2+3*4""'" + currentFormulacurrentFormula

            '日付関数
            currentFormula = "=TODAY()""'" + currentFormula
            worksheet.Range(currentRow, 2).Formula = currentFormula
            worksheet.Range(currentRow, 2).Style.NumberFormat = "YYYY/MM/DD"

            '三角関数
            currentFormula = "=SIN(PI()/6)""'" + currentFormula
            worksheet.Range(currentRow, 2).Formula = currentFormula

            '平均関数
            currentFormula = "=AVERAGE(B1:F1)""'" + currentFormula
            worksheet.Range(currentRow, 2).Formula = currentFormula

            '合計関数
            currentFormula = "=SUM(B1:F1)""'" + currentFormula
            worksheet.Range(currentRow, 2).Formula = currentFormula

            'ワークブックを保存する
            workbook.SaveToFile("数式と関数の追加.xlsx", FileFormat.Version2013)
        End Sub
    End Class
End Namespace

C#/VB.NET:Excel ワークシートに数式と関数を挿入する方法

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Published in 数式
Tagged under

数式を含む Excel ファイルを解析する場合は、数式が含まれているセルと数式が何であるかを判断して定める必要があります。この記事では、Spire.XLS for .NET ライブラリーを使用して、数式を含むセルを取得し、C# および VB.NET で数式を返す方法を学習することができます。

Spire.XLS for.NET をインストールします

まず、Spire.XLS for.NET パッケージに含まれている DLL ファイルを.NETプロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。

PM> Install-Package Spire.XLS

数式を含むセルを取得し、数式を返す

数式を含むセルを取得して数式を返す手順は次のとおりです。

  • Workbook インスタンスを作成します。
  • Workbook.LoadFromFile() メソッドを使用して Excel ファイルをロードします。
  • Workbook.Worksheets [sheetIndex] プロパティを使用して、インデックスで目的のワークシートを取得します。
  • StringBuilder インスタンスを作成します。
  • Worksheet.AllocatedRange プロパティを使用して、ワークシートの使用範囲にアクセスします。
  • 使用範囲内のセルをループします。
  • ループ内で、CellRange.HasFormula プロパティを使用してセルに数式が含まれているかどうかを検出します。結果が true の場合は、CellRange.RangeAddressLocal プロパティと CellRange.Formula プロパティを使用してセルの名前と数式を取得します。次に、StringBuilder.AppendLine() メソッドを使用してそれらを StringBuilder に追加します。
  • File.WriteAllText() メソッドを使用して、StringBuilder のコンテンツを .txt ファイルに書き込みます。
  • C#
  • VB.NET
using Spire.Xls;
using System.IO;
using System.Text;

namespace ReadFormulas
{
    class Program
    {
        static void Main(string[] args)
        {
            //Workbook インスタンスを作成する
            Workbook workbook = new Workbook();
            //Excel ドキュメントをロード
            workbook.LoadFromFile("C:\\Users\\Administrator\\Desktop\\Formulas.xlsx");

            //最初のワークシートを取得する
            Worksheet sheet = workbook.Worksheets[0];

            //StringBuilderインスタンスを作成する
            StringBuilder sb = new StringBuilder();

            //ワークシートの使用範囲にアクセスする
            CellRange usedRange = sheet.AllocatedRange;
            //使用範囲内のセルをループする
            foreach (CellRange cell in usedRange)
            {
                //現在のセルに数式があるかどうかを検出する
                if (cell.HasFormula)
                {
                    //セル名を取得する
                    string cellName = cell.RangeAddressLocal;
                    //数式を取得する
                    string formula = cell.Formula;
                    //セル名と数式をStringBuilderに追加する
                    sb.AppendLine(cellName + " has a formula: " + formula);
                }
            }
            // StringBuilderのコンテンツを.txtファイルに書き込む
            File.WriteAllText("formulas.txt", sb.ToString());
        }
    }
}
Imports Spire.Xls
Imports System.IO
Imports System.Text
 
Namespace ReadFormulas
    Class Program
        static void Main(string() args)
        {
            'Workbook インスタンスを作成する
            Dim workbook As Workbook =  New Workbook() 
            'Excel ドキュメントをロード
            workbook.LoadFromFile("C:\\Users\\Administrator\\Desktop\\Formulas.xlsx")
 
            '最初のワークシートを取得する
            Dim sheet As Worksheet =  workbook.Worksheets(0) 
 
            'StringBuilderインスタンスを作成する
            Dim sb As StringBuilder =  New StringBuilder() 
 
            'ワークシートの使用範囲にアクセスする
            Dim usedRange As CellRange =  sheet.AllocatedRange 
            '使用範囲内のセルをループする
            Dim cell As CellRange
            For Each cell In usedRange
                '現在のセルに数式があるかどうかを検出する
                if (cell.HasFormula)
                {
                    'セル名を取得する
                    Dim cellName As String =  cell.RangeAddressLocal 
                    '数式を取得する
                    Dim formula As String =  cell.Formula 
                    'セル名と数式をStringBuilderに追加する
                    sb.AppendLine(cellName + " has a formula: " + formula)
                }
            Next
            ' StringBuilderのコンテンツを.txtファイルに書き込む
            File.WriteAllText("formulas.txt", sb.ToString())
        }
    End Class
End Namespace

C#/VB.NET Excel の数式を読む方法

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。 にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Published in 数式
Tagged under