Java:创建、读取或更新 Excel 文档

Java:创建、读取或更新 Excel 文档

还在用Java代码逐行"雕刻"Excel文档吗?是时候升级你的生产力工具箱了。借助Spire.XLS for Java,无论是创建新报表、读取关键数据还是实时更新内容,现在你都能以简单的代码指令轻松实现。让我们一起,把繁琐的文档操作变成一次流畅的自动化之旅。


Java操作Excel的常见挑战与解决方案概述

处理Excel时,Java原生API往往力不从心,而Apache POI虽功能全面,但在高性能和简洁API场景下,我们可能需要更优解。

Spire.XLS for Java正是这样一个轻量而强大的选择。它提供了直观的面向对象API,让你用寥寥几行代码,就能轻松搞定Excel的创建、读取和更新,同时完美支持公式、图表等高级功能。

下面通过关键代码,一探究竟。


使用Spire.XLS for Java创建Excel文档

创建Excel文档是Excel操作的基础。Spire.XLS for Java使得这一过程变得异常简单。

java 复制代码
import com.spire.xls.*;
import com.spire.xls.collections.WorksheetsCollection;

public class CreateExcelDoc {
    public static void main(String[] args) {
        // 创建一个新的工作簿对象
        Workbook workbook = new Workbook();

        // 获取第一个工作表(默认会有一个)
        Worksheet sheet = workbook.getWorksheets().get(0);

        // 设置工作表名称
        sheet.setName("销售数据");

        // 写入数据到单元格
        sheet.getCellRange("A1").setText("产品名称");
        sheet.getCellRange("B1").setText("销售额");
        sheet.getCellRange("A2").setText("T恤");
        sheet.getCellRange("B2").setNumberValue(1250.50);
        sheet.getCellRange("A3").setText("裤子");
        sheet.getCellRange("B3").setNumberValue(899.00);

        // 设置单元格样式
        CellStyle style = sheet.getCellRange("A1:B1").getStyle();
        style.getFont().setKnownColor(ExcelColors.White);
        style.getFillPattern().setKnownColor(ExcelColors.DarkBlue);
        style.getFont().setBold(true);

        // 自动调整列宽
        sheet.autoFitColumn(1);
        sheet.autoFitColumn(2);

        // 保存Excel文件
        try {
            workbook.saveToFile("CreateExcelDoc.xlsx", ExcelVersion.Version2016);
            System.out.println("Excel文档创建成功!");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

上述代码演示了如何创建一个新的Excel工作簿,添加工作表,写入文本和数字数据,设置单元格样式,并最终保存为.xlsx格式。整个过程直观明了,API设计符合开发者的直觉。


读取和更新现有Excel文档

读取和更新是Excel操作中同样重要的环节。Spire.XLS for Java提供了灵活的API来加载现有文件,定位并修改数据。

java 复制代码
import com.spire.xls.*;

public class ReadAndUpdateExcelDoc {
    public static void main(String[] args) {
        // 加载现有Excel文件
        Workbook workbook = new Workbook();
        try {
            workbook.loadFromFile("CreateExcelDoc.xlsx");
        } catch (Exception e) {
            e.printStackTrace();
            return;
        }

        // 获取第一个工作表
        Worksheet sheet = workbook.getWorksheets().get(0);

        // 读取特定单元格数据
        String productName = sheet.getCellRange("A2").getText();
        double salesAmount = sheet.getCellRange("B2").getNumberValue();
        System.out.println("读取数据:产品名称 - " + productName + ", 销售额 - " + salesAmount);

        // 更新单元格内容
        sheet.getCellRange("A4").setText("外套");
        sheet.getCellRange("B4").setNumberValue(1500.00);
        System.out.println("已添加新产品:外套,销售额:1500.00");

        // 修改已有单元格数据
        sheet.getCellRange("B3").setNumberValue(950.00);
        System.out.println("已更新裤子销售额为:950.00");

        // 插入一行
        sheet.insertRow(3); // 在第3行插入新行
        sheet.getCellRange("A3").setText("鞋子");
        sheet.getCellRange("B3").setNumberValue(750.00);
        System.out.println("已插入新行:鞋子,销售额:750.00");


        // 保存修改后的Excel文件
        try {
            workbook.saveToFile("UpdatedExcelDoc.xlsx", ExcelVersion.Version2016);
            System.out.println("Excel文档更新成功!");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

此示例展示了如何加载一个已存在的Excel文件,读取指定单元格的内容,以及如何更新单元格数据和插入新行。Spire.XLS for Java的API设计直观,即使是复杂的操作也能通过几行代码实现。


总结

相信现在你已掌握了用Spire.XLS操作Excel的核心技巧,不妨在项目中一试身手。让代码帮你搞定重复劳动,把时间留给更有价值的技术挑战。希望这个方案能成为你的得力助手,让文档处理变得轻松高效!

相关推荐
daidaidaiyu7 小时前
ThingsBoard 集群的核心逻辑源码分析
java
我可能是个假开发7 小时前
FTP Unicode 文件名导致 `550` 的问题分析与解决方案
java·开发语言·spring
caoerzhong8 小时前
中小企业上 WMS 该先上哪几块:JeeWMS 开源 Java 仓库管理系统的分批上线清单
java·python·开源
【JAVA】玩家9 小时前
Spring核心原理全解析:从零到生产实战
java·后端·spring
Wang's Blog9 小时前
Java框架 SpringCloud 快速入门: 实现 Feign 最佳实践(抽取方式)
java·spring cloud
MandalaO_O10 小时前
IDEA 开发(快捷键 + 调试 + 序列化)
java·ide·intellij-idea
xiaoqiMikko11 小时前
JVM 线上排查实战(七):jps 看不见它、jstack 连不上它,可它明明活得好好的
java·jvm
狼爷11 小时前
Rust/Go/Java/Python/PHP 大比拼:负载下后端框架到底差多少?
java·后端·编程语言
念何架构之路11 小时前
zap扩展生态与总结
java·前端·数据库
第七页独白12 小时前
汽车零件厂如何通过 QMS 真正落地 IATF 16949——QMS软件系统:品质检验-内审稽核-8d客诉管理:全星质量管理软件系统
java·前端·数据库