現代のソフトウェア開発では、ファイルからメタデータを抽出して処理する能力が、さまざまなアプリケーションで重要な役割を果たしています。作成者、作成日、ドキュメントのプロパティなどのデータを含むメタデータは、ファイルに関する貴重な洞察を提供し、効果的なファイル管理を容易にします。特に、.xlsx 形式の Excel ファイルの場合、プログラムでメタデータにアクセスすると非常に有利になります。このガイドでは、Java プログラミング言語を使用して XLSX からメタデータを読み取る 方法について詳しく説明します。ここでは、Java を使用して XLSX のメタデータを読み取る 方法を示すコード例とともに、重要な手順を紹介します。
Java を使用して XLSX からメタデータを読み取る手順
- GroupDocs.Metadata for Java を利用して XLSX ファイルからメタデータを抽出できるように IDE を設定します
- Metadata クラスのインスタンスを作成し、XLSX ファイルのファイル パスをコンストラクタの引数として渡します。
- すべてのメタデータ属性を調べるためのルールまたは条件を作成する
- Metadata.findProperties メソッドの条件を定義する
- 取得したプロパティをループする
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からメタデータを読み取る の詳細なガイドを参照することをお勧めします。