در توسعه نرمافزاری معاصر، ظرفیت استخراج و مدیریت ابرداده از فایلها نقشی اساسی در برنامههای مختلف دارد. فراداده، شامل دادههایی مانند تألیف، تاریخ ایجاد، و ویژگیهای سند، بینشهای ارزشمندی را در مورد فایلها ارائه میدهد و مدیریت مؤثر فایل را تسهیل میکند. به طور خاص برای فایلهای اکسل در قالب .xlsx، دسترسی برنامهای به ابرداده بسیار سودمند است. این راهنما به فرآیند خواندن فراداده از XLSX با استفاده از زبان برنامه نویسی Java** می پردازد. در اینجا، مراحل ضروری را به همراه یک مثال کد که نحوه خواندن فراداده XLSX با استفاده از جاوا را نشان می دهد، پیدا خواهید کرد.
مراحل خواندن فراداده از XLSX با استفاده از جاوا
- IDE خود را طوری تنظیم کنید که از GroupDocs.Metadata for Java برای استخراج فراداده از فایلهای XLSX استفاده کند.
- یک نمونه از کلاس Metadata ایجاد کنید و مسیر فایل فایل XLSX را به عنوان آرگومان به سازنده آن ارسال کنید.
- یک قانون یا شرط برای بررسی تمام ویژگی های ابرداده ایجاد کنید
- یک شرط برای متد Metadata.findProperties تعریف کنید
- از طریق ویژگی های بازیابی شده حلقه بزنید
XLSX به عنوان یک فرمت فایل پرکاربرد برای صفحات گسترده، به ویژه با مایکروسافت اکسل مرتبط است. علاوه بر دادههای واقعی صفحهگسترده، فایلهای XLSX شامل ابردادههایی هستند که جنبههای مختلف فایل را با جزئیات شرح میدهند. این ابرداده شامل اطلاعاتی مانند عنوان سند، تألیف، تاریخ ایجاد و اصلاح و غیره است. دسترسی برنامهریزی شده به این ابرداده، توسعهدهندگان را قادر میسازد تا وظایف را خودکار، انجام تجزیه و تحلیل یا غنیسازی تجربیات کاربر در برنامههای خود کنند. دستورالعمل های ارائه شده با سیستم عامل های محبوب مانند Windows، macOS و Linux سازگار است، با این فرض که جاوا را نصب کرده اید. برای استخراج ابرداده XLSX در جاوا نیازی به نصب نرم افزار اضافی نیست. پس از پیکربندی کتابخانه پیشنهادی و تنظیم مسیرهای فایل بر این اساس، ادغام کد زیر در پروژه های شما باید به آرامی و بدون هیچ مشکلی انجام شود.
کد برای خواندن فراداده از 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(); | |
} | |
} | |
} |
به لطف کتابخانه ابرداده، استخراج اطلاعات از فراداده فایل XLSX با استفاده از جاوا ساده است. این کتابخانه به توسعه دهندگان اجازه می دهد تا به اطلاعات حیاتی ذخیره شده در فایل های XLSX دسترسی داشته باشند و به راحتی آن ها را در برنامه های خود قرار دهند. خواه مدیریت خودکار اسناد، انجام تجزیه و تحلیل دادهها، یا افزایش تجربیات کاربر، دسترسی برنامهریزی شده به فراداده XLSX فرصتهای فراوانی را برای توسعهدهندگان جاوا ایجاد میکند. تبریک می گویم! شما با موفقیت بر تکنیک دریافت فراداده XLSX در جاوا مسلط شدید.
در گفتگوی قبلی، آموزش مفصلی در مورد استخراج ابرداده از فایل های DOCX با استفاده از جاوا ارائه کردیم. برای درک عمیقتر این موضوع، پیشنهاد میکنیم با راهنمای جامع ما در مورد نحوه خواندن ابرداده از DOCX با استفاده از جاوا مشورت کنید.