1. 产品
  2.   Aspose.Cells
  3.   Aspose.Cells FOSS for Java

Aspose.Cells FOSS for Java

开源 Java 17 库,用于创建、加载、修改和保存 Excel .xlsx 工作簿。

Aspose.Cells FOSS — 开源 Java 电子表格库

开发者可以创建一个简单的Java17库. 无需任何商业 Aspose 运行时间,加载,修改和保存 Excel .xlsx 工作簿. 它将一个清洁的公开API暴露在com.aspose.cells_foss包下,并提供了 在MIT许可证下发布.

库涵盖了核心电子表格对象模型:工作簿,工作表,细胞, 支持的功能包括细胞值 (字符串,数字, 字体,边框,填充,对齐, 编程,数据验证,条件格式化,超链接等. 合并单元,定义名称,页面设置和工作表保护. 应用程序的FOSS为Java是用Maven 3.9+构建,目标是 Java 17+.添加它到 保存目前仅限于.xlsx格式. 对于更先进的功能,请参阅Aspose.Cells commercial edition.

工作簿和工作表管理

  • 使用资源试用模式创建新的工作簿 new Workbook()
  • 通过 getWorksheets().get(index) 或名字访问工作表
  • 改名工作表与 setName(),添加和删除页面,设置活跃的页
  • 通过 WorksheetViewModel控制工作表的可见性和标签颜色.

谁使用这个功能?

  • 在服务器端Java应用中生成报告工作簿
  • 在批量管道中自动创建多页 Excel 文档
  • 建立基于模板的电子表格生成工作流程
  • 没有安装Excel的程序性地分割或合并工作簿

单元值和公式

  • 使用 cell.putValue()StringintdoublebooleanLocalDateTime 设置单元格值
  • 通过 CellValueType 读取值类型:STRINGNUMBERBOOLEANDATE_TIMEFORMULA
  • 使用 cell.setFormula() 存储公式字符串;值类型变为 FORMULA
  • 通过 cell.getStringValue() 访问任意单元格值的字符串表示

谁使用这个功能?

  • 在服务器生成的电子表格中填写数据表和财务模型
  • 写出 Excel 将在开放中重新评估的计算字段
  • 读取和转换细胞数据用于下游处理.
  • 从Java域对象中构建输出类型数据

细胞格式和样式

  • 通过 Style 类(来自 cell.getStyle())应用字体、边框和填充
  • 通过 HorizontalAlignmentLEFTCENTERRIGHT)和 AlignmentValue 控制对齐
  • 使用 style.setCustom() 或内置的 NumberFormat 模式设置数字格式
  • 使用 getRows().get(n).setHeight()getColumns().get(n).setWidth() 调整行高和列宽

谁使用这个功能?

  • 在服务器上制作专业格式的报告,而无需Excel
  • 用大胆字体和自定义数字格式突出数据
  • 确保列宽与输出数据相匹配,而不需手动调整.
  • 在生成的工作表中应用一致品牌风格

自动过,验证和条件格式化

  • 使用 ws.getAutoFilter().setRange() 设置一个自动过范围.
  • 通过 FilterColumnAutoFilterCustomFilter 加上过列和自定义过 ?? 标准.
  • 使用 ValidationTypeOperatorTypesheet.getValidations().add() 定义数据验证规则.
  • 通过 FormatConditionCollectionFormatCondition 应用条件格式化

谁使用这个功能?

  • 在Excel中使用过器的互动数据表构建
  • 在共享电子表格中执行数字或基于列表的输入限制
  • 随条件的颜色规则自动突出范围之外的值.
  • 创建可见数据质量规则的审计准备工作表

页面设置和工作表保护

  • 使用 PageSetup 配置打印设置:纸张大小,方向,页面适合性,印刷区域
  • 通过 PrintOptionsModel 将网格线和标题切换为打印.
  • 使用 WorksheetProtectionModel 保护工作表和微调权限
  • 通过 HyperlinkHyperlinkCollection 在工作表中存储超链接.

谁使用这个功能?

  • 生成从Java后端服务中打印准备的发票和报告
  • 锁定公式单元,同时允许在未保护范围内输入数据.
  • 在生成的工作簿中嵌入页面之间的导航链接
  • 创建标准化输出,不需要手动页面设置才能正确打印

创建工作簿,写出价值观并保存

创建工作簿,设置单元格值和样式,调整行与列尺寸,并使用Workbook.save()将其保存为一个 .xlsx文件.

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 Main {
    public static void main(String[] args) {
        try (Workbook workbook = new Workbook()) ```java
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 Main {
    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");
            sheet.getCells().get("B1").putValue(12500.75);
            Cell total = sheet.getCells().get("B1");
            Style style = total.getStyle();
            style.getFont().setBold(true);
            style.setCustom("#,##0.00");
            total.setStyle(style);
            sheet.getCells().getRows().get(0).setHeight(22.0);
            sheet.getCells().getColumns().get(1).setWidth(14.5);
            workbook.save("report.xlsx");
        }
    }
}
}

}

载入诊断的工作簿

使用 LoadOptions 加载现有的 .xlsx 文件以启用修复模式,然后检查 加载诊断后再保存修改后的工作簿。

import com.aspose.cells_foss.LoadIssue;
import com.aspose.cells_foss.LoadOptions;
import com.aspose.cells_foss.Workbook;

public class LoadWorkbook {
    public static void main(String[] args) {
        LoadOptions options = new LoadOptions();
        options.setStrictMode(false);
        options.setTryRepairPackage(true);
        options.setTryRepairXml(true);
        try (Workbook workbook = new Workbook("input.xlsx", options)) {
            if (workbook.getLoadDiagnostics().hasRepairs()) {
                for (LoadIssue issue : workbook.getLoadDiagnostics().getIssues()) {
                    System.out.println(issue.getMessage());
                }
            }
            workbook.getDocumentProperties().setAuthor("cells-foss");
            workbook.save("output.xlsx");
        }
    }
}

数据验证和条件格式化

在单个工作簿中添加整数验证规则,并突出具有粗条件格式的合格细胞.

import com.aspose.cells_foss.CellArea;
import com.aspose.cells_foss.FormatCondition;
import com.aspose.cells_foss.FormatConditionCollection;
import com.aspose.cells_foss.FormatConditionType;
import com.aspose.cells_foss.OperatorType;
import com.aspose.cells_foss.Style;
import com.aspose.cells_foss.Validation;
import com.aspose.cells_foss.ValidationType;
import com.aspose.cells_foss.Workbook;
import com.aspose.cells_foss.Worksheet;

public class RulesExample {
    public static void main(String[] args) {
        try (Workbook workbook = new Workbook()) ```java
import com.aspose.cells_foss.CellArea;
import com.aspose.cells_foss.FormatCondition;
import com.aspose.cells_foss.FormatConditionCollection;
import com.aspose.cells_foss.FormatConditionType;
import com.aspose.cells_foss.OperatorType;
import com.aspose.cells_foss.Style;
import com.aspose.cells_foss.Validation;
import com.aspose.cells_foss.ValidationType;
import com.aspose.cells_foss.Workbook;
import com.aspose.cells_foss.Worksheet;

public class RulesExample {
    public static void main(String[] args) {
        try (Workbook workbook = new Workbook()) {
            Worksheet sheet = workbook.getWorksheets().get(0);
            int vi = sheet.getValidations().add(new CellArea(1, 0, 10, 1));
            Validation validation = sheet.getValidations().get(vi);
            validation.setType(ValidationType.WHOLE_NUMBER);
            validation.setOperator(OperatorType.BETWEEN);
            validation.setFormula1("1");
            validation.setFormula2("100");
            int cfIndex = sheet.getConditionalFormattings().add();
            FormatConditionCollection conditions = sheet.getConditionalFormattings().get(cfIndex);
            conditions.addArea(CellArea.createCellArea("B2", "B11"));
            int condIndex = conditions.addCondition(
                FormatConditionType.CELL_VALUE, OperatorType.BETWEEN, "1", "100");
            FormatCondition condition = conditions.get(condIndex);
            Style style = condition.getStyle();
            style.getFont().setBold(true);
            condition.setStyle(style);
            workbook.save("rules.xlsx");
        }
    }
}
}

}

  

支持和学习资源

 中文