此库将 Beancount 文件中的交易同步到具有共享交易的 Google Sheets。 当您与不使用 beancount 的其他人分摊费用时,这非常有用。
Uploader
或 Downloader
的实例,并提供 Sheet 的 HTTP URL 以及 beancount 文件的文件 URL。start
方法,并传入步骤 2 中的身份验证实例。SyncResult
。 这将包括:请查看完整的文档此处,或查看使用此库的 SwiftBeanCountSheetSyncApp。
同步依赖于您的 beancount 文件中的元数据进行配置。 请将它们添加到您的 beancount 文件中。
commoditySymbol
:同步仅适用于一种商品,需要在此处指定account
:用于跟踪人与人之间余额的账户tag
:附加到所有已同步或应同步的交易的标签name
:您的姓名 - 这将用于标识表格的列dateTolerance
:检查交易是否已存在时使用的日期容差(以天为单位)这些选项通过 customs
全局指定,如下所示(日期无关紧要,将被忽略)
YYYY-MM-DD custom "sheet-sync-settings" "commoditySymbol" "CAD"
您可以将 sheet-sync-category
元数据附加到帐户,以在 1-1 关系中将表格中的类别映射到帐户,反之亦然。 这是可选的,如果找不到任何映射,将使用后备帐户/空类别。
示例
2020-12-26 open Expenses:Communication:Internet
sheet-sync-category: "Internet"
Google Sheet 需要采用特定格式才能被读取。 该选项卡必须命名为 Expenses
。
必须在 A-I 列中包含以下列,其他列将被忽略
Date
格式为 yyyy-MM-ddPaid to
例如商店名称,可以是一个空字符串Amount
使用 .
作为小数点。 可以使用 ,
分隔千位,并支持使用括号表示负值的会计样式Category
请参阅上面的帐户配置Part Name1
和 Part Name2
。 Name1
和 Name2
应该是人的姓名(例如,替换它们)。 其中一个必须与账本中配置的名称相同(请参阅上文)。 每列必须包含一个数字,该数字表示该方为购买支付的金额。 应用与金额相同的格式规则。Who paid
两个姓名之一Comment
虽然该列是必需的,但它可以是一个空字符串该库支持 Swift Package Manger,因此只需在您的 Package.swift
中添加一个依赖项
.package(url: "https://github.com/Nef10/SwiftBeanCountSheetSync.git", .upToNextMajor(from: "X.Y.Z")),