poi excel 2003怎么操作?poi读取excel 2003格式

在使用 Apache POI 处理 Excel 2003 格式(即 .xls 二进制格式)时,你需要使用 HSSF 接口。

以下是关于使用 POI 操作 Excel 2003 文件的核心要点、代码示例和注意事项:

【狂神说Java】POI及EasyExcel一小时搞定通俗易懂
加载中
【狂神说Java】POI及EasyExcel一小时搞定通俗易懂

核心类对应关系

概念 Excel 2003 (.xls) Excel 2007+ (.xlsx)
工作簿 HSSFWorkbook XSSFWorkbook
工作表 HSSFSheet XSSFSheet
行 HSSFRow XSSFRow
单元格 HSSFCell XSSFCell
样式 HSSFCellStyle XSSFCellStyle

注意:HSSF 代表 “Horrible SpreadSheet Format”,是 POI 中较老的技术实现,基于二进制格式。


Maven 依赖

确保你引入了正确的 POI 依赖:

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>5.2.3</version> <!-- 请使用最新稳定版 -->
</dependency>

poi excel 2003怎么操作?poi读取excel 2003格式

如果你需要处理 Excel 2007+ 格式,还需要引入 poi-ooxml,但对于纯 2003 格式,只需 poi 即可。


完整代码示例

✅ 示例 1:创建并写入 Excel 2003 文件

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.;
import java.io.FileOutputStream;
import java.io.IOException;
public class Excel2003Writer {
    public static void main(String[] args) {
        // 1. 创建工作簿 (HSSFWorkbook 对应 .xls)
        Workbook workbook = new HSSFWorkbook();
        // 2. 创建工作表
        Sheet sheet = workbook.createSheet("测试Sheet");
        // 3. 创建行 (索引从0开始)
        Row row = sheet.createRow(0);
        // 4. 创建单元格并设置值
        Cell cell = row.createCell(0);
        cell.setCellValue("Hello Excel 2003");
        // 5. 设置单元格样式(可选)
        CellStyle style = workbook.createCellStyle();
        Font font = workbook.createFont();
        font.setBold(true);
        font.setColor(IndexedColors.RED.getIndex());
        style.setFont(font);
        cell.setCellStyle(style);
        // 6. 写入文件
        try (FileOutputStream outputStream = new FileOutputStream("output_2003.xls")) {
            workbook.write(outputStream);
            System.out.println("Excel 2003 文件创建成功!");
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                workbook.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

✅ 示例 2:读取 Excel 2003 文件

import org.apache.p

poi excel 2003怎么操作?poi读取excel 2003格式

oi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.; import java.io.FileInputStream; import java.io.IOException; public class Excel2003Reader { public static void main(String[] args) { String filePath = "output_2003.xls"; try (FileInputStream fis = new FileInputStream(filePath); Workbook workbook = new HSSFWorkbook(fis)) { // 使用 HSSFWorkbook 读取 .xls Sheet sheet = workbook.getSheetAt(0); Row row = sheet.getRow(0); Cell cell = row.getCell(0); // 获取单元格值 if (cell != null) { switch (cell.getCellType()) { case STRING: System.out.println("单元格值: " + cell.getStringCellValue()); break; case NUMERIC: System.out.println("单元格值: " + cell.getNumericCellValue()); break; default: System.out.println("未知类型"); } } } catch (IOException e) { e.printStackTrace(); } } }

重要限制与注意事项

⚠️ 行数限制

  • Excel 2003 (.xls):最多支持 65,536 行 和 256 列。
  • 如果数据量超过此限制,必须使用 Excel 2007+ 格式(.xlsx),它支持 104 万行以上。

⚠️ 性能问题

  • HSSFWorkbook 将整个文件加载到内存中,对于大文件(即使未超行数限制)可能导致 OutOfMemoryError。
  • 如果处理大文件,建议使用 SXSSFWorkbook(针对 .xlsx)或考虑流式读取(但 HSSF 本身不支持流式读取,这是其设计缺陷)。

poi excel 2003怎么操作?poi读取excel 2003格式

⚠️ 格式兼容性

  • HSSF 不支持 Excel 2007+ 的新特性(如:图表、图片、宏、数据透视表等高级功能)。
  • 如果你需要写入图片、图表等,必须使用 XSSFWorkbook(.xlsx 格式)。

如何自动判断文件格式?

如果你不确定用户上传的文件是 .xls 还是 .xlsx,可以使用 WorkbookFactory 自动识别:

import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
import java.io.FileInputStream;
public class AutoDetectWorkbook {
    public static void main(String[] args) throws Exception {
        String filePath = "file.xls"; // 或 .xlsx
        try (FileInputStream fis = new FileInputStream(filePath)) {
            // 自动识别格式并创建对应的 Workbook 对象
            Workbook workbook = WorkbookFactory.create(fis);
            // 后续操作...
            Sheet sheet = workbook.getSheetAt(0);
            System.out.println("工作表名称: " + sheet.getSheetName());
            workbook.close();
        }
    }
}

推荐:除非有特殊需求(如兼容极老系统),否则建议优先使用 .xlsx 格式,因为它的功能更强大、性能更好、更稳定。


  • 使用 HSSFWorkbook 处理 Excel 2003 (.xls)。
  • 注意 65,536 行 的限制。
  • 对于新项目,建议直接使用 .xlsx 格式(XSSFWorkbook)。
  • 使用 WorkbookFactory.create() 可以自动兼容两种格式。

如有更多具体问题(如样式设置、合并单元格、读取大数据量等),欢迎继续提问!

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://test.idctop.com/article/480891.html

赞 (0)
债券价格excel怎么算?债券收益率计算公式
上一篇 2026年7月10日 16:15
H3C路由器域名解析失败怎么办?如何设置DNS服务器
下一篇 2026年7月10日 16:21

相关推荐

  • app开发运营怎么做?app开发运营推广方案详解

    App项目的成功交付,本质上是一场从需求洞察到商业变现的严密工程,其核心结论在于:开发与运营绝非割裂的两个阶段,而是必须贯穿项目全生命周期的统一有机体, 只有在开发初期就植入运营思维,在运营过程中持续反哺技术迭代,才能确保产品在激烈的市场竞争中存活并盈利,任何试图将二者割裂的做法,最终都会导致产品因脱离用户需求……

    2026年3月3日
    14300
  • 搬瓦工DC6 CN2 GIA实测如何?搬瓦工CN2 GIA速度稳定吗

    搬瓦工DC6 CN2 GIA深度测评:2026年最新网络性能与性价比解析在VPS服务器选型中,搬瓦工(BandwagonHost) 凭借其稳定的CN2 GIA线路,长期被视为回国优化的标杆产品,随着数据中心升级至DC6(Data Center 6) 节点,以及2026年网络基础设施的进一步迭代,该线路的实际表现……

    2026年7月6日
    5000
  • 开发桌面软件用什么语言最好,适合新手入门的是哪个?

    选择正确的技术栈是决定项目成败的关键因素,在构建高性能应用或跨平台工具时,开发者必须综合考量执行效率、开发周期以及UI交互的复杂度,目前市场上主流的方案各具千秋,没有绝对的优劣,只有适不适合,选择合适的开发桌面软件的语言,能够显著降低维护成本并提升用户体验,C++与Qt框架:高性能与底层控制的王者C++依然是桌……

    2026年2月23日
    14900
  • asp中的html

    在ASP(Active Server Pages)中,HTML是构建网页骨架的核心元素,ASP脚本则注入动态逻辑,共同创建交互式网站,ASP作为服务器端技术,处理请求并输出HTML内容到浏览器,实现数据驱动页面,用户登录时ASP验证数据库并生成个性化HTML响应,这种结合简化了开发,提升用户体验和SEO表现,下……

    2026年2月6日
    15130
  • 新加坡马来西亚RAKsmart站群服务器测评,RAKsmart站群服务器哪家好

    新加坡、马来西亚RAKsmart站群服务器测评:309美元/月方案实测对比在SEO优化与多站点运营领域,站群服务器(PBN Server)的选择直接决定了搜索引擎收录效率、排名稳定性以及整体运营成本,RAKsmart作为海外服务器市场的老牌服务商,以其高性价比的站群方案在SEO圈层中占据重要地位,本次测评聚焦其……

    程序开发 2026年5月25日
    4100
  • 如何用Python访问MySQL,pymysql怎么安装?

    当你的Python环境缺少pymysql模块时,完全可以通过mysql-connector-python、PyMySQL或mysqlclient等替代方案,让Python脚本成功访问MySQL数据库,并串联起JSP前端展示与Spark结果存储的完整数据链路,jsp连接mysql数据库的常见步骤与代码示例在Web……

    2026年8月2日
    700
  • ASP.NET表单验证怎么做?ASP.NET表单验证

    ASP.NET表单验证:构建安全可靠Web应用的基石ASP.NET表单验证是Web开发中保障数据完整性与安全性的核心机制,它充当着用户输入与服务器逻辑之间的“守门人”,确保提交的数据符合业务规则,有效拦截无效或恶意输入,防止系统漏洞和数据污染,表单验证的核心组件与机制ASP.NET提供了一套丰富且灵活的服务器端……

    2026年2月10日
    11300
  • c windows应用程序开发怎么做?Windows桌面开发教程

    在当前的软件开发领域,C语言凭借其底层控制能力强、执行效率高的特点,依然是构建高性能Windows应用程序的核心工具,核心结论在于:虽然高层框架层出不穷,但C语言在系统级编程、驱动开发以及对性能有极致要求的桌面应用中,具有不可替代的地位,掌握C语言进行Windows应用程序开发,关键在于深入理解Windows操……

    2026年3月25日
    9300
  • 软件开发技术报告怎么写,有哪些标准格式和模板?

    高质量的软件开发技术报告是项目成功的基石,它不仅是代码交付的凭证,更是团队协作、知识传递及系统维护的核心载体,一份专业且详尽的技术报告,能够将抽象的业务需求转化为可执行的工程方案,同时通过标准化的文档结构降低沟通成本,确保项目在生命周期内的可追溯性与可扩展性,构建此类报告,必须遵循严谨的工程逻辑,从需求分析到架……

    2026年2月24日
    15500
  • 开发潜能音乐真的有效吗?开发潜能音乐推荐

    开发潜能音乐并非简单的听觉享受,而是一种基于脑科学原理的高效认知干预手段,通过特定频率的声波刺激,能够有效诱导大脑进入Alpha波状态,从而打破常规思维限制,激活沉睡的神经连接,实现专注力、记忆力与创造力的全面提升,这种科学的音频训练方法,为现代人提供了一条低门槛、高效率的自我提升路径,大脑波频与潜能激活的科学……

    2026年3月15日
    11200

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注