將銀行對帳單轉換為 OFX 格式
OFX 是 Xero、MYOB 和 FreeAgent 的標準匯入格式。以下是如何將銀行對帳單 PDF 轉換為 OFX,以及它與 CSV 和 QBO 的不同之處。

您需要將銀行交易匯入 Xero、MYOB 或 FreeAgent。銀行提供給您的是 PDF 對帳單。幸運的話也許是 CSV。但會計軟體需要的是 OFX 檔案 — 這是一種大多數人聞所未聞的格式,更不用說知道如何創建了。
OFX - Open Financial Exchange - 是這些平台建置所依賴的標準金融資料交換格式。它包含用於重複偵測的交易 ID,嵌入帳戶元資料,並在匯入時自動對應欄位。無需猜測日期格式。無需手動指定欄位。無需意外匯入同一個月兩次。它就是這麼好用。
問題是銀行幾乎從不直接提供 OFX 檔案。它們提供 PDF。有時它們會提供 CSV 下載 — 但 CSV 缺乏 OFX 所提供的結構和重複保護。本指南將說明 OFX 格式是什麼,為何會計平台偏好它,它與 CSV 和 QBO 的比較,以及如何將您的銀行對帳單 PDF 轉換為可乾淨匯入 Xero、MYOB、FreeAgent 及其他軟體的 OFX 檔案。
什麼是 OFX 格式?
OFX 代表 Open Financial Exchange。它是一種基於 XML 的資料格式,專門用於在機構、軟體和終端使用者之間交換金融資訊。該規格最初於 1997 年由 Microsoft、Intuit 和 CheckFree 開發,現由 Financial Data Exchange (FDX) 維護。目前版本 OFX 2.2 使用格式正確的 XML。早期版本 (1.x) 使用 SGML — 一種較寬鬆的標記語法,允許未關閉的標記。大多數會計軟體都接受兩者。
OFX 檔案使用 .ofx 副檔名,並包含結構化的金融資料:
- 交易記錄 — 日期、金額、付款人名稱、備註、支票號碼和交易類型(借記、貸記、轉帳、費用等)
- FITID — 金融機構交易 ID,為每筆交易指派的唯一識別碼,用於重複偵測
- 帳戶識別 — 銀行路由號碼 (BANKID)、帳戶號碼 (ACCTID) 和帳戶類型(支票、儲蓄、信用卡)
- 對帳單元資料 — 對帳單期間的起始和結束日期,以及起始和結束餘額
- 幣別 — ISO 4217 幣別代碼(USD、GBP、EUR、AUD、CAD 等)
當您將 OFX 檔案匯入會計軟體時,每個欄位都會自動對應。沒有歧義,沒有欄位對應,沒有誤解的空間。
OFX 對會計的重要性
OFX 是專為金融資料交換而設計的,其細節體現了這一點。
交易 ID (FITID) 可啟用重複偵測
OFX 檔案中的每筆交易都帶有一個唯一的 FITID — 金融機構交易 ID。當您匯入檔案時,會計軟體會記錄它見過的每一個 FITID。再次匯入相同的檔案,或匯入兩個重疊的檔案,軟體會悄悄跳過任何具有先前見過 FITID 的交易。
CSV 沒有等效功能。匯入相同的 CSV 兩次,您就會得到重複的記錄。清理重複交易是記帳中最常見 — 也最耗時 — 的問題之一。OFX 在格式層級上消除了這個問題。
內嵌帳戶識別
OFX 檔案包含銀行路由號碼和帳戶號碼,因此會計軟體可以自動將匯入的資料對應到正確的銀行帳戶 — 或在檔案不符時發出警告。CSV 檔案不包含帳戶元資料。
標準化結構消除了欄位對應
對於 CSV,軟體必須詢問:哪個欄位是日期?哪個是金額?是單獨的借記/貸記欄位還是單一的帶符號金額?OFX 跳過了所有這些。每個欄位都有一個定義好的標記 — DTPOSTED 用於日期,TRNAMT 用於金額,NAME 用於付款人。軟體讀取標記並確切知道所有內容的去向。
包含對帳單日期和餘額
OFX 檔案包含對帳單期間(起始和結束日期)以及期間結束時的帳面餘額 — 這是 CSV 檔案不包含的內容,有助於驗證餘額和簡化對帳。
廣泛的軟體相容性
OFX 被廣泛的會計和金融軟體接受:
- Xero — 首選匯入格式
- MYOB — 原生支援
- FreeAgent — 原生支援
- Wave — 原生支援
- GnuCash — 原生支援
- Sage — 大部分版本支援
- Microsoft Money (舊版) — 該格式最初為其設計
- Moneydance — 原生支援
- KMyMoney — 原生支援
對於 QuickBooks 使用者,密切相關的 QBO 格式(Intuit 的 OFX 方言)是更好的選擇。但對於大多數其他會計平台 — 尤其是 Xero — OFX 是標準。
OFX vs. CSV vs. QBO
當您將銀行資料匯入會計軟體時,最常遇到的三種格式。
| 特徵 | OFX | CSV | QBO |
|---|---|---|---|
| 格式基礎 | XML(結構化標記) | 純文字(逗號分隔) | SGML/XML(Intuit 的 OFX 方言) |
| 交易 ID | 是 (FITID) | 否 | 是 (FITID) |
| 重複偵測 | 是 — 自動 | 否 — 需要手動清理 | 是 — 自動 |
| 欄位對應 | 自動 | 手動 — 使用者指定每個欄位 | 自動 |
| 帳戶元資料 | 是(路由 + 帳戶號碼) | 否 | 是(路由 + 帳戶號碼) |
| 日期格式 | 標準化 (YYYYMMDD) | 變數 — 需符合軟體地區設定 | 標準化 (YYYYMMDD) |
| 對帳單餘額 | 是(起始 + 結束) | 否 | 是(起始 + 結束) |
| 金額處理 | 單一帶符號欄位,無歧義 | 可能有單獨的借記/貸記欄位 | 單一帶符號欄位,無歧義 |
| 特殊字元處理 | XML 實體(已編碼) | 變數 — 編碼問題常見 | SGML 實體(已編碼) |
| 主要軟體 | Xero、MYOB、FreeAgent、Wave、GnuCash | 通用(任何試算表或會計工具) | QuickBooks(線上 + 桌面版) |
| 可編輯性 | 需要 XML 知識 | 容易 — 在 Excel 中開啟 | 需要 SGML 知識 |
何時使用何種格式
使用 OFX 時: 匯入 Xero、MYOB、FreeAgent、Wave、GnuCash 或任何非 QuickBooks 的會計軟體。最乾淨的匯入路徑 — 自動對應、重複保護、無格式問題。
使用 QBO 時: 匯入 QuickBooks Online 或 Desktop。QBO 是 Intuit 特有的 OFX 方言,帶有 Intuit 特定的標記。請參閱我們的 QBO 轉換指南 以了解詳情。
使用 CSV 時: 目標軟體僅接受 CSV,或您需要在匯入前編輯交易。CSV 是通用的備用方案,但需要更多手動工作,且不提供重複保護。
方法 1:使用 PDFSub 將 PDF 轉換為 OFX
從銀行對帳單 PDF 到可供匯入的 OFX 檔案的最直接路徑。
- 從銀行網站或電子郵件下載您的銀行對帳單 PDF
- 前往 PDFSub 的銀行對帳單轉換器
- 上傳您的 PDF — 拖放或點擊瀏覽
- PDFSub 自動提取交易,偵測日期、金額、描述和交易類型
- 從格式下拉選單中選擇 OFX 作為輸出格式
- 下載 OFX 檔案

PDFSub 會生成有效的 OFX 1.x 檔案,為每筆交易提供唯一的 FITID,格式正確的日期 (YYYYMMDD),正確的借記/貸記符號,以及會計軟體所需的帳戶元資料標記。它能處理多頁對帳單、運行餘額、多行交易描述,以及銀行帳戶和信用卡。
該轉換器支援 130 多種語言的 20,000 多種銀行格式。數位 PDF(基於文字的對帳單)完全在您的瀏覽器中處理 — 檔案永不離開您的電腦。掃描或基於影像的 PDF 會回退到伺服器端 AI 提取。
OFX 是提供的 8 種輸出格式之一,還有 CSV、Excel、TSV、JSON、QBO、QFX 和 QIF。全方位方案為 $20/使用者/月(年繳)或 $25/使用者/月(月繳),包含每位使用者 500 頁銀行對帳單和 7 天免費試用。
方法 2:將 CSV 轉換為 OFX
如果您已經有銀行的 CSV 檔案 — 或來自其他轉換工具 — 您可以將其轉換為 OFX。但這比聽起來要困難,因為 OFX 除了原始交易資料外還需要其他東西。
挑戰:
- FITID 生成。 每筆交易都需要一個唯一的金融機構交易 ID。您必須確定性地生成這些 ID — 通常是通過組合日期、金額和描述進行雜湊 — 以便重新匯入相同資料時產生相同的 FITID 並觸發重複偵測。
- 日期格式。 OFX 要求日期格式為 YYYYMMDD(例如
20260302)。您的 CSV 可能有 MM/DD/YYYY、DD/MM/YYYY 或其他地區特定格式。弄錯這一點意味著交易會落在錯誤的日期。 - 帳戶元資料。 您需要正確設定 BANKID(路由號碼)和 ACCTID(帳戶號碼),以及 ACCTTYPE(CHECKING、SAVINGS 或 CREDITCARD)。這些值在 CSV 中不存在 — 您必須知道它們並手動添加。
- 金額符號約定。 OFX 使用負金額表示借記,正金額表示貸記。如果您的 CSV 有單獨的借記/貸記欄位,您需要將它們合併。如果您的 CSV 使用相反的符號約定(信用卡對帳單常見),您需要翻轉它。
- XML 結構。 OFX 檔案需要正確的標頭宣告、正確巢狀的標記,以及特殊字元(&、<、>、非 ASCII 字元)的 XML 實體編碼。
幾個桌面工具和線上轉換器可以處理 CSV 到 OFX 的轉換。PDFSub 在單一步驟中處理完整的鏈 — PDF 到 OFX — 完全跳過中間的 CSV。
將 OFX 匯入 Xero
Xero 將 OFX 視為一級匯入格式。匯入過程很簡單。
分步說明
- 登入 Xero 並前往 會計 > 銀行帳戶
- 點擊您要匯入交易的銀行帳戶
- 點擊 管理帳戶(或三點選單)並選擇 匯入對帳單
- 點擊 瀏覽 並選擇您的 OFX 檔案
- 點擊 匯入
- Xero 解析檔案並顯示摘要 — 交易數量、日期範圍和總金額
- 確認匯入
匯入的交易會顯示為未對帳的對帳單列。對於每一筆,Xero 提供三個動作:對應(連結到現有的發票或帳單)、建立(使用帳戶代碼和稅率建立新交易)或 轉帳(記錄銀行帳戶之間的轉帳)。
Xero 如何處理重複項
當 Xero 匯入 OFX 檔案時,它會讀取每筆交易的 FITID,並與該銀行帳戶先前匯入的所有 FITID 進行比較。任何具有先前見過的 FITID 的交易都會被悄悄跳過。這意味著您可以安全地匯入重疊的日期範圍 — Xero 只會添加它尚未見過的交易。
這是 Xero 推薦 OFX 而非 CSV 的主要原因之一。對於 CSV,Xero 沒有可靠的方法來偵測重複項,匯入重疊的日期範圍會產生重複的對帳單列,必須手動找到並刪除。
如需所有 Xero 匯入方法的完整指南 — 包括銀行串流、CSV 格式規則和疑難排解 — 請參閱我們的 Xero 銀行對帳單匯入指南。
將 OFX 匯入 MYOB
MYOB (Mind Your Own Business) 在 MYOB Business 和 MYOB AccountRight 中都支援 OFX 匯入。
MYOB Business (線上版)
- 從主選單前往 銀行
- 點擊 匯入對帳單
- 選擇銀行帳戶
- 點擊 選擇檔案 並選擇您的 OFX 檔案
- MYOB 預覽交易 — 檢閱日期、金額和描述
- 點擊 匯入
MYOB AccountRight (桌面版)
- 前往 銀行 > 銀行串流 > 匯入銀行對帳單
- 從下拉選單中選擇目標銀行帳戶
- 瀏覽至您的 OFX 檔案並選擇它
- 在銀行串流視窗中檢閱匯入的交易
- 將每筆交易分配到相應的帳戶
MYOB 使用 OFX 檔案中的 FITID 進行重複偵測,就像 Xero 一樣。如果交易的 FITID 已存在於系統中,MYOB 會在匯入時跳過它。
將 OFX 匯入其他軟體
FreeAgent
FreeAgent 在英國的自由工作者和小型企業中很受歡迎。匯入 OFX 的方法如下:
- 前往 銀行 並選擇銀行帳戶
- 點擊 匯入 > 上傳銀行對帳單
- 選擇您的 OFX 檔案
- 檢閱預覽並確認匯入
FreeAgent 支援 OFX、QIF 和 CSV。與 Xero 和 MYOB 一樣,它使用 OFX 檔案中的 FITID 來防止重複匯入。
GnuCash
GnuCash — 這款開源會計應用程式 — 透過其 AqBanking 整合提供原生 OFX 匯入支援:
- 前往 檔案 > 匯入 > 匯入 OFX/QFX
- 選擇您的 OFX 檔案
- GnuCash 會顯示交易並要求您將它們對應到帳戶
- 檢閱匹配視窗 — GnuCash 會根據 FITID 標示潛在的重複項
- 接受匯入
GnuCash 是最早支援 OFX 的應用程式之一,其匯入引擎同時支援 OFX 1.x (SGML) 和 OFX 2.x (XML) 檔案。
Wave
Wave Accounting(現為 H&R Block 所有)支援 OFX 匯入:
- 前往 會計 > 交易
- 點擊銀行帳戶
- 點擊 匯入 CSV 或 OFX
- 上傳檔案並將其對應到帳戶
- 檢閱並確認
Wave 也支援 CSV,但 OFX 提供自動欄位對應和重複偵測 — 與 Xero 和 MYOB 具有相同的優勢。
理解 OFX 檔案結構
OFX 檔案是純文字。您可以在任何文字編輯器中開啟它來檢查其內容。以下是一個簡化的範例,顯示了關鍵元素:
OFXHEADER:100
DATA:OFXSGML
VERSION:102
SECURITY:NONE
ENCODING:USASCII
CHARSET:1252
COMPRESSION:NONE
OLDFILEUID:NONE
NEWFILEUID:NONE
<OFX> <SIGNONMSGSRSV1> <SONRS> <STATUS><CODE>0<SEVERITY>INFO</STATUS> <DTSERVER>20260302 <LANGUAGE>ENG </SONRS> </SIGNONMSGSRSV1> <BANKMSGSRSV1> <STMTTRNRS> <STMTRS> <CURDEF>USD <BANKACCTFROM> <BANKID>021000021 <ACCTID>123456789 <ACCTTYPE>CHECKING </BANKACCTFROM> <BANKTRANLIST> <DTSTART>20260201 <DTEND>20260228 <STMTTRN> <TRNTYPE>DEBIT <DTPOSTED>20260205 <TRNAMT>-85.50 <FITID>20260205-8550-001 <NAME>ACME SUPPLIES LLC <MEMO>Office supplies purchase </STMTTRN> <STMTTRN> <TRNTYPE>CREDIT <DTPOSTED>20260210 <TRNAMT>3200.00 <FITID>20260210-320000-001 <NAME>PAYROLL DEPOSIT <MEMO>Direct deposit - February </STMTTRN> </BANKTRANLIST> <LEDGERBAL> <BALAMT>12456.78 <DTASOF>20260228 </LEDGERBAL> </STMTRS> </STMTTRNRS> </BANKMSGSRSV1>
</OFX>關鍵標記說明
| 標記 | 說明 |
|---|---|
BANKID |
銀行路由號碼(美國的 ABA 號碼) |
ACCTID |
帳戶號碼 |
ACCTTYPE |
帳戶類型:CHECKING、SAVINGS、MONEYMRKT 或 CREDITLINE |
DTSTART / DTEND |
對帳單期間的起始和結束日期 (YYYYMMDD) |
STMTTRN |
單筆交易記錄 |
TRNTYPE |
交易類型:DEBIT、CREDIT、INT(利息)、FEE(費用)、SRVCHG(服務費)、DEP(存款)、ATM、POS、XFER(轉帳)、CHECK(支票)、PAYMENT(付款)、OTHER(其他) |
DTPOSTED |
交易日期,格式為 YYYYMMDD |
TRNAMT |
交易金額 — 借記為負數,貸記為正數 |
FITID |
金融機構交易 ID — 用於重複偵測的唯一識別碼 |
NAME |
付款人或交易名稱(OFX 1.x 中最多 32 個字元) |
MEMO |
其他描述或備註(最多 255 個字元) |
LEDGERBAL |
結束餘額,包含金額和日期 |
OFX 1.x(如上所示)使用 SGML 語法 — 標記不需要關閉元素。OFX 2.x 使用格式正確的 XML,帶有正確的關閉標記。大多數會計軟體都接受兩者。對於信用卡對帳單,包裝器從 BANKMSGSRSV1 變為 CREDITCARDMSGSRSV1,但內部的交易結構保持不變。
常見 OFX 匯入問題
日期格式錯誤
症狀: 交易出現在錯誤的日期,或匯入失敗並出現日期錯誤。
原因: OFX 檔案包含不符合 YYYYMMDD 標準的日期。一些生成不良的 OFX 檔案在 XML 標記內使用地區特定的日期格式(MM/DD/YYYY 或 DD/MM/YYYY)。
修復: 在文字編輯器中開啟 OFX 檔案,檢查 DTPOSTED 值。它們應該是正好 8 位數字 — 20260302,而不是 03/02/2026 或 02-Mar-2026。如果格式錯誤,則需要重新生成檔案。PDFSub 始終以正確的 YYYYMMDD 格式輸出日期。
您需要時卻跳過了重複交易
症狀: 您刪除了交易並重新匯入了檔案,但軟體無法再次匯入它們。
原因: 軟體會記住它曾經見過的每一個 FITID。即使刪除了原始交易,FITID 仍然保留在系統記憶體中。
修復: 您需要一個帶有新 FITID 的檔案。請聯繫您的軟體支援以獲取有關清除 FITID 歷史記錄的指導,或使用文字編輯器手動編輯 OFX 檔案中的 FITID。
缺少帳戶號碼
症狀: 匯入失敗,或軟體無法將檔案對應到現有的銀行帳戶。
原因: OFX 檔案中的 BANKID 或 ACCTID 標記為空或包含預留位置值。某些 OFX 生成器完全省略了帳戶元資料。
修復: 在 OFX 檔案中開啟並添加正確的 BANKID(路由號碼)和 ACCTID(帳戶號碼)。這些必須與您的會計軟體中的銀行帳戶設定相符,或者您需要在匯入時手動選擇目標帳戶。
國際字元編碼問題
症狀: 付款人名稱或描述顯示亂碼 — 問號、方塊或不正確的帶音標符號。
原因: OFX 檔案使用的編碼(例如 USASCII 或 Latin-1)不支援交易資料中的字元 — 德語的 umlauts、法語的重音符號、日文、西里爾文。
修復: OFX 檔案應在標頭中宣告 UTF-8 編碼,並且實際檔案編碼必須匹配。PDFSub 會生成具有正確 UTF-8 編碼的 OFX 檔案。
檔案太大無法匯入
症狀: 匯入超時或軟體因檔案大小或交易數量錯誤而拒絕該檔案。
原因: 大多數會計平台對匯入檔案大小有限制。Xero 限制每個檔案的匯入量為 1,000 筆交易。其他平台也有類似的上限。
修復: 將 OFX 檔案分割成更小的檔案 — 通常按月或按季。每個檔案應包含少於 1,000 筆交易。確保每個分割檔案中的 DTSTART/DTEND 標記和 LEDGERBAL 值反映正確的期間。
信用卡交易以錯誤的符號匯入
症狀: 購買顯示為收入,付款顯示為支出。
原因: OFX 檔案使用了銀行帳戶包裝器 (BANKMSGSRSV1) 而不是信用卡包裝器 (CREDITCARDMSGSRSV1)。這會混淆會計軟體處理符號約定的方式。
修復: OFX 檔案需要針對帳戶類型使用正確的包裝器。PDFSub 會自動偵測對帳單是來自支票帳戶、儲蓄帳戶還是信用卡,並自動應用正確的 OFX 結構。
常見問題解答
OFX 和 QBO 有什麼區別?
QBO 是 Intuit 為 QuickBooks 設計的專有 OFX 方言。底層結構幾乎相同 — 相同的標記、相同的 FITID、相同的帳戶元資料。QBO 添加了 Intuit 特有的標記,如 INTU.BID(銀行識別碼),並使用 .qbo 副檔名。您通常可以將 .ofx 檔案重新命名為 .qbo,QuickBooks 會讀取它。請為 QuickBooks 使用 QBO,為其他所有軟體使用 OFX。
我可以開啟 OFX 檔案查看內容嗎?
可以。OFX 檔案是純文字。您可以在任何文字編輯器 — 如記事本、VS Code、TextEdit — 中開啟它,您將看到包含交易日期、金額、付款人名稱、FITID 和帳戶資訊的標記。如果需要,您可以手動編輯它,但請小心結構。
Xero 是否偏好 OFX 而非 CSV?
是的。Xero 推薦使用 OFX 而非 CSV 進行銀行對帳單匯入。OFX 匯入無需欄位對應即可自動進行,包含用於重複預防的 FITID,並具有標準化的日期/金額格式。CSV 也可以使用,但需要手動欄位對應,且不提供重複保護。
如果我需要編輯資料,可以將 OFX 轉換為 CSV 嗎?
可以。大多數試算表應用程式無法直接開啟 OFX,但許多工具可以解析 OFX 並輸出 CSV。如果您需要在匯入前編輯交易,先轉換為 CSV,進行編輯,然後再轉換回 OFX 是一種常見的工作流程。
FITID 是如何生成的?
銀行從其內部交易參考號碼分配 FITID。當像 PDFSub 這樣的轉換器從 PDF 生成 OFX 時,它會通過組合交易日期、金額和描述來創建確定性的 FITID — 因此兩次轉換相同的 PDF 會產生相同的 FITID,重新匯入也不會產生重複項。
OFX 匯入的最大檔案大小是多少?
這取決於軟體。Xero 每個檔案最多接受 1,000 筆交易。MYOB 和 FreeAgent 也有類似的限制。GnuCash 沒有實際限制。如果您的對帳單包含超過 1,000 筆交易,請將其分割成多個 OFX 檔案,按月或按季。
OFX 檔案可以在一個檔案中支援多個帳戶嗎?
OFX 規格允許一個檔案中有多個對帳單回應 — 每個帳戶一個。然而,大多數會計軟體期望每個檔案只包含一個帳戶。為了可靠匯入,請為每個銀行帳戶生成單獨的 OFX 檔案。
我可以使用 OFX 處理信用卡對帳單嗎?
可以。OFX 原生支援信用卡對帳單。檔案結構使用 CREDITCARDMSGSRSV1 作為包裝器,而不是 BANKMSGSRSV1,交易遵循信用卡符號約定(購買為負數,付款為正數)。PDFSub 會自動偵測對帳單類型並生成正確的 OFX 結構。
OFX 格式仍在更新嗎?
是的。OFX 規格由 Financial Data Exchange (FDX) 積極維護。目前版本是 OFX 2.2。然而,大多數會計軟體仍然接受 OFX 1.x 檔案(SGML 格式)以及較新的基於 XML 的 2.x 檔案。沒有迫切需要使用最新版本 — 1.x 的相容性是普遍的。
OFX 格式支援哪些幣別?
OFX 使用 ISO 4217 幣別代碼 — USD、GBP、EUR、AUD、CAD、JPY、CHF 以及數百種其他代碼。幣別在 CURDEF 標記中聲明一次,並適用於所有交易。多幣別對帳單可透過個別交易的選用 ORIGCURRENCY 標記來支援。