Typed OpenDocument spreadsheet (.ods) reader and writer with bounded, deterministic packages
| 对象 | 本文的证据边界 |
|---|---|
| 默认分支 0.5.0 候选源码 | 已纳入复审修复;不能由此推断 registry 已发布 |
| Mooncakes 0.5.0 | 尚未取得发布及干净消费者精确安装回执;源码版本号不是发布证明 |
| 历史 170 / 182 阶段 LibreOffice GUI | 只证明对应阶段及样本;不能替代 0.5.0 候选的重新往返验证 |
| 2026-10-31 保存输出审计 | 绑定 897c906 的历史文件摘要;重读保存文件不是重新执行库、GUI 或完整符合性验证 |
python3 scripts/install-ci-sdk.py --dest "$PWD/.toolchains/ci-sdk"
export MOON_REGISTRY_API=1
export MOON_HOME="$PWD/.toolchains/ci-sdk"
export PATH="$MOON_HOME/bin:$PATH"
python3 scripts/restore_deps.py
moon update
moon test --target js
moon run examples/generate --target jsfn make_report() -> Bytes raise @ods.OdsError {
let workbook = @ods.Workbook::new()
let sheet = workbook.add_sheet("销售")
sheet.set(0, 0, @ods.Cell::new(Text("十月销售")).styled(Header))
sheet.merge(0, 0, 1, 2)
sheet.set(1, 0, @ods.Cell::new(Date(2026, 10, 1)).styled(DateISO))
sheet.set(1, 1, @ods.Cell::new(Number(399.88)).styled(Decimal2))
sheet.set(2, 1, @ods.Cell::formula("of:=[.B2]*2", Number(799.76)))
sheet.set_column_width(1, 45)
workbook.to_ods()
}mkdir -p /tmp/moonods-example-output
ODS_INPUT=tests/reader-fixtures/external/libreoffice-dev-types.ods \
ODS_ACCEPT_LOSS=1 ODS_SET=0,1,0,8.5 \
ODS_OUTPUT=/tmp/moonods-example-output/edited.ods \
ODS_CSV=/tmp/moonods-example-output/details.csv \
ODS_CSV_CACHE=1 ODS_CSV_REJECT_FORMULA_TEXT=1 \
moon run examples/ods_tool --target jsmkdir -p /tmp/moonods-procurement/input /tmp/moonods-procurement/output
REPORT_OUTPUT=/tmp/moonods-procurement/input moon run examples/procurement --target js
printf '订单,数量\r\nSYN-202610-001,5\r\nSYN-202610-004,0\r\n' > /tmp/moonods-procurement/changes.csv
RECONCILE_INPUT=/tmp/moonods-procurement/input/procurement.ods \
RECONCILE_CHANGES=/tmp/moonods-procurement/changes.csv \
RECONCILE_OUTPUT=/tmp/moonods-procurement/output RECONCILE_ACCEPT_LOSS=1 \
moon run examples/reconcile --target js历史 182 阶段记录;本节不是 0.5.0 候选的再次 GUI 验证。
type Celltype ImportResulttype Sheettype Workbookfn read_ods(data : Bytes, allow_formatting_loss? : Bool, allow_extended_types? : Bool, preserve_basic_formatting? : Bool) -> ImportResult raise OdsErrorInstall
Download zipTyped OpenDocument spreadsheet (.ods) reader and writer with bounded, deterministic packages