本頁所稱「Bytecode」泛指 .xlsx / .docx / .pptx 等二進位檔案格式(OOXML 容器), 不是 Java / Python 那種編譯產物,也不是任何產品代號。
B3 案例庫目前的 case 都假設「.xlsx 進、.xlsx 出」,但真實需求未必限於 Excel—— 可能是「幫我生出一份可再編輯的 Word 提案書」、「輸出可再編輯的 PPT 簡報」、「交一份可再改數字的試算表」。 本頁不陷入單一檔案格式細節,而是從「產出物的可編輯性」這個更高層次的軸,盤點 Bytecode 的能力邊界—— 哪些格式能做到「真・可編輯」、哪些只能做到「看起來像但打開不能改」、哪些根本做不到。 結論用來決定 B3 案例庫該擴充哪些類別、E 類需要再開哪些技術研究、B4 IDE 規則需要定義哪些協議。
這張表把每個檔案格式拆成「從生成到使用」的四道關卡——能不能在瀏覽器裡直接生出來、使用者拿到能不能再改、原本的字型版面有沒有被保留、公式與外部連結有沒有活著,最後一欄是適合的場景。 建議從右邊「適合場景」找到貼近自己需求的那一行,再橫向比對前四欄。 符號:✓ 可以、△ 有條件(通常需要先準備一份空白樣版檔, 也就是「模板預埋」——設計師把版型做好,系統只負責替換資料)、✗ 做不到、— 不適用。
| 格式 | 純前端可生成 | 可再編輯 | 保留樣式 | 保留公式 / 連結 | 適合場景 |
|---|---|---|---|---|---|
| .csv / .md | ✓ | ✓ | — | — | 純資料、可版本控管 |
| .xlsx(資料) | ✓ | ✓ | ✗ | ✗ | B3 目前所有 case |
| .xlsx(樣版) | △ | ✓ | ✓ | ✓ | 報表、發票、提案書 |
| .xlsx(含圖表) | ✗ | ✓ | ✓ | ✓ | 需 SheetJS Pro 或模板 |
| .docx(純文字) | ✓ | ✓ | △ | — | 會議紀錄、摘要 |
| .docx(樣版) | ✓ | ✓ | ✓ | — | 合約、提案書、信件 |
| .pptx | △ | ✓ | △ | — | 報表簡報;複雜設計需模板 |
| ✓ | ✗ | ✓ | — | 最終交付,不可再編輯 |
副檔名相同,能力可能差一個量級——這也是讀這張表最容易被誤判的地方。 把 .xlsx 與 .docx 拆開列出,是為了讓客戶情境對得上技術路徑:
結論:接到「幫我生 Word / Excel / PPT」這類需求時,先問要的是「純資料」還是「有版面」, 再對照表中對應的那一行判斷可行性,避免把不同層次的題目混在一起估時程。
把需求拆成三個逐級困難的層次,避免把不同層次的題目混在一起討論:
使用者打開檔案能改資料、文字、儲存格內容。 這是 Bytecode 目前 B3 做到的,.xlsx、.csv、.md、純文字 .docx 都落在這層。 純前端、免費套件足夠,B3 案例庫可放心擴充。
除了改資料,還要保留字型、色彩、段落格式、合併儲存格、表格樣式。 最可行路徑是「模板預埋」——設計師先做好空白樣版(.xlsx / .docx),Bytecode 只替換標記欄位。 這是一個「介於 B3 資料處理與 B 區文件生成」的中間地帶, 建議獨立成 B6. 樣版文件生成(與 B3 並列),不要塞進 B3。
要保留公式、圖表、樞紐表、資料驗證、交互連結、PPT 動畫等「活」的元素。 純前端免費方案幾乎無解,需要 SheetJS Pro、模板綁 Named Range、或改走伺服器端 OOXML library。 這層每個格式都有獨立的 E 類研究題(E1 已處理 Excel 圖表),不該倉促進 B 區。
A. 看層次。Layer 1(結構層)——完全可以;Layer 2(樣式層)——走模板就可以;Layer 3(互動層)——大多數情況下不能。 回答這個問題前,先釐清使用者要改的是「資料」「版型」還是「公式/圖表」。
A. .docx 可以、.pptx 部分可以。.docx 有成熟的 docxtemplater 與 docx.js,樣版式文件(合約、提案書)純前端可做; .pptx 有 pptxgenjs,但只能產出「簡單版型」的簡報,公司級設計樣版幾乎必然失真。 要做到「可編輯簡報」建議 Layer 2 + 模板策略。
A. PDF 的設計前提就是「固定版面、不可再改」。雖然有 PDF editor 工具,但打開後改動是破壞性的、體驗差、格式易爆。 PDF 定位是 最終交付物,如果使用者需要再編輯,交付時就應該用 .docx / .xlsx。
A. 樣版層確實像,但資料層不是。Mail merge 只是「欄位替換」,Bytecode 在 Layer 1 還能做合併 / 拆分 / 清理 / 轉置等資料邏輯, 在 Layer 2 才接近 mail merge。重點是 Bytecode 把兩件事縫在一起:先把資料整乾淨,再塞進樣版。
A. 目前必須人工設計、AI 不畫樣版。AI 生成像樣的商業樣版(字型搭配、版式比例、品牌色)成本高且不穩定。 務實作法是:設計師做一次樣版 → AI 永遠只替換資料。 這決定了 B6 樣版文件生成的運作模型。
A. 對,這是光譜尾端的體驗問題。一份 .xlsx 技術上「可編輯」(打得開、存得回去),但若沒有命名範圍、沒有表格格式、公式散落, 使用者改起來很痛苦。Layer 2 的模板預埋就是為了「不只可編輯、還好編輯」。
A. 不建議。單頁數十 KB、500 頁就到十幾 MB,瀏覽器端產生與下載流程都會卡。 超過數十頁的批次文件生成應交給後端 pipeline,屬 B4 IDE 規則範疇。
A. 純前端做不到、模板可以。若 .xlsx A 的儲存格要連到 .xlsx B,OOXML 層級的 external link 純前端 library 幾乎都不支援。 真的需要「活連動」建議走模板預埋,或乾脆把兩份資料合進一份多 sheet 的檔案。
A. 可以,但已經不是 Bytecode 的題目。產出靜態 HTML 或 Markdown 技術上瑣碎,真正的問題是「誰 host」「誰管 URL」「怎麼再改」。 這跳出 Bytecode 單次任務的語意,屬 B4 IDE 規則或另一個產品(Page Builder)。
A. 建議 .csv / .json 為主、.xlsx 為輔。.xlsx 當中間檔會累積樣式雜訊與效能負擔; pipeline 節點間用 .csv / .json,只在「交付給使用者」那一步才組合成 .xlsx / .docx。 這是 B4 pipeline 規則需要確立的約定。
B3 處理資料邏輯(Layer 1)、B6 處理文件樣版(Layer 2)、 E 類研究互動格式(Layer 3)、B4 管流程編排。釐清這四條線,就不會再被「可不可以生出可編輯的 XX」這類問題打亂節奏。