チュートリアル
簡単にライブラリーを使用するためのチュートリアルコレクション
他人と Excel ファイルを共有したいが、基礎の数式にアクセス権を与えたくない場合、数式を数値に変換することは良い選択です。これにより、受信者は元の式を変更せずに計算結果を表示または使用することができます。この記事では、Spire.XLS for .NET を使用して Excel で数式を削除し、値を保持する方法について説明します。
まず、Spire.XLS for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。
PM> Install-Package Spire.XLS
MS Excel には、数式を削除しながら値を保持するための「値の貼り付け」機能があります。同じ機能を 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 日間有効な一時ライセンスを取得してください。
Excel ワークシートは多くの機能を備えた表計算であり、その中でも数式と関数は間違いなく最も重要な機能の一つである。数式と関数を使用することで、ユーザーはデータに対して幅広い計算、統計、論理演算を実行することができ、意味のある分析結論を迅速かつ正確に導き出すことができます。この記事では、Spire.XLS for .NET を使用して Excel ワークシートに数式と関数を追加する方法を説明します。
まず、Spire.XLS for.NET パッケージに含まれている DLL ファイルを.NETプロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。
PM> Install-Package Spire.XLS
Spire.XLS for .NET が提供する Worksheet.Range[int row, int column].Formula プロパティを使用すると、Excel ワークシートの指定したセルに数式や関数を追加することができます。 Excel のワークシートに数式や関数を追加する主な手順は以下の通りです:
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
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
数式を含む Excel ファイルを解析する場合は、数式が含まれているセルと数式が何であるかを判断して定める必要があります。この記事では、Spire.XLS for .NET ライブラリーを使用して、数式を含むセルを取得し、C# および VB.NET で数式を返す方法を学習することができます。
まず、Spire.XLS for.NET パッケージに含まれている DLL ファイルを.NETプロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。
PM> Install-Package Spire.XLS
数式を含むセルを取得して数式を返す手順は次のとおりです。
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
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。 にお問い合わせ、30 日間有効な一時ライセンスを取得してください。