Java を使用して XLSX からメタデータを読み取る

現代のソフトウェア開発では、ファイルからメタデータを抽出して処理する能力が、さまざまなアプリケーションで重要な役割を果たしています。作成者、作成日、ドキュメントのプロパティなどのデータを含むメタデータは、ファイルに関する貴重な洞察を提供し、効果的なファイル管理を容易にします。特に、.xlsx 形式の Excel ファイルの場合、プログラムでメタデータにアクセスすると非常に有利になります。このガイドでは、Java プログラミング言語を使用して XLSX からメタデータを読み取る 方法について詳しく説明します。ここでは、Java を使用して XLSX のメタデータを読み取る 方法を示すコード例とともに、重要な手順を紹介します。

Java を使用して XLSX からメタデータを読み取る手順

  1. GroupDocs.Metadata for Java を利用して XLSX ファイルからメタデータを抽出できるように IDE を設定します
  2. Metadata クラスのインスタンスを作成し、XLSX ファイルのファイル パスをコンストラクタの引数として渡します。
  3. すべてのメタデータ属性を調べるためのルールまたは条件を作成する
  4. Metadata.findProperties メソッドの条件を定義する
  5. 取得したプロパティをループする

XLSX は、Microsoft Excel と関連して特に広く使用されているスプレッドシートのファイル形式です。スプレッドシートの実際のデータに加えて、XLSX ファイルには、ファイルのさまざまな側面を詳述するメタデータが含まれています。このメタデータには、ドキュメントのタイトル、作成者、作成日と変更日などの情報が含まれます。このメタデータにプログラムでアクセスすることで、開発者はタスクを自動化したり、分析を実施したり、アプリケーション内でユーザー エクスペリエンスを充実させたりすることができます。提供されている手順は、Java がインストールされていることを前提として、Windows、macOS、Linux などの一般的なオペレーティング システムと互換性があります。Java で XLSX のメタデータを抽出するために追加のソフトウェアをインストールする必要はありません。推奨ライブラリを構成し、それに応じてファイル パスを調整したら、次のコードをプロジェクトに統合すると、問題なくスムーズに進むはずです。

Java を使用して XLSX からメタデータを読み取るコード

import com.groupdocs.metadata.Metadata;
import com.groupdocs.metadata.core.FileFormat;
import com.groupdocs.metadata.core.IReadOnlyList;
import com.groupdocs.metadata.core.MetadataProperty;
import com.groupdocs.metadata.core.MetadataPropertyType;
import com.groupdocs.metadata.licensing.License;
import com.groupdocs.metadata.search.FallsIntoCategorySpecification;
import com.groupdocs.metadata.search.OfTypeSpecification;
import com.groupdocs.metadata.search.Specification;
import com.groupdocs.metadata.tagging.Tags;
import java.util.Calendar;
import java.util.Date;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ReadMetadataFromXLSXUsingJava {
public static void main(String[] args) {
// Set License to avoid the limitations of Metadata library
License license = new License();
license.setLicense("GroupDocs.Metadata.lic");
Metadata metadata = new Metadata("input.xlsx");
if (metadata.getFileFormat() != FileFormat.Unknown && !metadata.getDocumentInfo().isEncrypted()) {
System.out.println();
// Fetch all metadata properties that fall into a particular category
IReadOnlyList<MetadataProperty> properties = metadata.findProperties(new FallsIntoCategorySpecification(Tags.getContent()));
System.out.println("The metadata properties describing some characteristics of the file content: title, keywords, language, etc.");
for (MetadataProperty property : properties) {
System.out.println(String.format("Property name: %s, Property value: %s", property.getName(), property.getValue()));
}
// Fetch all properties having a specific type and value
int year = Calendar.getInstance().get(Calendar.YEAR);
properties = metadata.findProperties(new OfTypeSpecification(MetadataPropertyType.DateTime).and(new ReadMetadataFromXLSXUsingJava().new YearMatchSpecification(year)));
System.out.println("All datetime properties with the year value equal to the current year");
for (MetadataProperty property : properties) {
System.out.println(String.format("Property name: %s, Property value: %s", property.getName(), property.getValue()));
}
// Fetch all properties whose names match the specified regex
Pattern pattern = Pattern.compile("^author|company|(.+date.*)$", Pattern.CASE_INSENSITIVE);
properties = metadata.findProperties(new ReadMetadataFromXLSXUsingJava().new RegexSpecification(pattern));
System.out.println(String.format("All properties whose names match the following regex: %s", pattern.pattern()));
for (MetadataProperty property : properties) {
System.out.println(String.format("Property name: %s, Property value: %s", property.getName(), property.getValue()));
}
}
}
// Define your own specifications to filter metadata properties
public class YearMatchSpecification extends Specification {
public YearMatchSpecification(int year) {
setValue(year);
}
public final int getValue() {
return auto_Value;
}
private void setValue(int value) {
auto_Value = value;
}
private int auto_Value;
public boolean isSatisfiedBy(MetadataProperty candidate) {
Date date = candidate.getValue().toClass(Date.class);
if (date != null) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return getValue() == calendar.get(Calendar.YEAR);
}
return false;
}
}
public class RegexSpecification extends Specification {
private Pattern pattern;
public RegexSpecification(Pattern pattern) {
this.pattern = pattern;
}
@Override
public boolean isSatisfiedBy(MetadataProperty metadataProperty) {
Matcher matcher = pattern.matcher(metadataProperty.getName());
return matcher.find();
}
}
}

メタデータ ライブラリのおかげで、Java を使用して XLSX ファイルのメタデータから洞察を抽出するのは簡単です。このライブラリを使用すると、開発者は XLSX ファイル内に格納されている重要な情報にアクセスし、それをアプリケーションに簡単に組み込むことができます。ドキュメント管理の自動化、データ分析の実行、ユーザー エクスペリエンスの強化など、XLSX メタデータにプログラムでアクセスすると、Java 開発者に多くの機会がもたらされます。おめでとうございます。Java で XLSX のメタデータを取得する手法を習得できました。

以前の会話では、Java を使用して DOCX ファイルからメタデータを抽出する詳細なチュートリアルを紹介しました。このテーマをさらに深く理解するには、Javaを使用してDOCXからメタデータを読み取る の詳細なガイドを参照することをお勧めします。

 日本語