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