مقدمه
Aspose.Cells FOSS for Java مجموعهای جامع از قابلیتهای صفحهگسترده فراهم میکند
برای برنامههای Java 17. تحت مجوز MIT منتشر شده و بهعنوان یک
آرتیفکت استاندارد Maven، کتابخانه همه چیز را از ایجاد کتابکار پایه
تا مقادیر سلولهای تایپشده، قالببندی پیشرفته، اعتبارسنجی دادهها و AutoFilter — همه
بدون وابستگی به Microsoft Office.
این پست به مرور مناطق اصلی ویژگیها میپردازد و مثالهای کد متمرکز استخراجشده از
سطح API تأیید شده. تمام نامهای کلاس و متدهای نشاندادهشده در زیر در کتابخانه وجود دارند
و در نسخه 1.0.0 در دسترس هستند.
ویژگیهای کلیدی
مدیریت کتاب کار و برگه کاری
کلاس Workbook AutoCloseable را پیادهسازی میکند تا بهصورت یکپارچه با
الگوی Java try-with-resources یکپارچه شود. میتوانید یک کتابکار خالی ایجاد کنید، یک موجود را بارگذاری کنید،.xlsx فایل، نامبرگهها را تغییر دهید، برگهها را اضافه یا حذف کنید، برگه فعال را تنظیم کنید، و
قابلیت نمایش تبها را کنترل کنید.
import com.aspose.cells_foss.Workbook;
import com.aspose.cells_foss.Worksheet;
try (Workbook workbook = new Workbook()) {
Worksheet sheet = workbook.getWorksheets().get(0);
sheet.setName("Q1 Report");
workbook.getWorksheets().addSheet("Summary");
workbook.save("report.xlsx");
}
مقادیر سلولهای تایپشده و فرمولها
کلاس Cell مقادیر تایپشده را از طریق putValue() برای String، int، double,
boolean و LocalDateTime میپذیرد. متد getType() یک مقدار enum CellValueType را برمیگرداند — STRING، NUMBER، BOOLEAN، DATE_TIME یا FORMULA — که باعث میشود بهراحتی
بر اساس نوع مقدار بدون تجزیه رشتهها شاخهبندی کنید. رشتههای فرمول با
setFormula() ذخیره میشوند و هنگام باز کردن توسط Excel دوباره محاسبه میشوند.
import com.aspose.cells_foss.Cell;
import com.aspose.cells_foss.CellValueType;
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(42500.00);
Cell c1 = sheet.getCells().get("C1");
c1.setFormula("=B1*1.2");
// Check type
assert b1.getType() == CellValueType.NUMBER;
assert c1.getType() == CellValueType.FORMULA;
workbook.save("values.xlsx");
}
قالببندی سلول و سبکها
قالببندی از طریق شیء Style که از cell.getStyle() بازیابی میشود اعمال میگردد و با cell.setStyle() بازنویسی میشود. زیرشیء Font، setBold() و setColor() را در دسترس قرار میدهد. HorizontalAlignment ترازبندی متن را کنترل میکند — LEFT، CENTER یا RIGHT. قالبهای عددی سفارشی از رشتههای قالب Excel از طریق style.setCustom() استفاده میکنند. ارتفاع ردیف و عرض ستون از طریق getRows().get(n).setHeight() و getColumns().get(n).setWidth() تنظیم میشوند.
import com.aspose.cells_foss.Cell;
import com.aspose.cells_foss.Style;
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.50);
Style style = cell.getStyle();
style.getFont().setBold(true);
style.setCustom("#,##0.00");
cell.setStyle(style);
sheet.getCells().getRows().get(0).setHeight(24.0);
sheet.getCells().getColumns().get(1).setWidth(16.0);
workbook.save("styled.xlsx");
}
اعتبارسنجی دادهها
قواعد اعتبارسنجی دادهها از طریق sheet.getValidations().add() اضافه میشوند. هر شیء Validation یک ValidationType میگیرد (مثلاً WHOLE_NUMBER، DECIMAL، LIST) و یک OperatorType (مثلاً BETWEEN، GREATER_THAN). حدود فرمول بهصورت رشتهها از طریق setFormula1() و setFormula2() ذخیره میشوند.
import com.aspose.cells_foss.CellArea;
import com.aspose.cells_foss.OperatorType;
import com.aspose.cells_foss.Validation;
import com.aspose.cells_foss.ValidationType;
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 به کاربران نهایی اجازه میدهد تا بهصورت تعاملی دادهها را در Excel فیلتر کنند بدون هیچ پیکربندی اضافی
فراخوانی ws.getAutoFilter().setRange() با یک بازه بهصورت A1-notation برای
فعالسازی ردیف سرصفحه فیلتر. ستونهای فیلتر اضافی و معیارهای سفارشی میتوانند
از طریق FilterColumn و AutoFilterCustomFilter تعریف شوند.
import com.aspose.cells_foss.Workbook;
import com.aspose.cells_foss.Worksheet;
try (Workbook workbook = new Workbook()) {
Worksheet sheet = workbook.getWorksheets().get(0);
sheet.getCells().get("A1").putValue("Product");
sheet.getCells().get("B1").putValue("Qty");
sheet.getAutoFilter().setRange("A1:B1");
workbook.save("filtered.xlsx");
}
تنظیم صفحه و حفاظت از برگه کاری
کلاس PageSetup اندازه کاغذ، جهت صفحه و تنظیمات تناسب با صفحه را برای خروجی آماده چاپ کنترل میکند. حفاظت از کاربرگ از طریق protect() با یک WorksheetProtectionModel اعمال میشود که به سلولهای خاص اجازه ویرایش میدهد در حالی که بقیه قفل میشوند. هایپرلینکها از طریق HyperlinkCollection مدیریت میشوند.
شروع سریع
وابستگی را به 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("Sales");
sheet.getCells().get("A1").putValue("Revenue");
Cell b1 = sheet.getCells().get("B1");
b1.putValue(42500.00);
Style style = b1.getStyle();
style.getFont().setBold(true);
style.setCustom("#,##0.00");
b1.setStyle(style);
sheet.getAutoFilter().setRange("A1:B1");
workbook.save("sales.xlsx");
}
}
}
قالبهای پشتیبانیشده
| قالب | پسوند | خواندن | نوشتن |
|---|---|---|---|
| Excel Open XML | .xlsx | ✓ | ✓ |
در حال حاضر ذخیرهسازی محدود به .xlsx است. این کتابخانه فرمولها را ذخیره و بهصورت round‑trip نگهداری میکند اما بهعنوان یک موتور محاسبه کامل برای صفحهگسترده عمل نمیکند.
منبع باز و مجوزدهی
Aspose.Cells FOSS برای جاوا تحت مجوز MIT منتشر شده است. شما آزاد هستید که استفاده, تغییر دهید، و آن را در پروژههای شخصی، منبع باز و تجاری بدون محدودیت. کد منبع در دسترس است در github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Java.