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://idctop.com/article/480891.html

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

相关推荐

  • 服务器1m内存用户签到存储怎么设计?1m内存能支持多少用户签到

    在极低配置的服务器环境中,尤其是仅有1m内存的极端限制下,用户签到数据的存储设计不再是一个简单的数据库CRUD操作,而是一场关于“比特级”优化的生存战役,核心结论非常明确:在1m内存的服务器上存储用户签到数据,必须彻底摒弃传统关系型数据库思维,转而采用“位图+时间分片+冷热分离”的组合策略,将单个用户一年的签到……

    2026年4月9日
    8500
  • 服务器CPU等待内存怎么回事,CPU等待内存过高怎么解决

    服务器 CPU 等待内存是制约系统性能的最常见瓶颈,其本质并非硬件算力不足,而是数据供给与计算需求之间的严重错位,当 CPU 核心因等待内存数据读写而处于空闲状态时,系统吞吐量会断崖式下跌,响应延迟显著增加,解决这一问题的核心在于优化内存带宽利用率、降低内存访问延迟以及实施合理的内存预取策略,而非单纯堆砌 CP……

    程序编程 2026年4月19日
    7500
  • 服务器ip地址应该怎么设置?服务器IP配置教程

    服务器IP地址的设置核心在于确保网络参数的精准匹配与网络环境的兼容性,正确的设置流程必须遵循“确认网络模式—获取分配参数—配置系统接口—验证连通性”这一逻辑闭环,任何环节的偏差都可能导致服务器失联,对于绝大多数生产环境而言,静态IP地址的配置是保障服务稳定性的基石,而网关与DNS的正确解析则是网络互通的关键枢纽……

    2026年4月5日
    7500
  • 泰格软件服务器IP地址连接不通是怎么回事,怎么解决

    泰格软件服务器IP地址连接不通,多半是网络配置、防火墙、服务器端服务或客户端参数这几类原因造成的,按照从底层到上层的顺序排查,几分钟就能定位问题,泰格软件服务器连接不上原因有哪些连接失败背后通常藏着几个固定套路,绝大多数情况跑不出下面这几个环节,网络环境与IP地址配置错误客户端软件需要填写正确的服务器IP地址……

    2026年8月21日
    700
  • asp一键部署真的能简化网站搭建流程吗?揭秘其优缺点与适用场景!

    ASP一键部署终极指南:告别繁琐,拥抱高效部署ASP应用不再是耗时费力的技术活,通过自动化工具和脚本,一键部署将复杂的配置、发布流程浓缩为一次点击,让发布新版本如同发送一封邮件般简单流畅,传统ASP部署的痛点与一键部署的价值手动部署ASP(尤其是经典ASP或ASP.NET Web Forms)应用,开发者和运维……

    2026年2月6日
    12000
  • AIoT物联网是什么意思,AIoT物联网发展前景如何

    AIoT物联网的核心价值在于实现“万物智联”,即通过人工智能(AI)与物联网技术的深度融合,让设备具备感知、思考与执行的能力,从而推动产业从单纯的“连接”向“智能服务”转型,这一技术变革不仅提升了运营效率,更重构了商业价值链,成为企业数字化转型的关键引擎,AI与IoT的深度融合:从数据采集到智能决策传统物联网主……

    2026年3月21日
    10100
  • ajax在php获取数据库数据类型怎么实现?php查询mysql字段类型

    在PHP中获取数据库数据类型,核心在于通过PDO或MySQLi扩展调用getColumnMeta()方法或information_schema查询,将底层二进制数据映射为可读的PHP原生类型,从而实现前后端数据交互的精准控制,Ajax与PHP的协作早已成为Web开发的标配,但很多开发者在数据传输环节容易忽略一个……

    2026年5月30日
    3100
  • Excel固定日期怎么设置?excel固定日期公式

    在Excel中固定日期,最稳妥的方法是使用Ctrl+Shift+;快捷键输入当前静态日期,或通过定义名称配合NOW函数实现动态更新,具体取决于你是否需要日期随系统时间自动变化,很多职场人在处理报表时,经常遇到日期格式混乱、无法固定或者需要自动更新的问题,Excel虽然强大,但默认的行为往往不符合所有场景,你希望……

    2026年7月6日
    10200
  • 香港机房云服抗攻击VPS靠谱吗,香港本土商家自营物理机托管哪家好

    面对DDoS攻击和合规风险,选择具备抗攻击能力的香港本土自营机房VPS或物理机托管,是保障海外业务稳定运行的最优解,在数字化浪潮中,网络基础设施的稳定性直接决定了业务的生死存亡,对于许多从事跨境电商、游戏服务或海外营销的企业而言,香港因其独特的地理位置和政策优势,成为了连接内地与国际市场的关键枢纽,普通的云服务……

    2026年6月29日
    2700
  • AI加速是什么意思,AI加速技术有什么用

    ai加速是现代人工智能从理论走向大规模应用的核心驱动力,其本质是通过专用硬件架构与高效软件算法的深度协同,突破摩尔定律的限制,实现计算性能的指数级提升与能耗比的极致优化,这一过程不仅关乎训练速度的快慢,更决定了推理成本的高低与应用场景的边界,是构建下一代智能基础设施的基石,硬件架构的专用化演进硬件层面的加速是提……

    2026年2月23日
    13000

发表回复

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