📄

發票

把 PDF 發票資料轉入 Excel:香港中小企的穩妥做法

Alveek · 9 分鐘閱讀 · Read in English →

如果公司到現在仍然靠人手把供應商發票逐張打入試算表,軟件可以省去大部分打字工夫。抽取工具——無論是讀取數碼 PDF,還是為掃描件做 OCR——能減少重新輸入,但它們產生的數值,在任何東西入賬之前仍然需要核對。「讀取」和「核對」是兩件事。

這篇文章講的是香港中小企辦公室如何把 PDF 發票資料轉入 Excel:軟件實際上怎樣讀一張發票、一個連核對步驟的示範例子、一個值得知道的試算表公式陷阱,以及一套你這星期就可以落實的流程。這是一份作業流程指引,不是會計或法律意見。

軟件怎樣讀一張發票

情況分兩種,需要的工具也不同。

文字型(原生數碼)PDF。 發票由電腦產生,文字本身已經在檔案裡。Excel 可以用 取得資料 ▸ 從檔案 ▸ 從 PDF 直接抽出表格,做法見 Microsoft 的 Power Query PDF 連接器說明文件。它會開啟一個「導覽器」視窗,你選擇要匯入的表格,然後載入或轉換。有兩點要有心理準備:這個功能是否可用會因 Excel 版本和平台而不同;而當發票的貨品說明佔多行時,匯入後的列往往會錯位,需要整理。

掃描或影相的發票。 這時「發票」只是一張圖片。軟件必須先做 OCR(光學文字辨識)把像素轉成文字。清晰、平正、完整一頁的圖像會有幫助;歪斜、淡色或對比度低的文字、蓋在數字上的公司印章、手寫批註,都可能令字元辨識的可靠程度下降。質素差的輸入不一定產生錯誤結果,但不確定的欄位仍要與原件核對。

結構化(AI)抽取 在以上兩種情況之上再加一層。它不是給你一個粗略表格,而是回傳有標籤的欄位——發票號碼、發票日期、供應商、小計、稅額、總額——以及一張貨品明細清單。Microsoft 的發票處理預建模型說明文件 可作參考,看這類工具會抽取甚麼:表頭欄位加上貨品明細,並會為欄位附上一個信心分數。該文件亦提到它接受繁體中文(香港)發票,並建議使用清晰的掃描。請把信心分數當作「這個欄位要人手看一看」的提示,而不是「這個數值一定正確」的保證。

示範例子:一張發票,六項核對

示範例子(非真實客戶資料)。

收到一張 PDF 供應商發票:

手機上可左右滑動查看整張表。

欄位 內容
供應商 九龍包裝用品
發票號碼 KPS-24188
發票日期 2026-08-14
付款條件 發票日起 30 日內付款(Net 30)
到期日 2026-09-13
貨幣 港元

手機上可左右滑動查看整張表。

項目 數量 單價(HK$) 小計(HK$)
紙箱(大) 20 12.50 250.00
氣泡膜(卷) 6 85.00 510.00
易碎標籤 100 0.40 40.00
小計 800.00
送貨費 60.00
發票總額 860.00

在這個總額接觸你的帳目之前,先做六項核對:

  1. 可能重複? 這張供應商的發票號碼 KPS-24188 是否已經在試算表內——或者另一個號碼,但供應商、日期、金額都相同?把相符視為要調查的疑點,而不是已確認的重複:拒絕任何一張之前,先比對兩份來源文件。
  2. 它真的是發票,而且與來源對得上嗎? 不是貸項通知單(credit note)、不是月結單、不是形式發票(pro-forma),也不是附了價錢的送貨單——各有不同處理方式。把你那一列的供應商名稱、發票號碼和發票日期,逐字對回眼前的 PDF。
  3. 明細加得到總額嗎? 20 × 12.50 = 250.00;6 × 85.00 = 510.00;100 × 0.40 = 40.00。小計 250.00 + 510.00 + 40.00 = 800.00。加送貨費 60.00 → 860.00。與列明的總額對得上。如果對不上,停。
  4. 貨幣有沒有寫明? 抽取只給你數字 860,你那一列應該寫 HKD 860.00。如果你以其他貨幣入賬,記下所用的匯率和日期。
  5. 有沒有危險的儲存格內容? 見下一節。
  6. 有沒有人批核? 在該列旁邊寫上姓名和日期。

試算表陷阱:會被當成公式執行的儲存格

當抽取出來的文字落在一個以 =+-@ 開頭的儲存格,試算表可能在檔案一打開的時候就把它當成公式。像 =REF/2026 這樣的供應商參考編號,或者有人貼進去的一段附註,就變成可執行的內容。這叫做 CSV 注入(CSV injection)或公式注入,OWASP 關於 CSV 注入的說明 解釋了一個匯出了不受信任數值的檔案,如何反過來對付打開它的人。

當你把抽取結果由 CSV 帶進 Excel,實務上的防範:用「取得資料/從文字/CSV」,並在匯入步驟中,把每一個不受信任的文字欄(供應商名稱、參考編號、貨品說明、附註)在載入之前設為 文字 資料類型。然後另做一步,把金額欄和日期欄核對並轉換成數字和日期。單靠匯入並不安全——像 =1+1 這樣的值仍然要攔截——而 OWASP 指出,日後儲存或重新開啟檔案可能令問題再次浮現,所以匯出後要再檢查。不要倚賴單一招「在前面加個引號」;OWASP 明確指出,沒有任何一個消毒步驟在每一個試算表程式裡都安全。如果資料會進入其他人會打開的試算表,這一項核對不是選做,是必做。

處理麻煩的文件

貸項通知單。 貸項通知單是減少你的應付款。不要把它當成另一張正數帳單輸入。在暫存表裡,用一個獨立項目記錄它,連結到它更正的那張發票,令表內與該供應商的滾存餘額反映到它。到正式入賬時,用你會計系統本身的貸項通知單流程,而不是人手打一條負數。

多貨幣。 按抽取結果記下發票貨幣。如果你的帳以港元計,加上換算匯率和日期——不要讓任何人日後靠估。

長篇或多頁發票。 原生數碼的表格可以逐頁抽取。當貨品說明換到第二行,預期要整理——Microsoft 的 PDF 連接器說明文件 就針對這種情況,指向「向下填滿」和「群組」步驟。

低信心欄位。 如果工具把總額、某個日期或某個數量標示為不確定,在它繼續之前,把那個欄位與圖片對一對。信心分數就是用來做這件事的。

一套你這星期就可以落實的流程

  1. 分類收件匣。 把收到的發票分成原生數碼 PDF 和掃描/相片。
  2. 抽取。 原生數碼:Excel 取得資料 ▸ 從 PDF,或結構化抽取工具。掃描:先做 OCR 或結構化抽取工具。
  3. 先落入暫存表,絕不直接入總帳。
  4. 做六項核對。 任何一項不通過,就進入「待查」清單,不入帳。
  5. 批核並存檔。 由指名的人簽核;該列移入總帳;保留原本的 PDF 或掃描,讓任何一筆入賬日後都可以核對。

一個項目可以把前四步串連起來——抽取、重複核對、暫存表自動運作——只留下覆核和批核給人做。這是描述這樣一套流程「可以」做甚麼,不是說有一個已經連上你帳目的產品。

如果你想有人替你的發票流程把關,我們關於如何在香港開發票的文章講的是開單那一邊,而值得自動化的小生意工作清單可以把這件事放進脈絡。準備好的時候,告訴我們今天的發票是怎樣收進來的,我們會指出哪裡適合自動化、哪裡不適合。

常見問題

Excel 可以直接打開 PDF 發票嗎? Excel 可以透過「取得資料 ▸ 從檔案 ▸ 從 PDF」匯入文字型 PDF 裡的表格,見 Microsoft 的 PDF 連接器說明文件。是否可用取決於你的 Excel 版本和平台,而掃描發票需要先做 OCR。

AI 抽取準到可以不用核對嗎? 不可以。信心分數(如 Microsoft 的發票模型說明文件 所描述)告訴你要看哪裡——它不是「數值正確」的承諾。永遠要把貨品明細加總對回總額,並檢查是否重複。

公司印章、蓋章和手寫附註呢? 它們可能令附近或底下的文字,OCR 讀取的可靠程度下降。把受影響的欄位與圖片對一對,凡是讀取看來不確定的,就人手輸入。

輸入之後還要保留原本的 PDF 嗎? 要。保留來源文件,而不只是試算表那一列,讓任何一筆入賬都可以追溯,並由沒有參與打字的人覆核。

我們示範哪些發票步驟可以自動化 — 完全免費。

預約免費自動化評估 →

本文為一般資訊,並非會計或法律意見。你自己的流程請向專業顧問核實。