現狀
Apache POI (Word)、**不支援在 Word 中建立/插入 OLE 嵌入物件 (Embedded Excel)**。iText 同樣不支援。`XWPFDocument` 僅能建立表格、圖片、文字,無法建立 `application/vnd.ms-excel` 類型的 `PackagePart` 並正確關聯渲染。
可行方案
1. PageOffice 企業版 (商業、最省事)
- 其「數據區域」功能可在 Word 模板中預留區域,執行時**將 Excel 檔案作為 OLE 物件插入**。
- 適合「導出報表含可編輯 Excel 區塊」的商業專案,但需購買授權。
2. POI 修改預置嵌入物件的模板 (開源、免費)
- **手動在 Word 中建立模板**:`插入` → `物件` → `從檔案建立` → 選 Excel 檔 → 顯示為圖示/連結 → 另存為 `template.docx`。模板現已包含正確的 OLE `PackagePart` 及關聯關係。
- **POI 讀取模板,修改其他內容(書籤/表格/文字)**,**不動嵌入物件部分**:
XWPFDocument doc = new XWPFDocument(new FileInputStream("template.docx"));
// 修改書籤/表格...
// 關鍵:不要嘗試用 POI 新增/修改 OLE 部分,保持原樣
FileOutputStream out = new FileOutputStream("output.docx");
doc.write(out);
- **產出的 `output.docx` 保留原模板的嵌入 Excel**,雙擊可在 Word 內編輯(需客戶端裝 Office)。
3. 替代方案:Word 表格模擬 / HTML 導出 / 連結跳轉
- 若不需「Word 內雙擊編輯 Excel」,**直接用 POI 建立 Word 表格** 模擬 Excel 外觀(合併儲存格、邊框、公式不支援)。
- 導出 **HTML**,前端用 `