مقدمه
Aspose.Cells FOSS for Java یک کتابخانه منبع باز برای Java 17 است که به توسعهدهندگان امکان ایجاد، بارگذاری، اصلاح و ذخیرهٔ کتابکارهای Excel .xlsx را بهصورت کامل بر روی JVM میدهد — بدون نیاز به نصب Microsoft Office، بدون کتابخانههای بومی، و بدون وابستگی به زماناجرای تجاری Aspose. API عمومی در بستهٔ com.aspose.cells_foss قرار دارد و تحت مجوز MIT منتشر شده است، بهطوری که برای پروژههای شخصی، منبع باز و تجاری مناسب است.
کتابخانه بهصورت یک آرشیو استاندارد Maven ارائه میشود و مدل شیء اصلی صفحهگسترده OOXML را پوشش میدهد: کتابکارها، برگههای کاری، سلولها، سبکها و مجموعهها. این کتابخانه با Maven 3.9+ ساخته شده و هدفگذاری برای Java 17+ دارد و بهطور طبیعی در هر خط لوله ساخت مدرن Java یکپارچه میشود.
وابستگی را به pom.xml خود اضافه کنید و آمادهاید تا کتابکارهای Excel را از یک سرولت، یک کار دستهای، یک تابع Lambda یا هر زمینه سرور‑ساید دیگر جاوا تولید یا پردازش کنید.
ویژگیهای کلیدی
مدیریت کتاب کار و برگه کاری
کلاس Workbook نقطهٔ ورود برای تمام عملیاتهای صفحهگسترده است. این کلاس AutoCloseable را پیادهسازی میکند
تا بهصورت یکپارچه با الگوی try-with-resources کار کند. میتوانید
کتابکارهای جدید ایجاد کنید، فایلهای .xlsx موجود را بارگذاری کنید، ورقهای کاری را اضافه یا حذف کنید، ورقها را با setName() تغییر نام دهید،
ورق فعال را تنظیم کنید و نمایش تبها را کنترل کنید.
import com.aspose.cells_foss.Workbook;
import com.aspose.cells_foss.Worksheet;
import com.aspose.cells_foss.WorksheetCollection;
try (Workbook workbook = new Workbook()) {
WorksheetCollection sheets = workbook.getWorksheets();
Worksheet sheet = sheets.get(0);
sheet.setName("Sales");
workbook.save("sales.xlsx");
}
مقادیر سلول و فرمولها
کلاس Cell از ذخیرهسازی مقدارهای تایپشده از طریق putValue() برای رشتهها، اعداد صحیح،
اعداد اعشاری، مقادیر بولی و مقادیر LocalDateTime پشتیبانی میکند. رشتههای فرمول با setFormula() ذخیره میشوند و هنگام باز شدن توسط اکسل دوباره محاسبه میشوند. نوع مقدار از طریق CellValueType — STRING، NUMBER، BOOLEAN، DATE_TIME یا FORMULA در دسترس است.
import com.aspose.cells_foss.Cell;
import com.aspose.cells_foss.Workbook;
import com.aspose.cells_foss.Worksheet;
try (Workbook workbook = new Workbook()) {
Worksheet sheet = workbook.getWorksheets().get(0);
Cell a1 = sheet.getCells().get("A1");
a1.putValue("Revenue");
Cell b1 = sheet.getCells().get("B1");
b1.putValue(12500.75);
Cell c1 = sheet.getCells().get("C1");
c1.setFormula("=B1*1.2");
workbook.save("values.xlsx");
}
قالببندی سلولها و سبکها
قالببندی از طریق کلاس Style اعمال میشود، که از cell.getStyle() بازیابی شده و با cell.setStyle() بازنویسی میگردد. میتوانید ضخیم و رنگ را در Font پیکربندی کنید، HorizontalAlignment را اعمال کنید و رشتههای قالب عددی سفارشی را از طریق style.setCustom() تنظیم کنید. ارتفاع ردیف و عرض ستون از طریق getRows().get(n).setHeight() و getColumns().get(n).setWidth() کنترل میشوند.
import com.aspose.cells_foss.Style;
import com.aspose.cells_foss.Cell;
import com.aspose.cells_foss.Workbook;
import com.aspose.cells_foss.Worksheet;
try (Workbook workbook = new Workbook()) {
Worksheet sheet = workbook.getWorksheets().get(0);
Cell cell = sheet.getCells().get("B1");
cell.putValue(9999.5);
Style style = cell.getStyle();
style.getFont().setBold(true);
style.setCustom("#,##0.00");
cell.setStyle(style);
workbook.save("styled.xlsx");
}
اعتبارسنجی داده و قالببندی شرطی
قواعد اعتبارسنجی دادهها از طریق sheet.getValidations().add() اضافه میشوند. هر شیء Validation شامل یک ValidationType (مثلاً WHOLE_NUMBER)، یک OperatorType (مثلاً BETWEEN) و رشتههای فرمول برای حدود است. قالببندی شرطی از طریق sheet.getConditionalFormattings().add() اضافه میشود که یک FormatConditionCollection برمیگرداند که در آن محدودههای سلول و شرایط را مشخص میکنید.
import com.aspose.cells_foss.CellArea;
import com.aspose.cells_foss.Validation;
import com.aspose.cells_foss.ValidationType;
import com.aspose.cells_foss.OperatorType;
import com.aspose.cells_foss.Workbook;
import com.aspose.cells_foss.Worksheet;
try (Workbook workbook = new Workbook()) {
Worksheet sheet = workbook.getWorksheets().get(0);
int vi = sheet.getValidations().add(new CellArea(1, 0, 10, 0));
Validation validation = sheet.getValidations().get(vi);
validation.setType(ValidationType.WHOLE_NUMBER);
validation.setOperator(OperatorType.BETWEEN);
validation.setFormula1("1");
validation.setFormula2("100");
workbook.save("validated.xlsx");
}
فیلترهای خودکار و تنظیمات صفحه
AutoFilters با فراخوانی ws.getAutoFilter().setRange() همراه با رشته محدوده با نمادگذاری A1 پیکربندی میشوند.
شیء PageSetup اندازه کاغذ، جهتگیری و تنظیمات متناسبسازی با صفحه را برای خروجی آماده چاپ کنترل میکند.
حفاظت از کاربرگ از طریق protect() با یک WorksheetProtectionModel اعمال میشود.
شروع سریع
وابستگی Maven را به pom.xml خود اضافه کنید:
<dependency>
<groupId>com.aspose</groupId>
<artifactId>cells-foss</artifactId>
<version>1.0.0</version>
</dependency>
یک کتابکار ایجاد کنید، سلولها را پر کنید، قالببندی اعمال کنید و ذخیره کنید:
import com.aspose.cells_foss.Cell;
import com.aspose.cells_foss.Style;
import com.aspose.cells_foss.Workbook;
import com.aspose.cells_foss.Worksheet;
public class QuickStart {
public static void main(String[] args) {
try (Workbook workbook = new Workbook()) {
Worksheet sheet = workbook.getWorksheets().get(0);
sheet.setName("Report");
sheet.getCells().get("A1").putValue("Revenue");
Cell cell = sheet.getCells().get("B1");
cell.putValue(12500.75);
Style style = cell.getStyle();
style.getFont().setBold(true);
style.setCustom("#,##0.00");
cell.setStyle(style);
sheet.getCells().getRows().get(0).setHeight(22.0);
sheet.getCells().getColumns().get(1).setWidth(14.5);
workbook.save("report.xlsx");
}
}
}
قالبهای پشتیبانیشده
| قالب | پسوند | خواندن | نوشتن |
|---|---|---|---|
| Excel Open XML | .xlsx | ✓ | ✓ |
ذخیرهسازی در حال حاضر محدود به .xlsx است. کتابخانه فرمولها را ذخیره و بهصورت round‑trip منتقل میکند، اما یک موتور محاسبه کامل برای صفحهگسترده نیست.
منبع باز و مجوزدهی
Aspose.Cells FOSS برای جاوا تحت مجوز MIT منتشر شده است. شما میتوانید آن را در پروژههای شخصی، منبع باز و تجاری بدون هیچ محدودیتی استفاده، تغییر و توزیع کنید. کد منبع در دسترس است در github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Java.