PDFSub
定价APIMergeCompressEditE-Sign银行对账单博客
返回博客
指南技术ExcelCSVQBOOFX

理解银行对账单格式:技术指南

2026年5月16日
T
Todd Lahman
Founder, PDFSub

PDF不是一种数据格式,而是一种显示格式。这就是为什么从银行对账单中提取交易数据如此困难。本指南将解释银行对账单PDF的内部结构、可用的输出格式(Excel、CSV、QBO、OFX、QFX、JSON)以及如何选择正确的格式。


Understanding Bank Statement Formats: The Technical Guide

银行对账单PDF看起来很简单:日期、描述、金额、余额,整齐地排列在列中。但在这外观之下,PDF这种文档格式(PDF)从未被设计用于存储结构化数据——而转换过程需要同时理解输入格式和可用的多种输出格式。

本指南涵盖了每份银行对账单(无论哪个银行)中的12个部分、银行对账单PDF的技术现实、各银行间的布局差异、您将遇到的所有输出格式(Excel、CSV、QBO、OFX、QFX、QIF、JSON)、国际格式差异以及规范金融数据交换的行业标准。


银行对账单的组成部分

每份银行对账单——无论是Chase、Bank of America、Wells Fargo、HSBC、Deutsche Bank,还是其他任何银行——都由相同的12个部分组成。标签可能会变(“支出” vs “提款”),列的排列方式也可能不同,但底层结构是一致的。一旦您能识别出这些部分,每份对账单看起来都会很熟悉。

Anatomy of a bank statement: 12 labeled sections every statement contains

想在您的博客上使用此信息图? 复制此嵌入代码:

有关涵盖主要银行如何布局这12个部分的具体银行深度分析,请参阅:

  • Chase银行对账单详解
  • 美国银行对账单详解
  • 富国银行对账单详解
  • 花旗银行对账单详解
  • 国泰银行对账单详解

为什么PDF不是一种数据格式

PDF是Portable Document Format(便携式文档格式)的缩写,已标准化为ISO 32000(2.0版成为ISO 32000-2:2020)。它只有一个目的:让文档在每台屏幕和打印机上看起来都一样。这对于视觉保真度来说很好——但对于数据提取来说却很糟糕。

银行对账单PDF内部实际包含什么

每个PDF页面内部都有一个内容流——一系列使用类似PostScript的语言编写的绘图操作符。文本使用特定的操作符进行渲染:

  • BT / ET - Begin Text / End Text:文本对象的边界
  • Tf - 设置字体和大小
  • Td / Tm - 移动文本位置或设置完整的文本变换矩阵
  • Tj - 显示文本字符串
  • TJ - 显示带有单个字形定位(字偶调整)的文本

关键的洞察是:PDF规范中没有“表格”、“行”或“列”的概念。 看起来像格式整齐的交易表格的,实际上是放置在页面特定x,y坐标上的数十个文本片段。提取工具必须:

  1. 解析内容流操作符
  2. 解析字体编码,将字形索引映射到Unicode字符
  3. 使用文本矩阵(Tm/Td)确定每个字符的x,y位置
  4. 从这些坐标重构单词、行和列

看起来完美对齐的一列,在一行上可能是x=72.0,下一行可能是x=72.5。提取算法必须定义列边界,并容忍这些亚像素级别的变化。

标记PDF vs. 未标记PDF

标记PDF包含一个隐藏的逻辑结构树(类似于HTML标签),将内容标记为标题、段落、表格、表格行和表格单元格。这使得提取大大简化。

未标记PDF没有结构元数据——提取工具只能获得原始定位数据,必须自行推断一切。

大多数银行生成的对账单PDF都是未标记的。 银行使用批量处理系统(Oracle BI Publisher、SAP Crystal Reports或自定义打印到PDF管道)生成对账单。可访问性法规(ADA/WCAG)正在推动银行转向标记PDF,但普及缓慢。大多数主要银行的标准下载仍然是未标记的。


银行对账单布局差异

银行PDF对账单的格式没有行业标准。相同的五条信息——日期、描述、借记、贷记、余额——在每家银行的排列方式都不同。

单一金额列(带符号)

日期 描述 金额 余额
01/15/26 直接存款工资 +3,500.00 5,200.00
01/16/26 POS购物杂货 -87.50 5,112.50

借记为负,贷记为正(反之亦然)。小型银行、信用合作社和数字银行常用。解析更简单,因为只有一个金额列需要提取。

分开的借记/贷记列

日期 描述 提款 存款 余额
01/15/26 直接存款工资 3,500.00 5,200.00
01/16/26 POS购物杂货 87.50 5,112.50

Chase、Bank of America和许多传统银行使用。提取工具必须识别哪一列包含金额,并据此确定符号。

按交易类型分组

企业和商业账户经常按类别对交易进行分组:

存款和其他贷项 01/15  电汇入账 REF#12345 10,000.00 01/18  支票存款 #4567 2,500.00 存款总计 12,500.00
 
支付的支票 01/16  支票 #1234 850.00 01/17  支票 #1235 1,200.00 支票总计 2,050.00
 
电子交易 01/19  ACH付款 - 供应商公司 3,200.00 01/20  在线转账至储蓄账户 1,000.00 电子交易总计 4,200.00

节标题决定了交易是借记还是贷记。必须识别并排除汇总行(“存款总计”)的交易数据。

特定银行的特点

  • Chase - 分开的借记/贷记列;按“存款和加项”、“电子支付”和“费用”分组;多行描述常见于商户详情
  • Bank of America - 分开的提款/存款列;包含末尾的“每日余额”部分;包含账户号码、对账单周期、路由号码的详细抬头信息
  • Wells Fargo - 分开的列;包含“每日余额摘要”部分;将其CSV下载称为“逗号分隔”
  • Capital One - 消费者卡有清晰的单一金额布局;抬头信息最少
  • Citi - 通常在单独的行上包含国际交易详情,附带原始货币金额和兑换率

列排列的变体

除了借记/贷记问题,列的顺序也没有标准化:

  • 列顺序:日期-描述-金额-余额 vs. 日期-金额-描述-余额
  • 支票号码:商业账户存在,个人账户不存在
  • 参考号码:商业对账单常见,个人对账单罕见
  • 滚动余额:每笔交易(最常见)vs. 每日小计 vs. 完全缺失

数字PDF vs. 扫描PDF

影响转换准确性的最重要因素是您的PDF是数字的还是扫描的。

数字(原生)PDF

当您从银行下载对账单时,由银行系统以编程方式创建。文本以内容流操作符和字体编码的形式存储。

  • 准确性:文本提取准确率99%+——没有识别错误
  • 速度:每页毫秒级
  • 隐私:完全可以在您的浏览器中处理——文件永远不会离开您的设备
  • 文件大小:每页通常为50KB–500KB
  • 如何识别:您可以选择和突出显示单个单词

扫描PDF

纸质对账单的图像——通过扫描或拍摄实体文件创建。内容以栅格图像(JPEG、JPEG2000、CCITT或Flate压缩)的形式存储。

  • 准确性:专业OCR准确率95–99%;通用OCR准确率65–70%
  • 速度:每页几秒钟(需要图像处理)
  • 隐私:通常需要服务器端处理(文件必须上传以进行OCR)
  • 文件大小:每页200KB–2MB+
  • 如何识别:您无法选择任何文本;放大到400%会显示像素化

为什么扫描准确性对财务数据更重要

97%的字符准确率听起来很棒,直到将其应用于财务数据。在一份包含1000个字符金额的对账单上,这意味着有30个字符被误读。单个误读的数字会改变交易金额:“$1,234.56”变成“$1,234.86”或“$7,234.56”。高级OCR可以达到近99%的准确率,但剩余的错误不成比例地落在看起来相似的字符上:0/O、1/l/I、5/S、8/B、6/G,以及关键的逗号/句点。

务必优先选择数字下载。 从银行网站下载对账单,而不是扫描纸质文件。这可以完全消除OCR错误。


输出格式:深度解析

Bank Statement Output Formats Compared - Excel, CSV, QBO, OFX, QFX, JSON

转换银行对账单时,您需要选择一种输出格式。每种格式都有不同的优点、限制和理想用例。

Excel (.xlsx)

标准:Office Open XML (OOXML),标准化为ECMA-376和ISO/IEC 29500。

它是什么:.xlsx文件实际上是一个ZIP存档,包含XML文件——工作簿结构、单元格数据、样式和共享字符串。这就是为什么它可以存储数据类型(日期作为日期,数字作为数字)、格式、公式和多个工作表。

为什么它在银行对账单中很受欢迎:

  • 日期保持为日期(可排序、可筛选)
  • 数字保持为数字(可求和、可格式化)
  • 用于对账的公式(SUM、VLOOKUP)
  • 用于支出分类的数据透视表
  • 条件格式化以突出显示差异
  • 与需要可读电子表格的客户共享

限制:

  • 最多1,048,576行(银行对账单很少用到)
  • 大多数会计软件无法直接导入(请使用QBO/OFX)
  • 需要Excel、Google Sheets或LibreOffice Calc才能打开

最适合:手动审查、自定义分析、对账、归档、客户报告。

CSV(逗号分隔值)

标准:RFC 4180 (2005) - “逗号分隔值的通用格式和MIME类型”。

核心规则:

  • 记录以CRLF(回车+换行)分隔
  • 字段以逗号分隔
  • 包含逗号、引号或换行的字段必须用双引号括起来
  • 字段内的双引号通过加倍来转义

实际中的分隔符变体:

  • 逗号(,) - 标准,在美国/英国使用
  • 分号(;) - 在逗号是小数分隔符的国家(法国、德国、意大利、西班牙、巴西)使用
  • 制表符( ) - TSV格式,避免分隔符冲突

编码问题:

  • 推荐使用UTF-8以实现互操作性
  • UTF-8 BOM(字节顺序标记):标准不要求,但Windows上的Excel需要它才能正确显示非ASCII字符(带重音的字母、货币符号)。没有BOM,Excel可能会将UTF-8解释为Windows-1252,导致字符损坏。
  • 在欧洲地区,Excel使用分号而不是逗号作为字段分隔符

限制:

  • 没有数据类型——一切都是文本(前导零的数字会被损坏,长账号会变成科学计数法)
  • 不支持多工作表
  • 没有格式或公式

最适合:最大兼容性——几乎所有会计程序、数据库和电子表格都可以导入CSV。当QBO/OFX不可用时的通用后备方案。

QBO(QuickBooks Web Connect)

它是什么:QuickBooks(桌面版和在线版)的导入格式。QBO文件基于OFX规范,并包含QuickBooks特定的扩展。

重要说明:“.QBO” 不代表“QuickBooks Online”——它代表QuickBooks Web Connect格式,并且适用于QuickBooks桌面版和QuickBooks在线版。

每笔交易所需的字段:

  • TRNTYPE - 交易类型(DEBIT、CREDIT、CHECK、DEP、DIRECTDEP、DIRECTDEBIT、ATM、POS、XFER、PAYMENT、FEE、SRVCHG、INT、OTHER)
  • DTPOSTED - 日期,格式为YYYYMMDD
  • TRNAMT - 金额(借记为负数)
  • FITID - 金融机构交易ID
  • NAME - 收款人/描述

FITID为何重要:QuickBooks会跟踪已为每个账户导入的每个FITID。如果再次导入具有相同FITID的交易,QuickBooks会默默跳过它——防止用户在重新导入重叠的对账单周期时产生重复条目。这种自动重复检测是QBO相对于CSV的最大优势。

附加数据:QBO还包含账户ID、银行ID(路由号码)、货币、支票号码、备注和期末余额——是QuickBooks所有导入格式中最丰富的数据集。

最适合:QuickBooks用户(桌面版和在线版)。提供最丰富的数据导入体验,具有自动重复检测和交易类型分类功能。

OFX(Open Financial Exchange)

历史:由Microsoft、Intuit和CheckFree创建。1997年2月发布1.0版。

版本演变:

  • OFX 1.0–1.6(1997–1999):基于SGML的语法(不需要闭合标签)
  • OFX 2.0+(2000–至今):基于XML(有闭合标签,格式正确的XML)

许多银行仍生成OFX 1.x(SGML)以实现最大兼容性。

当前管理:2019年,OFX联盟合并到**Financial Data Exchange (FDX)**联盟,该联盟现在管理该规范。FDX拥有超过200个成员组织和7600万个消费者账户。

OFX为何是通用标准:OFX是当您通过银行接口将银行账户直接连接到会计软件时使用的相同格式——该格式同样适用于文件导入。

最适合Xero用户:Xero自动导入OFX文件,无需手动映射列。上传文件后,交易会立即显示正确的日期、金额和描述。也适用于Wave、Sage、FreshBooks和大多数会计软件。

QFX(Quicken Financial Exchange)

它是什么:Intuit专有的OFX变体,仅用于Quicken。QFX文件是标准的OFX文件,包含额外的专有字段。

关键专有字段:INTU.BID - Quicken银行标识符。此数字ID映射到Quicken内部数据库中的一个银行。没有它,Quicken将拒绝导入文件。

与标准OFX的区别:

  • 标题中需要INTU.BID
  • 可能包含其他以INTU.*为前缀的字段
  • 金融机构向Intuit支付许可费以提供QFX下载
  • Quicken不导入没有INTU.BID字段的标准OFX文件

最适合:Quicken个人理财软件用户。必需格式——没有其他替代方案可用。

QIF(Quicken Interchange Format)

它是什么:Intuit最初为Quicken开发的旧版纯文本格式。标签-值对,每行一个,带有单字符标签:D表示日期,T表示金额,P表示收款人,L表示类别,M表示备注,N表示支票号码,^表示记录结束。

为何被取代:QIF缺乏重复检测机制(没有FITID等效项),没有账户标识字段,没有银行路由信息,没有余额数据,并且不同实现之间的日期格式不一致。

仍然相关:一些会计软件(Xero、Sage、GnuCash)仍然接受QIF导入。适用于旧系统迁移。

JSON(JavaScript对象表示法)

当前状态:JSON尚未成为银行对账单文件的标准,但越来越多地用于:

  • 开放银行API(英国开放银行标准、PSD2柏林集团)
  • FDX API(Financial Data Exchange - OFX的后继者,200多个成员组织)
  • Plaid、Yodlee、MX及其他数据聚合器API
  • 开发人员和自动化工作流程

日益增长的采用:开放银行法规(欧洲的PSD2、美国的CFPB第1033条)正在加速JSON API的采用。FDX API使用JSON/REST和OAuth 2.0,代表了金融数据交换的未来方向。

最适合:构建自动化工作流程、金融科技集成、自定义仪表板和开放银行API集成的开发人员。


格式一览表

格式 数据类型 重复检测 账户信息 会计软件支持 最适合
Excel 是 否 否 有限 手动审查、分析
CSV 否 否 否 通用 最大兼容性
QBO 是 是 (FITID) 是 QuickBooks QuickBooks用户
OFX 是 是 (FITID) 是 大多数软件 Xero、Wave、Sage
QFX 是 是 (FITID) 是 仅Quicken Quicken用户
QIF 部分 否 否 部分旧版 旧系统迁移
JSON 是 自定义 是 基于API 开发人员、自动化

会计软件兼容性

您的会计软件接受哪种格式?

软件 QBO OFX QFX QIF CSV 最佳选择
QuickBooks Online 是 是 是 否 是 QBO
QuickBooks Desktop 是 是 是 否 是 QBO
Quicken 否 否 是 是 否 QFX
Xero 是 是 是 是 是 OFX
Sage 否 是 否 是 是 OFX
Wave 否 是 是 否 是 OFX
FreshBooks 否 否 否 否 是 CSV
Zoho Books 否 是 否 是 是 OFX
GnuCash 否 是 否 是 是 OFX

经验法则:为QuickBooks使用QBO,为Quicken使用QFX,为其他所有软件使用OFX,并以CSV作为通用后备方案。


国际格式差异

如果您处理国际银行对账单,您会遇到大多数转换工具都会出错的格式差异。

日期格式

地区 格式 示例 说明
美国 MM/DD/YYYY 03/15/2026 月在前
欧洲、拉丁美洲 DD/MM/YYYY 15/03/2026 日在前
德国 DD.MM.YYYY 15.03.2026 点分隔符
日本 YYYY年MM月DD日 2026年03月01日 年在前,带汉字
中国 YYYY年MM月DD日 2026年3月1日 类似日本
ISO 8601 YYYY-MM-DD 2026-03-15 无歧义的国际标准

歧义问题:“03/04/2026”在美国是3月4日,在欧洲是4月3日。当对账单中的所有日期日值都小于等于12时,在不知道来源国的情况下,无法通过算法确定正确的格式。转换工具必须扫描对账单中的所有日期,查找大于12的值以确定格式。

数字格式

地区 一千零五十美分 说明
美国、英国、澳大利亚、日本 1,000.50 逗号为千位分隔符,句点为小数分隔符
德国、法国、西班牙、巴西、意大利 1.000,50 句点为千位分隔符,逗号为小数分隔符
瑞士 1'000.50 撇号为千位分隔符
印度 1,00,000.50 Lakh(十万)分组系统
斯堪的纳维亚 1 000,50 空格为千位分隔符,逗号为小数分隔符

欧洲银行的“10.000,45”表示一万零四十五美分——而不是十点零零零四五。弄错这一点会导致10,000倍的误差。

货币符号位置

  • 美国/英国:符号在金额前:$1,234.56 / £1,234.56
  • 法国、德国、西班牙:符号在金额后:1.234,56 €
  • 爱尔兰、荷兰:符号在金额前:€1,234.56
  • 日本:符号在金额前:¥123,456

字符编码

  • UTF-8 - 通用标准,支持所有脚本
  • GBK/GB2312 - 简体中文(中国银行使用)
  • Shift_JIS - 日文(日本银行使用)
  • Big5 - 繁体中文(台湾、香港)
  • EUC-KR - 韩文
  • ISO 8859-1 - 西欧语言
  • Windows-1252 - 西欧语言(旧版)
  • Windows-1256 - 阿拉伯语

在没有正确编码检测的情况下,在美国系统上打开中文或日文银行对账单会产生乱码。PDFSub支持130多种语言,并能自动检测日期格式、数字格式和字符编码——包括从右到左的阿拉伯语和希伯来语、CJK字符以及所有欧洲字符集。


常见的银行对账单要素

交易日期 vs. 过账日期 vs. 生效日期

银行对账单可能包含同一笔交易的多个日期:

  • 交易日期 - 实际发生购买或转账的日期
  • 过账日期 - 银行处理并记录的日期(信用卡购买通常晚1-3个工作日)
  • 生效日期 - 资金实际可用的日期(影响利息计算,在国际银行业务中常见)

大多数消费者对账单只显示过账日期。企业对账单通常同时包含交易日期和过账日期。

借记/贷记表示法

银行以不同方式表示借记和贷记:

  • 带符号金额:借记为-87.50,贷记为+3,500.00
  • 单独的列:“提款”和“存款”
  • 缩写:“DR”表示借记,“CR”表示贷记(在英国/英联邦国家常见)
  • 括号:(87.50)表示借记(会计惯例)

滚动余额

  • 每笔交易余额 - 每笔交易后更新(美国消费者对账单中最常见)
  • 仅每日余额 - 每天结束时显示的余额(企业对账单常见)
  • 无滚动余额 - 仅期初和期末余额(某些国际对账单)

滚动余额对于验证很有价值:您可以验证每笔交易是否正确地将余额从一行移到下一行。

标准抬头信息

大多数银行对账单包含:账户持有人姓名、账号(通常部分隐藏)、对账单周期、期初和期末余额、总存款和总提款额,以及银行路由/排序代码/SWIFT BIC。


密码保护

银行如何加密PDF

银行通常使用AES-128或AES-256加密。存在两种保护模式:

  • 用户密码(打开密码):打开文件所需
  • 所有者密码(权限密码):PDF可以打开,但编辑/复制可能受限

常见密码模式

银行 典型密码
Chase 全9位SSN
Bank of America SSN或TIN
Wells Fargo SSN或SSN后4位
Capital One 出生日期 (MMDDYYYY)

其他常见模式包括账号后4位、客户ID或会员号。银行通常在您首次启用电子对账单时告知密码模式。


多页对账单的挑战

长对账单(包含数百笔交易的企业账户)会带来几个提取挑战:

分割交易

交易描述可能从一页的底部开始,并在下一页的顶部继续。转换器必须检测延续行并将它们合并为一笔交易。

重复的抬头和页脚

大多数银行会在每页重复列标题,加上页码、法律免责声明和营销文本。这些必须被识别并从交易数据中排除。

延续行

许多交易有多个描述行:

01/15  ACH电子借记 供应商公司 $3,200.00  $2,000.00 REF#123456789 INVOICE 2026-001 供应商公司 应付账款部

第2行和第3行是属于第1行交易的延续行。它们通常没有日期和金额,并且在与描述列相同的x坐标处缩进显示。

余额结转

一些银行在延续页的顶部包含“余额结转”或“上期余额”行。这些是信息性的,不是交易,必须从提取的数据中排除。


常见交易缩写

银行对账单使用不同机构的缩写:

缩写 含义
ACH Automated Clearing House(自动清算中心,电子转账)
ATM Automated Teller Machine(自动取款机)
POS Point of Sale(销售点,借记卡)
EFT Electronic Funds Transfer(电子资金转账)
INT Interest payment(利息支付)
CHK / CK Check(支票)
WD / W/D Withdrawal(提款)
DEP Deposit(存款)
DD Direct Deposit(直接存款)
OD Overdraft(透支)
NSF Non-Sufficient Funds(资金不足)
SRVCHG Service Charge(服务费)
XFER Transfer(转账)

您应该了解的行业标准

这些格式用于公司银行业务和财资管理。您很少会直接遇到它们,但了解它们有助于解释银行对账单的工作方式。

BAI2(银行管理协会)

用于ERP系统(SAP、Oracle)中的自动现金管理和银行对账。一种固定宽度的ASCII格式,带有交易类型代码(例如,165 = 预授权ACH贷记,455 = ACH借记,495 = 电汇出账)。最初发布于1987年,现由ASC X9维护。

SWIFT MT940 / MT942

用于全球银行的公司客户和财资部门的日终(MT940)和日内(MT942)银行对账单。SWIFT每天处理约4500万条消息。基于标签的格式,带有冒号分隔的字段标识符。

ISO 20022 (camt.053)

MT940的现代基于XML的替代品。ISO 20022通用金融消息标准的一部分。比MT940数据更丰富,无字段长度限制,可机器解析的XML,带XSD验证。SWIFT正在从MT消息迁移到ISO 20022。SEPA(单一欧元支付区)强制要求欧洲支付使用camt格式。

NACHA ACH

美国自动清算中心(ACH)交易的文件格式。固定宽度的ASCII,每行正好94个字符。ACH每年处理约300亿笔交易。当您的银行对账单显示“ACH CREDIT”或“ACH DEBIT”时,底层交易是在银行之间以NACHA格式传输的。


为您的工作流程选择正确的格式

决策指南

如果使用QuickBooks(桌面版或在线版),请使用QBO。您将获得交易类型分类、通过FITID进行的重复检测,以及最丰富的数据导入元数据。

如果使用Xero、Sage、Wave或其他支持OFX的软件,请使用OFX。Xero自动映射字段,无需手动配置列。

如果使用Quicken,请使用QFX。这是Quicken唯一接受的格式。

如果需要审查、分析或操作数据后再导入,请使用Excel。创建数据透视表、运行公式或准备报告。

如果您的软件未列出,或需要最大程度的跨系统兼容性,请使用CSV。准备手动映射列。

如果您正在构建自动化工作流程、API集成或自定义报告系统,请使用JSON。

专业技巧

  • 在软件支持的情况下,始终优先使用QBO/OFX而不是CSV——仅重复检测功能就能节省数小时的清理时间。
  • 将原始PDF与转换后的文件一起保存——它是您的审计跟踪和源文档。
  • 每次导入后进行验证——抽查期初/期末余额和几个随机交易。
  • 根据软件匹配格式——为您的会计平台使用原生格式可避免手动列映射并启用自动功能。

免费试用

准备好转换您的第一份对账单了吗?立即上传PDF——PDFSub可转换为Excel、CSV、QBO、OFX、QFX和JSON。数字对账单完全在您的浏览器中处理,以最大程度地保护隐私。开始7天免费试用,即可完全访问所有格式。

返回博客

有疑问? 联系我们

PDFSub

您所需的一切 PDF 和文档工具,尽在一处。快速、安全且私密。

符合 GDPR符合 CCPA符合 SOC 2
由 PDFSub Engine 提供支持

产品

  • 所有工具
  • 功能
  • 银行对账单
  • API
  • 定价
  • 常见问题
  • 博客

支持

  • 关于我们
  • 帮助中心
  • 联系我们
  • 常见问题

法律条款

  • 隐私政策
  • 服务条款
  • Cookie 政策

© 2026 PDFSub. 保留所有权利。

在美国制造,怀揣对全球用户的热忱