An open API service indexing awesome lists of open source software.

https://github.com/code-by-sia/openwebsheet

OpenSource Web based spreadsheet
https://github.com/code-by-sia/openwebsheet

canvas formula jest pwa sheet spreadsheet typescript vuejs web-based-application

Last synced: 9 days ago
JSON representation

OpenSource Web based spreadsheet

Awesome Lists containing this project

README

          

# OpenWebSheet

OpenWebSheet is an open-source, web-based spreadsheet application. It runs in the browser, can be installed as a Progressive Web App (PWA), and stores spreadsheet documents in the project's `.ows` format.

[CI status](https://github.com/code-by-sia/OpenWebSheet/actions?query=workflow%3ACI)

## Demo and PWA installation

OpenWebSheet demo

1. Open the hosted app:
2. Install the PWA using the install icon in the browser address bar.
3. Download the sample file:
4. Use the folder/load icon in the app to open the sample `.ows` file.

## Features

- React application shell with shadcn-style controls
- Canvas-based spreadsheet rendering
- Basic cell content editing
- Borders
- Merge and split cells
- Basic formula support
- Import/export support for the native `.ows` format
- PWA support

## Roadmap

- [x] Basic structure
- [x] Canvas rendering
- [x] Basic content editor
- [x] Borders
- [x] Merge and split
- [ ] Formula and expressions
- [x] Basic support
- [ ] Advanced features
- [x] Import/export
- [x] Mathematical formulas
- [ ] OpenOffice/OpenDocument format support
- [ ] Advanced UI features

## Project setup

Install dependencies:

```sh
npm install
```

Start the development server:

```sh
npm run dev
```

Build for production:

```sh
npm run build
```

Run type checking:

```sh
npm run typecheck
```

Run unit tests:

```sh
npm test
```

Run Storybook for isolated UI development:

```sh
npm run storybook
```

## Documentation

Additional documentation is available in the [`docs/`](docs/) directory:

- [Development guide](docs/development.md)
- [Architecture overview](docs/architecture.md)
- [UI structure](docs/ui-structure.md)
- [User guide](docs/user-guide.md)
- [Supported formats](docs/supported-formats.md)
- [Troubleshooting](docs/troubleshooting.md)

## Contributing

1. Create an issue or choose an existing one.
2. Create a focused branch for the change.
3. Keep changes small and reviewable.
4. Run tests, type checking, and the production build before opening a pull request.
5. Update documentation when behavior, setup, or architecture changes.

## License

OpenWebSheet is released under the [MIT License](LICENSE).