从入门到精通:在Java中实现Excel表格操作

发布时间:2023/10/26 19:10 发布者:Leo

返回博客中心

前言

表格是Excel中非常常见的功能,它可以帮助我们更加简单高效地管理和分析数据。在本文中,将为大家介绍如何在Java中完成表格的一些常见操作:

  • 创建表格
  • 删除表格
  • 排序
  • 操作行列
  • 样式

在Java中实现Excel表格操作的方法

1.添加测试数据

代码如下,接收一个 workbook 的对象,并且在 A1:F7 设置测试数据,用于表格使用。

private void exampleData(Workbook wb) {
    IWorksheet sheet = wb.getWorksheets().get(0);
    Object data = new Object[][]{
            {"Name", "City", "Birthday", "Eye color", "Weight", "Height"},
            {"Richard", "New York", new GregorianCalendar(1968, 5, 8), "Blue", 67, 165},
            {"Nia", "New York", new GregorianCalendar(1972, 6, 3), "Brown", 62, 134},
            {"Jared", "New York", new GregorianCalendar(1964, 2, 2), "Hazel", 72, 180},
            {"Natalie", "Washington", new GregorianCalendar(1972, 7, 8), "Blue", 66, 163},
            {"Damon", "Washington", new GregorianCalendar(1986, 1, 2), "Hazel", 76, 176},
            {"Angela", "Washington", new GregorianCalendar(1993, 1, 15), "Brown", 68, 145}
    };

    sheet.getRange("A1:F7").setValue(data);
    sheet.getRange("A:F").setColumnWidth(15);
}

2.创建表格

public void createTable(){
    Workbook wb = new Workbook();
    exampleData(wb);
    IWorksheet sheet = wb.getWorksheets().get(0);
    sheet.getTables().add(sheet.getRange("A1:F7"), true);
    wb.save("output/createTable.xlsx");
}

结果如下:

3.删除表格

通过ITable上的delete,可以直接删除表格。

public void deleteTable(){
    Workbook wb = new Workbook();
    wb.open("output/createTable.xlsx");
    IWorksheet sheet = wb.getWorksheets().get(0);
    sheet.getTables().get(0).delete();
    wb.save("output/removeTable.xlsx");
}

结果如下:

4.数据排序

public void sortTable(){
    Workbook wb = new Workbook();
    wb.open("output/createTable.xlsx");
    IWorksheet sheet = wb.getWorksheets().get(0);
    ITable table = sheet.getTables().get(0);

    ValueSortField key1 = new ValueSortField(sheet.getRange("A1:A2"), SortOrder.Ascending);
    table.getSort().getSortFields().add(key1);
    table.getSort().apply();

    wb.save("output/TableSort.xlsx");
}

结果如下:

5.操作行列

public void editRowColumn(){
    Workbook wb = new Workbook();
    wb.open("output/createTable.xlsx");
    IWorksheet sheet = wb.getWorksheets().get(0);
    ITable table = sheet.getTables().get(0);

    table.getColumns().add(0);
    table.getColumns().add(1);

    table.getColumns().get(0).delete();
    table.getColumns().get("City").delete();

    table.getRows().add();
    table.getRows().get(1).delete();

    wb.save("output/InsertDeleteTableRowColumns.xlsx");
}

结果如下:

6.修改样式

public void SetStyle(){
    Workbook wb = new Workbook();
    wb.open("output/createTable.xlsx");
    IWorksheet sheet = wb.getWorksheets().get(0);
    ITable table = sheet.getTables().get(0);
    ITableStyle style = wb.getTableStyles().add("test");
    table.setTableStyle(style);

    ITableStyle tableStyle = wb.getTableStyles().get("TableStyleMedium3");
    table.setTableStyle(tableStyle);

    wb.save("output/ApplyTableStyle.xlsx");
}

结果如下:

总结

以上就是在 Java 中实现Excel表格操作的基本用法,如果您想了解更多信息,可以参考这篇帮助手册在线Demo,无论是初学者还是有经验的专业人士,都将为您提供有价值的指导和帮助。


GcExcel | 下载试用

GrapeCity Documents for Excel (简称:GcExcel)是一款基于 Java 平台的服务端高性能表格组件,可与纯前端表格控件 SpreadJS 前后端兼容,无需依赖 Office、POI 或第三方应用软件,在前端展示电子表格数据,在服务端批量创建、加载、编辑、打印、导入/导出 Excel 文档,为您开发的应用程序提供在线文档的前后端数据同步、在线填报与服务端批量导出与打印,以及类 Excel 报表模板设计与服务端高性能处理等一整套类 Excel 全栈解决方案