Excelファイルを処理する際、いくつかのセルの値が数字のように見えても、実際にはテキストとして保存されていることに気づくかもしれません。このようなセルをSUMやAverageなどのExcel関数で使用すると、これらの関数がテキスト値を含むセルを無視するため、誤った計算結果を得ることになります。この場合、テキストとして保存されている数値を一般的な数値に戻す変換が必要です。この記事では、Free Spire.XLS for Java APIを使用して、JavaでExcelのセル値をテキストから数値に、数値からテキストに変換する方法を説明します。
【依存関係の追加】
この方法は、無料のFree Spire.XLS for Javaが必要ですので、先にjarファイルをインポートしてください。
1. Maven
Maven を使用している場合、プロジェクトの pom.xml ファイルに以下のコードを追加することで、簡単にアプリケーションに JAR ファイルをインポートすることができます。
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>https://repo.e-iceblue.com/nexus/content/groups/public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.xls.free</artifactId>
<version>5.1.0</version>
</dependency>
</dependencies>
2. 公式サイトよりJarファイルをダウンロード
まず、Free Spire.XLS for Java の公式サイトよりzipファイルをダウンロードします。zipファイルを解凍し、libフォルダの下にあるSpire.Xls.jarファイルを依存関係としてプロジェクトにインポートしてください。
JavaでExcelのセルの値をテキストから数値に変換する
Free Spire.XLS for Java では、CellRange クラスの convertToNumber() メソッドにより、テキストとしてフォーマットされた数値の値を数値に戻すことができます。
以下はその詳細な手順です。
- Workbookクラスのインスタンスを作成します。
- Workbook.loadFromFile() メソッドを使用して、Excelファイルを読み込みます。
- Workbook.getWorksheets().get(int) メソッドを使用して、目的のワークシートを取得します。
- Worksheet.getCellRange(int,int,int) メソッドを使用して、テキストとして格納されている数値を含む特定のセル範囲にアクセスします。
- CellRange.convertToNumber() メソッドを呼び出して、テキストとして格納されている数値を数値に変換します。
- Workbook.saveToFile(String, ExcelVersion) メソッドを使用して、結果ファイルを保存します。
Java
import com.spire.xls.CellRange;
import com.spire.xls.ExcelVersion;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;
public class convertTextToNumber {
public static void main(String []args){
//Workbookクラスのインスタンスを作成する
Workbook workbook = new Workbook();
//Excelファイルを読み込む
workbook.loadFromFile("Sample.xlsx");
//最初のワークシートを取得する
Worksheet sheet = workbook.getWorksheets().get(0);
//テキストとして格納されている数値を含む特定のセル範囲を取得する
CellRange range = sheet.getCellRange(1, 1, sheet.getLastRow(), sheet.getLastColumn());
//テキストで保存された数値を数値に戻す
range.convertToNumber();
//結果ファイルを保存する
workbook.saveToFile("テキストから数値への変換.xlsx", ExcelVersion.Version2016);
}
}
【結果のExcelファイル】
JavaでExcelのセルの値を数値からテキストに変換する
CellRangeクラスのsetNumberFormat() メソッドを使用すると、Excelセル内の数値をテキスト、小数、日付などに書式設定することができます。
次の手順では、Excelのセル内の数値をテキストとして書式設定する方法を説明します。
- Workbookクラスのインスタンスを作成します。
- Workbook.loadFromFile() メソッドを使用して、Excelファイルを読み込みます。
- Workbook.getWorksheets().get(int) メソッドを使用して、目的のワークシートを取得します。
- Worksheet.getCellRange(int,int,int) メソッドを使用して、数値を含む特定のセル範囲にアクセスします。
- CellRange.setNumberFormat(String) メソッドを呼び出して、数値をテキストに変換します。
- Workbook.saveToFile() メソッドを使用して、結果ファイルを保存します。
Java
import com.spire.xls.CellRange;
import com.spire.xls.ExcelVersion;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;
public class convertNumberToText {
public static void main(String []args){
//Workbookクラスのインスタンスを作成する
Workbook workbook = new Workbook();
//Excelファイルを読み込む
workbook.loadFromFile("Sample.xlsx");
//最初のワークシートを取得する
Worksheet sheet = workbook.getWorksheets().get(0);
//数値を含む特定のセル範囲を取得する
CellRange range = sheet.getCellRange(1, 1, sheet.getLastRow(), sheet.getLastColumn());
//数値をテキストに変換する
range.setNumberFormat("@");
//結果ファイルを保存する
workbook.saveToFile("数値からテキストへの変換.xlsx", ExcelVersion.Version2016);
}
}
【結果のExcelファイル】
この記事では、JavaでExcelのセルの値をテキストから数値に、数値からテキストに変換する方法を紹介します。この記事を読んだ後、まだいくつかの問題がある場合は、より多くの情報のためのSpire.XLS Forumに移動してください。