Skip to content
| Marketplace
Sign in
Visual Studio Code>Linters>Fixed-Width InspectorNew to Visual Studio Code? Get it now.
Fixed-Width Inspector

Fixed-Width Inspector

PyLabs

|
1 install
| (0) | Free
Color every field of fixed-width (fixed-length) text files from your record layout, and validate them automatically: Big5 byte lengths, dates, Taiwan ID check digits and trailer totals.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Fixed-Width Inspector

VS Code 套件:依你定義的欄位規格,將固定長度文字檔(台灣稱「媒體檔」)的每個欄位上色,並自動檢核資料是否異常。

Highlight and validate fixed-width (fixed-length) text files — ACH, payroll, NACHA, Zengin, tax and health-insurance filings — using a JSON record layout. Supports Big5 / MS950 files whose field lengths are counted in bytes.

官網與設定說明:https://fixed-width-inspector.pylabs.app(設定說明 / Schema guide)

欄位上色與記錄別標籤 滑鼠停在欄位上顯示說明 表格檢視

功能

  • 欄位看得見:相鄰欄位以 2–4 色交替上色,亮色、暗色主題都適用
  • 異常自動標出:錯誤以紅色波浪底線標示,並列入「問題」面板
  • 游標所在欄位即時說明:Hover 顯示欄位名稱、起訖位置、長度、原值、解析值與錯誤原因;狀態列顯示「帳號|第 2–15 碼」
  • 中文以位元組計:Big5 / MS950 媒體檔中文佔 2 碼,欄位邊界切到中文字時會提示
  • 記錄別標籤:每行最前面顯示「首筆/明細/尾筆」,認不出的行顯示紅色「未知」;可用 schema 的 label 自訂文字
  • 表格檢視:每種記錄一個分頁、每個欄位一欄,有錯的格子標紅;點格子跳到原檔位置,修改檔案時表格即時更新
  • 匯出 CSV:把表格匯出成 Excel 可直接開啟的 CSV(中文不亂碼、帳號前面的 0 不會消失)
  • 編碼開錯偵測:Big5 檔被當成 UTF-8 開啟時,提示並可一鍵以正確編碼重新開啟

檢核項目

層級 檢核
欄位 text(靠左、pattern)、numeric(只能 0–9、左補 0)、amount(隱含小數、正負號)、date(YYYYMMDD / YYMMDD / 民國 ROC_YYYMMDD)、enum、twid(身分證字號檢查碼)、twbiz(統一編號檢查碼)、filler(保留欄位)
行 整行長度、無法對應任何記錄格式、換行符號、首筆 / 尾筆位置、無法解碼的字元(U+FFFD)
跨行 尾筆總筆數 = 明細筆數、尾筆總金額 = 明細金額加總

開始使用

  1. 在媒體檔的同一層建立 .fixedwidth/ 資料夾,放入 schema(*.json)。也可以執行 Fixed-Width Inspector: Create Schema from Template,會在目前檔案旁邊建立範例並立即套用。
  2. 開啟檔名符合 schema filePattern 的檔案,就會自動套用。
  3. 或點編輯器右上角的尺規圖示、狀態列的「未套用 schema」,選 從檔案選擇 schema… 指定任何位置的 schema 檔;這個選擇會被記住。
  4. 撰寫 schema 時有自動完成與格式驗證。

schema 的尋找順序

  1. 手動指定給這個檔案的 schema
  2. 檔案同一層的 .fixedwidth/,找不到再往上一層,直到工作區根目錄(最近的優先)
  3. 設定 fixedWidthInspector.schemaPaths 列出的目錄

filePattern 若含有資料夾(如 data/*.txt),是相對於 .fixedwidth/ 所在的資料夾;**/ACH*.txt 或 ACH*.txt 則不受位置影響。

Schema 範例

{
  "name": "ACH 扣款媒體檔",
  "filePattern": "**/ACH*.txt",
  "encoding": "big5",
  "lengthUnit": "byte",
  "lineLength": 250,
  "lineEnding": "CRLF",
  "records": [
    {
      "type": "detail",
      "when": { "start": 1, "length": 1, "equals": "2" },
      "fields": [
        { "name": "帳號", "start": 2, "length": 14, "type": "numeric" },
        { "name": "戶名", "start": 16, "length": 40, "type": "text" },
        { "name": "金額", "start": 56, "length": 13, "type": "amount", "decimals": 2 },
        { "name": "身分證號", "start": 69, "length": 10, "type": "twid" }
      ]
    }
  ],
  "crossChecks": [
    { "rule": "sum", "field": "detail.金額", "equals": "trailer.總金額" }
  ]
}
  • start 為 1-based,單位依 lengthUnit(byte 或 char)。省略時,big5 / ms950 預設 byte,utf-8 預設 char。
  • 只有單一記錄格式時,records 放一筆且可省略 when。
  • 所有欄位都可加 required(不可全空白)、description(顯示在 Hover)、severity(error / warning / info)。

首筆、明細、尾筆的組合

首筆、明細、尾筆可以任意組合(共 7 種),schema 的 records 只要列出這種檔案有的記錄即可,例如只有明細的檔案就只放一筆 detail。執行 Create Schema from Template 時可以直接勾選要哪幾種記錄。

每種記錄可用 required 設定是否每個檔案都必須出現:

記錄 required 預設 設為 false 時
有 position 的記錄(首筆 / 尾筆) true:缺少時報錯 可有可無;出現時仍須在第一行 / 最後一行,參照它的跨行檢核在缺少時略過
其他記錄(明細) false:可以沒有 設為 true 時,檔案中至少要有一筆

更多範例與每個參數的說明見設定說明。

表格檢視與匯出 CSV

  • 首筆、明細、尾筆各一個分頁;只出現一次的記錄(通常是首筆、尾筆)也會濃縮顯示在表格上方
  • 金額、日期顯示解析後的值(1,500.00、2026-10-19),勾「顯示原始值」可切換;帳號等數字欄位一律照原樣顯示
  • 有錯的格子標紅、警告標黃,滑鼠移上去看原因;整行的問題(例如長度錯誤)標在行號上
  • 可勾「只看有問題的列」或搜尋任何內容;在編輯器移動游標,表格會標出對應的列
  • 匯出 CSV 為 UTF-8(含 BOM):
    • 前面有 0 或 12 碼以上的數字(例如帳號)以 ="000123" 寫入,Excel 開啟後不會被吃掉或變成科學記號
    • 以 =、+、-、@ 開頭的文字前面加 ',避免被 Excel 當成公式執行

指令

指令 說明
Fixed-Width Inspector: Select Schema 為目前檔案選擇 schema,或從檔案指定(編輯器右上角也有按鈕)
Fixed-Width Inspector: Validate File 對全檔執行完整檢核並開啟「問題」面板
Fixed-Width Inspector: Toggle Highlighting 開關欄位上色
Fixed-Width Inspector: Create Schema from Template 在目前檔案旁的 .fixedwidth/ 建立範例 schema
Fixed-Width Inspector: Show as Table 以表格檢視目前檔案(有套用 schema 時,編輯器右上角也有按鈕)
Fixed-Width Inspector: Export as CSV 把某一種記錄匯出成 CSV,可選「解析值」或「原始值」
Fixed-Width Inspector: Reopen with Schema Encoding 以 schema 指定的編碼重新開啟(VS Code 1.100 以上可直接切換,舊版會開啟編碼選單)

設定

設定 預設 說明
fixedWidthInspector.enabled true 啟用套件
fixedWidthInspector.schemaPaths [".fixedwidth"] 額外的 schema 目錄(相對於工作區或絕對路徑);檔案旁邊的 .fixedwidth/ 一律會自動尋找
fixedWidthInspector.fieldColors 4 個半透明色 欄位交替上色的顏色
fixedWidthInspector.showRecordLabels true 在每行最前面顯示記錄別標籤
fixedWidthInspector.maxDiagnostics 1000 「問題」面板最多列出的筆數,超過時狀態列會提示
fixedWidthInspector.debounceMs 300 編輯後延遲多久重新檢核(毫秒)
fixedWidthInspector.language auto 介面語言:auto 跟隨 VS Code、en 英文、zh-tw 繁體中文

開發

本套件不含任何第三方執行期套件;開發只需 TypeScript 與型別定義。

npm install
npm run compile          # 編譯到 out/
npm run lint             # TypeScript 嚴格型別檢查
npm test                 # 單元測試(node:test)+ 覆蓋率門檻 80%
npm run test:integration # 在本機 VS Code 中執行整合測試(使用獨立暫存設定檔)
npm run samples          # 重新產生 examples/ 的範例媒體檔
npm run package          # 打包 .vsix

src/core/ 與 src/schema/ 為純邏輯,不 import vscode,可直接單元測試。

授權

MIT

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft