SwiftBeanCountSheetSync

CI Status Documentation percentage License: MIT Latest version platforms supported: macOS SPM compatible

该项目是 SwiftBeanCount 的一部分,请查看主文档此处

内容

此库将 Beancount 文件中的交易同步到具有共享交易的 Google Sheets。 当您与不使用 beancount 的其他人分摊费用时,这非常有用。

如何使用

  1. 根据您希望同步的方式,创建 UploaderDownloader 的实例,并提供 Sheet 的 HTTP URL 以及 beancount 文件的文件 URL。
  2. 通过 GoogleAuthentication 对用户进行 Google 身份验证。
  3. 调用步骤 1 中创建的实例上的 start 方法,并传入步骤 2 中的身份验证实例。
  4. 如果同步成功,您的完成处理程序将获得一个 SyncResult。 这将包括:
    • 需要添加的交易(用于上传到表格或下载到账本)
    • 读取表格时发生的解析错误
    • 用于同步的配置

请查看完整的文档此处,或查看使用此库的 SwiftBeanCountSheetSyncApp

Beancount 元数据

同步依赖于您的 beancount 文件中的元数据进行配置。 请将它们添加到您的 beancount 文件中。

通用配置

这些选项通过 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 格式

Google Sheet 需要采用特定格式才能被读取。 该选项卡必须命名为 Expenses

必须在 A-I 列中包含以下列,其他列将被忽略

用法

该库支持 Swift Package Manger,因此只需在您的 Package.swift 中添加一个依赖项

.package(url: "https://github.com/Nef10/SwiftBeanCountSheetSync.git", .upToNextMajor(from: "X.Y.Z")),