# Office Suite for Obsidian
---
**Office Suite** is a powerful, all-in-one productivity plugin for [Obsidian](https://obsidian.md) that lets you view and edit Microsoft Word (`.docx`), Microsoft Excel (`.xlsx`), and tabular data files (`.csv`, `.tsv`) **natively inside your Obsidian interface**.
No external applications, no converting your files to Markdown, and no loss of formatting. Edit your documents and spreadsheets side-by-side with your knowledge vault, with full autosave round-tripped directly back to the original binary files.
---
## Key Highlights
- **Native Word (.docx) Editor**: Full WYSIWYG rich-text editing with true OOXML lossless round-tripping.
- **Native Spreadsheet (.xlsx, .csv, .tsv) Editor**: Interactive multi-sheet grid interface with formula engine and number formatting.
- **Native PDF (.pdf) Editor & Annotator**: Cross-compatible ISO 32000-1 annotations (Sticky Notes, Highlights, Ink drawings, Text boxes, Shapes), Acrobat-like page operations, citations, and vault note linking.
- **Adaptive Theme Support**: Toggle between Obsidian Dark Paper mode and true White Paper mode for optimal readability.
- **Instant Debounced Autosave**: Changes write straight to your vault files on disk without interrupting your writing flow.
- **100% Local & Privacy-First**: Everything runs locally inside your Obsidian workspace. No cloud services or external dependencies required.
---
## Comprehensive Feature Matrix
### 1. Word Document Editor (.docx)
Edit standard `.docx` files generated by Microsoft Word, LibreOffice, or Google Docs with true round-trip fidelity.
| Category | Supported Features |
| :--- | :--- |
| **Typography & Fonts** | Custom font families (*Calibri, Arial, Times New Roman, Georgia, Courier New, Verdana, Segoe UI, Trebuchet MS, Tahoma*), font sizes (*8pt – 72pt*), Clear Formatting |
| **Rich Text Styling** | **Bold**, *Italic*, Underline, ~~Strikethrough~~, Subscript (x₂), Superscript (x²), `Inline Code`, Blockquotes |
| **Colors** | Text color picker with custom HEX selector, Background highlight color picker |
| **Headings & Structure** | Full heading hierarchy (**H1 – H6**) mapped 1:1 to Word styles, Paragraphs, Horizontal Dividers, Page Breaks (`Ctrl+Enter`) |
| **Paragraph & Alignment** | Left, Center, Right, and Justified alignment; customizable line spacing (*1.0, 1.15, 1.5, 2.0*); Indent & Outdent controls |
| **Lists** | Bulleted lists, Numbered / Ordered lists, Nested list indentation and lift controls |
| **Tables** | Insert custom tables, Add Row Above / Below, Add Column Left / Right, Delete Row / Column / Table, Custom Cell Shading (Blue, Gray, Yellow, Green, Clear) |
| **Images & Media** | Embedded document images, interactive resize handles with aspect-ratio locking, alignment presets (Left, Center, Right), dimension tooltips |
| **Preservation Engine** | Unedited OOXML elements (headers, footers, `styles.xml`, `numbering.xml`, themes, and page margins) are preserved intact |
---
### 2. Spreadsheet & Data Editor (.xlsx, .csv, .tsv)
View, edit, calculate, and format Excel spreadsheets and tabular files seamlessly inside your notes.
| Category | Supported Features |
| :--- | :--- |
| **Grid Engine** | Smooth spreadsheet grid with row/column headers, active cell cursor, range selection, and keyboard navigation |
| **Formula Engine** | Real-time calculation with `=SUM()`, `=AVERAGE()`, `=COUNT()`, `=MAX()`, `=MIN()`, `=IF()`, `=CONCAT()`, `=ROUND()`, and algebraic expressions |
| **Formula Bar** | Dedicated formula bar showing current cell coordinate (e.g., `A1`, `C12`) with full interactive formula editing |
| **Number Formatting** | Quick Currency format (`$`), Percentage format (`%`), Increase decimal places (`.00`), Decrease decimal places (`.0`) |
| **Cell Typography** | Font family selector, font size controls, **Bold**, *Italic*, Underline, ~~Strikethrough~~ |
| **Cell Styling & Colors**| Text color palette, Cell background / fill color picker, Cell border toggling |
| **Cell Alignment** | Left align (text default), Center align, Right align (numeric default) |
| **Row & Column Controls**| Insert row below, Insert column right, Delete selected row, Delete selected column |
| **Multi-Sheet Workbooks**| Workbook tab bar: switch sheets, create new sheet (`+`), and double-click to rename sheet tabs |
| **CSV & TSV Support** | Native parsing and serialization of comma-separated and tab-separated files with full grid capabilities |
| **History Stack** | Full undo (`Ctrl+Z`) and redo (`Ctrl+Y`) history stack for spreadsheet edits |
---
### 3. Native PDF Editor & Cross-Compatible Annotator (.pdf)
View, annotate, and edit PDF documents natively with standard **ISO 32000-1 compliance** (100% cross-compatible with Adobe Acrobat, Apple Preview, Google Chrome, Microsoft Edge, and Foxit).
| Category | Supported Features |
| :--- | :--- |
| **Sticky Notes** | Place standard Sticky Notes (`/Subtype /Text`) anywhere on pages with author, timestamp, Markdown comment editor, and customizable color |
| **Text Highlights** | Highlight text in 8 preset colors encoded with exact `/QuadPoints` for standard Acrobat/Preview rendering |
| **Freehand Draw (Ink)** | Smooth vector pen and marker markup (`/Subtype /Ink`) with customizable stroke width, opacity, and eraser tool |
| **Text Boxes** | Add editable text blocks directly onto PDF pages (`/Subtype /FreeText`) with custom font size and color |
| **Geometric Shapes** | Insert Rectangles, Circles/Ovals, and Lines (`/Subtype /Square`, `/Circle`, `/Line`) with stroke and fill styles |
| **Acrobat-like Page Ops** | Rotate pages 90° clockwise/counter-clockwise, duplicate page, insert blank page, and delete page |
| **Annotations List Panel** | Collapsible sidebar with real-time text search, type filters (All, Highlights, Notes, Drawings, Shapes), and jump-to-annotation navigation |
| **Cite & Academic Citations**| Generate formatted citations in **APA**, **MLA**, **Chicago**, **BibTeX**, and **Obsidian Markdown Blockquotes** from selections or pages |
| **Refer & Deep Linking** | Create Obsidian deep links (`[[document.pdf#page=N&annot=ID]]`) that smoothly scroll to the exact page and pulse/highlight the target annotation |
| **Link Annotations with Notes**| Connect any PDF annotation to vault Markdown notes (`[[Notes/Summary.md]]`), create new notes with one click, and export all annotations to Markdown |
| **High-DPI Rendering** | Crisp Retina/4K canvas rendering via Obsidian's built-in PDF.js engine with interactive selectable text layer |
---
## Installation
### Method 1: Obsidian Community Plugins (Recommended)
Once listed in the official Obsidian Community Plugins directory:
1. Open **Obsidian Settings**.
2. Navigate to **Community plugins** and ensure **Restricted mode** is turned off.
3. Click **Browse** and search for **"Office Suite"**.
4. Click **Install**, then click **Enable**.
5. Open any `.docx`, `.xlsx`, `.csv`, or `.tsv` file from your file explorer to start editing!
---
### Method 2: Beta Testing via Obsidian BRAT
You can test the latest beta releases using the [Obsidian BRAT](https://github.com/TfTHacker/obsidian42-brat) plugin:
1. Install **BRAT** from Community Plugins.
2. Open **Settings → BRAT → Add Beta plugin**.
3. Paste the repository URL: `https://github.com/vishalrashmika/obsidian-office-suite`.
4. Click **Add Plugin** and enable **Office Suite**.
---
### Method 3: Manual Installation
1. Download `manifest.json`, `main.js`, and `styles.css` from the latest release.
2. Open your Obsidian Vault folder in your file manager.
3. Navigate to `.obsidian/plugins/` (create the folder if it doesn't exist).
4. Create a new folder named `office-suite` (or `docx-editor`).
5. Copy `manifest.json`, `main.js`, and `styles.css` into that folder.
6. In Obsidian, go to **Settings → Community plugins** and enable **Office Suite**.
---
## Quick Start Guide
1. **Opening Files**: Simply click on any `.docx`, `.xlsx`, `.csv`, or `.tsv` file in your Obsidian vault. The file opens immediately in the Office Suite editor.
2. **Switching Paper Themes**: Use the **Paper Theme** toggle in the top-right toolbar to switch between **Light Mode** (white page paper) and **Dark Mode** (dark page paper).
3. **Inserting Tables & Images**: In `.docx` mode, click the **Table** dropdown or **Image** button in the toolbar to add media and structured data.
4. **Entering Formulas**: In `.xlsx` or `.csv` mode, select a cell, type `=` in the Formula Bar, and use standard spreadsheet formulas like `=SUM(A1:A10)` or `=AVERAGE(B1:B5)`.
5. **Autosaving**: All modifications autosave automatically in the background (~800ms debounce). You can verify save status via the "Saved" indicator in the toolbar.
---
## Shortcuts and Hotkeys
| Action | Shortcut |
| :--- | :--- |
| **Undo** | `Ctrl + Z` / `Cmd + Z` |
| **Redo** | `Ctrl + Y` / `Cmd + Shift + Z` |
| **Bold** | `Ctrl + B` / `Cmd + B` |
| **Italic** | `Ctrl + I` / `Cmd + I` |
| **Underline** | `Ctrl + U` / `Cmd + U` |
| **Edit Cell (Spreadsheet)** | `F2` |
| **Page Break (Docx)** | `Ctrl + Enter` / `Cmd + Enter` |
---
## Contributing
Contributions, feature requests, and bug reports are welcome! We want to make Office Suite the premier document and data tool for the Obsidian ecosystem.
### How to Contribute
1. **Report a Bug / Request a Feature**: Open an Issue on GitHub with detailed reproduction steps or feature descriptions.
2. **Submit a Pull Request**:
- Fork the repository.
- Create a feature branch (`git checkout -b feature/amazing-feature`).
- Commit your changes (`git commit -m 'Add amazing feature'`).
- Push to your branch (`git push origin feature/amazing-feature`).
- Open a Pull Request.
### Development Setup
```bash
# Clone the repository
git clone https://github.com/vishalrashmika/obsidian-office-suite.git
cd obsidian-office-suite
# Install dependencies
npm install
# Start development build with watch mode
npm run dev
# Build production bundle
npm run build
```
---
## Support the Project
If you find **Office Suite** valuable for your daily note-taking and workflow, please consider supporting its continuous development:
Your support helps cover development tools, test devices, and future feature expansions! Don't forget to star the repository on GitHub!
---
## Author
Created by [Vishal Rashmika](https://vishalrashmika.com).
---
## License
This project is licensed under the [GPL V3](LICENSE).