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/poi-excel-2003%e6%80%8e%e4%b9%88%e6%93%8d%e4%bd%9c%ef%bc%9fpoi%e8%af%bb%e5%8f%96excel-2003%e6%a0%bc%e5%bc%8f/

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

相关推荐

  • 红警坦克4d服务器为何突然登不上?,怎么解决?

    登录不上红警坦克4d服务器,最常见原因是官方停机维护或本地网络连接故障,应先检查官方公告,再按顺序排查网络、客户端和账号状态,红警坦克4d登录不上的首要排查步骤遇到登录问题,最忌讳反复重启客户端或盲目卸载重装,正确的做法是按从外到内的顺序排查,能节省大量时间,第一步:确认官方服务器运行状态游戏服务器是否在正常运……

    2026年10月17日
    000
  • HosthatchVPS测评,15美元/年实测数据与性能表现,HosthatchVPS怎么样

    Hosthatch VPS在2026年依然具备极高的性价比,15美元/年(约100元人民币)的入门级方案适合个人博客、轻量级测试及低流量静态站点,但在高并发与稳定性上存在明显短板,不建议用于生产环境或高价值商业项目,在云计算市场极度内卷的2026年,Hosthatch作为老牌低价服务商,其“极致低价”策略依然吸……

    2026年5月12日
    5200
  • cf电脑版总是连接不上服务器失败怎么办,是什么原因

    CF电脑版总是连接不上服务器失败,通常是因为本地网络波动、防火墙拦截、游戏文件出错或官方服务器临时维护,按顺序检查网络连接、关闭冲突软件、修复游戏资源即可解决,很多玩家在团战关键时刻或排位赛结算时被踢出房间,提示“连接服务器失败”或“登录超时”,这种情况并非只有你遇到,多数情况下问题出在本地环境或网络通道上,下……

    2026年8月11日
    1800
  • 服务器ip地址打不开网页是什么原因,服务器IP无法访问怎么解决

    服务器IP地址打不开网页的核心原因通常集中在Web服务未启动、防火墙拦截、端口未监听或安全组策略配置错误四个维度,解决该问题应遵循“由内向外、由软到硬”的排查逻辑,即先检查服务器内部服务状态与端口监听,再排查本地防火墙与云厂商安全组设置,最后检测网络连通性,绝大多数所谓的“IP无法访问”并非服务器硬件故障,而是……

    2026年3月31日
    8400
  • VMISS全场8折永久折扣是真的吗?洛杉矶CN2 GIA VPS月付多少

    使用VMISS优惠码即可享受全场永久8折,洛杉矶CN2 GIA、香港CN2 BGP等优质线路月付低至4加元起,是2026年高性价比跨境网络解决方案的首选,在2026年的网络环境中,稳定的跨境连接依然是许多开发者、跨境电商从业者以及海外华人刚需,面对市场上琳琅满目的VPS服务商,价格波动大、线路不稳定、售后响应慢……

    2026年6月26日
    2710
  • 为什么我的英雄联盟连接服务器失败,怎么解决

    LOL连接服务器失败多半是网络或客户端问题,按照“检查服务器状态→修复网络→重置DNS→修复客户端”的顺序排查,绝大多数情况都能解决,lol无法连接服务器是什么原因?自查从这三大类开始网络波动与延迟过高这是最常见的原因,尤其在使用无线网络、高峰期或跨区游戏时,丢包和延迟会直接导致连接中断,你可以在游戏内按Ctr……

    2026年8月16日
    2000
  • Digital-VMVPS测评怎么样?日本新加坡2.6美元/月真实性能表现

    2026 年实测证实,Digital-VMVPS 日本与新加坡节点在 2.6 美元/月价位段提供超越同档竞品的 I/O 吞吐与低延迟表现,是东南亚及东亚跨境业务的高性价比首选,在云主机市场内卷加剧的 2026 年,中小企业与独立开发者对日本新加坡服务器价格的敏感度达到新高,Digital-VMVPS 作为新兴的……

    2026年5月10日
    6000
  • 无法创建sql数据库服务器失败怎么办

    多数情况下,无法创建SQL数据库服务器是因为服务未启动、权限不足或实例配置损坏,优先检查Windows服务列表和SQL Server配置管理器即可解决,为什么SQL Server突然就“罢工”了你打开SSMS输完账号密码准备干活,结果屏幕上弹出一个冷冰冰的报错框:无法创建数据库服务器,这时候别急着卸载重装,百分……

    2026年8月26日
    500
  • 云服务器FTP连接不上怎么设置,为什么总是连接失败?

    云服务器ftp连接不上,九成问题出在安全组规则、服务端口和被动模式三个环节,按顺序排查就能解决,这几项是云服务器和本地电脑最大的区别,也是新手最容易卡住的地方,下面直接从最常见的原因讲起,每一步都有对应操作,云服务器ftp连接不上时,先做这三项基础检查开始动防火墙和配置之前,先用本地电脑做几个快速验证,能省下大……

    2026年10月16日
    100
  • Kuroit闪购独服月付£140配置如何?美国阿什本高防服务器推荐

    Kuroit美国阿什本独服凭借E5v4处理器、384G超大内存及7T存储,以月付£140的价格提供160Gbps DDoS防御,是处理高并发、大数据量及重度负载场景的高性价比选择,在服务器租赁市场,尤其是针对美国节点的独服需求中,Kuroit近期推出的这款配置引起了广泛关注,很多用户在寻找美国独服推荐时,往往在……

    2026年6月29日
    1610

发表回复

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