@ekwo-ai/trial-balance
读取 a 作为 CSV 编写的试算表 每个账户一行,借项和 信用,或一个签名余额——入平面对象,在类型脚本中,无 依赖性.
每一个会计包和每个电子表格 都只有一件事 保存,这使得它的方式 从任何地方的书: 新书打开当天的余额.
import { readTrialBalance } from '@ekwo-ai/trial-balance';
const books = readTrialBalance(bytesOrString);
books.opening; // [{ account: '512000', debit: '8400.00', credit: '0.00', contact: null, … }, …]
books.accounts; // [{ code: '512000', name: 'Bank', type: null }, …]
books.contacts; // the parties a receivable or a payable row names
books.violations; // [{ rule: 'unbalanced', message: '…', row: null }] when it does not balance
文件
一个头行,然后每个账户一行。 这些柱子是用它们的名字找到的,
不考虑案件,也不考虑 * 一些出口商品需要
栏:
| 栏 | 接受姓名 | |
|---|---|---|
| 账户 | account, (中文(简体) ), account code, (中文(简体) ), code | 所需经费 |
| 名称 | name, (中文(简体) ), account name | 选项 |
| 借记 -- -- 贷记 | debit, (中文(简体) ), credit | 两者,或 |
| 余额 | balance | 1个签入的余额,借方为正数 |
| 联系人 | contact, (中文(简体) ), party | 可选择:应收款行或应付款行的客户或供应商 |
| 联系人名称 | contact name, (中文(简体) ), party name | 选项 |
| 标签 | label, (中文(简体) ), description | 选项 |
- 借记一行 财务报告和审定财务报表 信用为: 净额: 试算表打印 每方共计100个借方,30个贷方 借记。 一行的网到零 打开什么都没有,被忽略.
- 这个 分隔符 从标题中读取:
,, (中文(简体) ),;和标签 外头有引文 Fields可能被引用为RFC 4180所言. - 这个 小数标记 是一个问题。 逗号只在文件中读取 被别的东西所分离, 在那里它不能成为 成千上万的分隔者。 没有 数千个分隔符,没有货币标志,没有解释: 每一个都被拒绝 而不是通过一种方式读取.
- 这个 编码 是UTF -8,致命的。 据说用拉丁文-1保存的文件是这样的
(单位:千美元)
{ encoding: 'iso-8859-1' }从来没有猜到,因为每个顺序 其中的字节为有效的拉丁-1.
它的回报
所申报的形状 src/types.ts - 帐户、联系人,
条目、期初余额、违规情况——即实地、形状
该寄存处的会计导出每个读取器都自行声明.
试算表 opening 叶子 entries 空无相. 上面说不行
货币和无日期:文件没有,无论需要什么余额
告诉那天它打开.
没有平衡的东西又回来了 violations,这些行回来作为
写作。 什么是根本不是试算表——没有账户栏,借项
在余额一栏外的一栏中,不是一栏的金额被抛出
BooksFileError 带有 code。 。 。 .
旁边的开口物品
试算表说明应收款账户的持有情况;账龄余额
旁边印着谁欠它,哪个号码. readOpenItems()
阅读该清单,每张发票或信用证仍有一行:
import { readOpenItems } from '@ekwo-ai/trial-balance';
const { items, contacts, violations } = readOpenItems(bytesOrString);
items; // [{ type: 'sale_invoice', number: 'F2025-0412', contact: 'C0001', amount: '1200.00',
// documentDate: '2025-12-12', dueDate: '2026-01-11', paymentReference: '+++090/9337/55493+++', … }]
| 栏 | 接受姓名 | |
|---|---|---|
| 类型 | type, (中文(简体) ), document type | 要求: sale_invoice, (中文(简体) ), sale_credit_note, (中文(简体) ), purchase_invoice 或者说 purchase_credit_note |
| 编号 | number, (中文(简体) ), document number, (中文(简体) ), invoice number | 所需经费 |
| 联系人 | contact, (中文(简体) ), party | 需要: 以 |
| 联系人名称 | contact name, (中文(简体) ), party name | 选项 |
| 金额 | amount, (中文(简体) ), open amount, (中文(简体) ), amount open | 需要: 仍然开放的, 正态 —— 类型为侧 |
| 文件日期 | document date, (中文(简体) ), issue date, (中文(简体) ), date | 所需经费, YYYY-MM-DD |
| 应交日期 | due date | 可选的, YYYY-MM-DD |
| 付款参考 | payment reference, (中文(简体) ), structured reference | 选项 |
| 供应商参考 | supplier reference | 选项 |
| 标签 | label, (中文(简体) ), description | 选项 |
写一天 YYYY-MM-DD 而别无他法:
在一个海洋的两侧读取不同,被拒绝而不是被猜测.
缺少所需值的行会重新出现 violations 被抛弃;
未知类型、签名金额或非签名日期被抛出为
BooksFileError。分隔符、小数标记和编码为
余额.
何处去
它不知道账目表。 密码是文件写的
每一个图的帐号都是进口商的生意。 单位
电子操作系统 这是 ekwo import trial-balance <file> --opening-date <day> [--open-items <file>],从何处
是一年中的第一年,或一年之内的一天
每个打开的项目都成为张贴的文档.
麻省理工学院.