首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

POI 讀取導出的 Excel 報 Invalid header signature:導出的其實是 HTML

     編輯:程式設計綜合問答

現象

JSP 設置 contentType=application/vnd.ms-excel 導出,POI 讀取報錯:Invalid header signature; read 0x0A0D0A0D..., expected 0xE11AB1A1E011CFD0。

原因

該 JSP 寫法只是輸出 HTML 表格,瀏覽器因擴展名 .xls 喚起 Excel 打開,Excel 寬容解析 HTML 表格。**但文件實質是文本/HTML,不是 BIFF8/OOXML 二進制格式**,POI 只識別真正的 Excel 二進制結構。

正確導出真 Excel

  1. 服務端用 POI/NPOI/EPPlus 直接生成 .xlsx/.xls 二進制流,再 response.OutputStream.write(bytes)。
  2. 或導出 CSV(純文本,POI 可讀),但無樣式/公式支持。

驗證方法

用文本編輯器(Notepad++/VS Code)打開導出文件,若看到 <table>、<td> 標籤 → 是 HTML;若看到 PK (ZIP 頭) 或 ÐÏà¡ (BIFF8 頭) → 是真 Excel。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved