{"id":28564488,"url":"https://github.com/utyfua/univer-sheet-data-sync","last_synced_at":"2025-06-10T13:36:25.793Z","repository":{"id":297089966,"uuid":"995622415","full_name":"utyfua/univer-sheet-data-sync","owner":"utyfua","description":"Easier way to sync data between Univer Sheets and custom data sources","archived":false,"fork":false,"pushed_at":"2025-06-03T19:32:22.000Z","size":64,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-06-04T04:24:57.535Z","etag":null,"topics":["sheet","spreadsheet","univer"],"latest_commit_sha":null,"homepage":"https://utyfua.github.io/univer-sheet-data-sync/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/utyfua.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-03T19:10:53.000Z","updated_at":"2025-06-03T19:31:11.000Z","dependencies_parsed_at":"2025-06-04T04:25:13.630Z","dependency_job_id":"240c23b1-f7cf-4644-a49a-13bb2fa483df","html_url":"https://github.com/utyfua/univer-sheet-data-sync","commit_stats":null,"previous_names":["utyfua/univer-sheet-data-sync"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/utyfua%2Funiver-sheet-data-sync","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/utyfua%2Funiver-sheet-data-sync/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/utyfua%2Funiver-sheet-data-sync/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/utyfua%2Funiver-sheet-data-sync/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/utyfua","download_url":"https://codeload.github.com/utyfua/univer-sheet-data-sync/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/utyfua%2Funiver-sheet-data-sync/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259085480,"owners_count":22803208,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["sheet","spreadsheet","univer"],"created_at":"2025-06-10T13:36:24.339Z","updated_at":"2025-06-10T13:36:25.779Z","avatar_url":"https://github.com/utyfua.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# univer-sheet-data-sync\n\nEasier way to sync data between Univer Sheets and custom data sources.\n\nTo use please review the [playground example](https://github.com/utyfua/univer-sheet-data-sync/blob/master/playground/main.ts).\nLive preview is available [here](https://utyfua.github.io/univer-sheet-data-sync/).\n\n## Notes\n\n- You need to add at least one sheet via the `upsertSheet` method before calling `.bootstrap()`;\n  otherwise, Univer will create an empty sheet.\n- You can override any part of the data model via the `setSheetDataModel` method, including data and listeners.\n  - When replacing a listener, the library will gradually dispose of the old one and start using the new one.\n- You can skip setting `data` unless you actually have data to show. \n  - For example, you can use `setSheetDataModel` to fetch data from the server and then set it to the sheet.\n\n## Keep data model in sync\n\n### `rejectInvalidInput` is true\n\nWhen `rejectInvalidInput` is true, the library will use `validateCellValue` to check if the value is valid before \ncalling `onCellValueChange`.\n\n### `accumulateChanges` is false\n\nWhen `accumulateChanges` is false or not set, the library will expect you are modifying \nor persisting the data object yourself when handling `onCellValueChange`.\nIf you are not doing this, the library will keep new state until you set same data again via `setDataModel`.\n\n### `accumulateChanges` is true\n\nWhen `accumulateChanges` is true, the library will accumulate changes as set of mutations.\n`validateCellValue` and `onCellValueChange` will be called for each change but you SHOULD NOT change the data.\n\n## License\n\n`univer-sheet-data-sync` is released under the MIT License.\n\n---\n\n`univer-sheet-data-sync` is not affiliated with Univer or DreamNum Co., Ltd.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Futyfua%2Funiver-sheet-data-sync","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Futyfua%2Funiver-sheet-data-sync","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Futyfua%2Funiver-sheet-data-sync/lists"}