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的核心技巧,不妨在项目中一试身手。让代码帮你搞定重复劳动,把时间留给更有价值的技术挑战。希望这个方案能成为你的得力助手,让文档处理变得轻松高效!

相关推荐
刺客xs12 分钟前
c++模板
java·开发语言·c++
C+-C资深大佬42 分钟前
C++ 性能优化 专业详解
java·c++·性能优化
程序员老乔44 分钟前
Java 新纪元 — JDK 25 + Spring Boot 4 全栈实战(三):虚拟线程2.0,电商秒杀场景下的并发革命
java·开发语言·spring boot
weixin_404157681 小时前
Java高级面试与工程实践问题集(四)
java·开发语言·面试
cyforkk1 小时前
Spring AOP 核心揭秘:ProceedingJoinPoint 与反射机制详解
java·python·spring
无限进步_1 小时前
【C++】单词反转算法详解:原地操作与边界处理
java·开发语言·c++·git·算法·github·visual studio
wyiyiyi1 小时前
【线性代数】对偶空间与矩阵转置及矩阵分解(Java讲解)
java·线性代数·支持向量机·矩阵·数据分析
你这个代码我看不懂1 小时前
磁盘的存储原理
java
PyAIGCMaster1 小时前
开发了一个全自动接入wordpress的saas发文章的网站,记录一下如何实现,有需要的朋友联系。
java·开发语言·数据库
研究点啥好呢1 小时前
3月21日GitHub热门项目推荐|攻守兼备,方得圆满
java·c++·python·开源·github