-
Notifications
You must be signed in to change notification settings - Fork 158
feat: Add Indonesian (Bahasa Indonesia) language pack #1674
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
Reckbeg
wants to merge
5
commits into
handsontable:develop
Choose a base branch
from
Reckbeg:master
base: develop
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
5 commits
Select commit
Hold shift + click to select a range
6de904b
Deploying fix to the documentation (#1622)
sequba 9a510a2
Deploy docs: AI integration landing pages (#1656)
sequba 3d65d90
feat: add Indonesian (Bahasa Indonesia) language pack
Reckbeg f59b575
fix: resolve function name collisions in Indonesian translation
Reckbeg 0e96101
fix: correct Indonesian translations per Microsoft Excel docs
Reckbeg File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,51 @@ | ||
| # HyperFormula AI SDK | ||
|
|
||
| Let LLMs safely read/write spreadsheets and compute formulas via a deterministic engine. | ||
|
|
||
| ## What it does | ||
|
|
||
| - **Evaluate formulas on the fly** —call `calculateFormula()` to evaluate any Excel-compatible formula without placing it in a cell. | ||
| - **Read and write cells and ranges** —get or set individual cells and multi-cell ranges so an LLM can inspect, populate, or modify sheet data programmatically. | ||
| - **Trace dependencies** —call `getCellDependents()` and `getCellPrecedents()` to understand which cells feed into a formula and what downstream values would change. | ||
|
|
||
| ## Quickstart | ||
|
|
||
| ```js | ||
| import HyperFormula from 'hyperformula'; | ||
| import { createSpreadsheetTools } from 'hyperformula/ai'; | ||
|
|
||
| // 1. Create a HyperFormula instance with initial data | ||
| const hf = HyperFormula.buildFromArray([ | ||
| ['Revenue', 100], | ||
| ['Cost', 60], | ||
| ['Profit', '=B1-B2'], | ||
| ]); | ||
|
|
||
| // 2. Create tools your LLM agent can call | ||
| const tools = createSpreadsheetTools(hf); | ||
|
|
||
| // 3. Agent interaction examples | ||
| tools.evaluate({ formula: '=IRR({-1000,300,400,500,200})' }); | ||
| // → 0.1189 — deterministic, no LLM math | ||
|
|
||
| tools.setCellContents({ sheet: 0, col: 1, row: 0, value: 200 }); | ||
| tools.getRange({ sheet: 0, startCol: 0, startRow: 0, endCol: 1, endRow: 2 }); | ||
| // → [['Revenue', 200], ['Cost', 60], ['Profit', 140]] | ||
|
|
||
| // Agent: "What drives the profit number?" | ||
| tools.getDependents({ sheet: 0, col: 1, row: 0 }); | ||
| // → [{ sheet: 0, col: 1, row: 2 }] — Revenue flows into Profit | ||
| ``` | ||
|
|
||
| ## Use cases | ||
|
|
||
| - **Explain a sheet** —ask an agent to summarize what a spreadsheet does, which cells are inputs, and how outputs are derived. | ||
| - **Generate a what-if scenario** —let the model tweak assumptions (price, volume, rate) and observe how results change in real time. | ||
| - **Validate and clean data** —have the agent scan ranges for errors, missing values, or inconsistencies and fix them with formulas or direct edits. | ||
| - **Create formulas from natural language** —describe a calculation in plain English and let the model write and verify the correct Excel formula. | ||
|
|
||
| ## Beta access | ||
|
|
||
| ::: tip | ||
| [Sign up for beta access](https://2fmjvg.share-eu1.hsforms.com/2e6drCkuLTn-1RuiYB91eJA) | ||
| ::: |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,53 @@ | ||
| # Integration with LangChain/LangGraph | ||
|
|
||
| A LangChain/LangGraph tool that gives AI agents deterministic, Excel-compatible formula evaluation instead of relying on LLM-generated math. | ||
|
|
||
| ## What it does | ||
|
|
||
| **Without HyperFormula:** | ||
|
|
||
| ```python | ||
| result = llm.invoke( | ||
| "Calculate the IRR for these cash flows: [-1000, 300, 400, 500, 200]" | ||
| ) | ||
| # "The IRR is approximately 12.4%" ← non-deterministic, unverifiable | ||
| ``` | ||
|
|
||
| **With HyperFormula tool:** | ||
|
|
||
| ```python | ||
| from langchain_core.tools import tool | ||
| from hyperformula import HyperFormula | ||
|
|
||
| hf = HyperFormula.build_from_array([[-1000, 300, 400, 500, 200]]) | ||
|
|
||
| @tool | ||
| def evaluate_formula(formula: str) -> str: | ||
| """Evaluate an Excel-compatible formula using HyperFormula.""" | ||
| return hf.calculate_formula(formula, sheet_id=0) | ||
|
|
||
| agent = create_react_agent(llm, [evaluate_formula]) | ||
|
|
||
| # Agent calls: evaluate_formula("=IRR(A1:E1)") | ||
| # → 0.1189 ← deterministic, auditable | ||
| ``` | ||
|
|
||
| ## How it works | ||
|
|
||
| 1. **Agent populates a HyperFormula sheet** —writes data and formulas (`=SUM`, `=IF`, `=VLOOKUP`, etc.) into cells. | ||
| 2. **HyperFormula evaluates deterministically** —resolves the full dependency graph using 400+ built-in functions. No LLM in the loop for math. | ||
| 3. **Agent continues with verified data** —computed values flow back into the chain for reasoning, reporting, or downstream actions. | ||
|
|
||
| ## Use cases | ||
|
|
||
| - Financial modeling (NPV, IRR, amortization) | ||
| - Data transformation and aggregation (SUMIF, VLOOKUP) | ||
| - Dynamic pricing with formula-defined logic | ||
| - What-if scenarios and forecasting | ||
| - Report generation with verified KPIs | ||
|
|
||
| ## Beta access | ||
|
|
||
| ::: tip | ||
| [Sign up for beta access](https://2fmjvg.share-eu1.hsforms.com/2e6drCkuLTn-1RuiYB91eJA) | ||
| ::: |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,44 @@ | ||
| # HyperFormula MCP Server | ||
|
|
||
| An MCP (Model Context Protocol) server that exposes HyperFormula as a tool for any MCP-compatible AI client, giving LLMs deterministic spreadsheet computation. | ||
|
|
||
| ## What it does | ||
|
|
||
| - **Evaluate formulas** —any MCP client can call HyperFormula to evaluate Excel-compatible formulas and get exact results. | ||
| - **Read and write cells** —get or set individual cell values and ranges through standard MCP tool calls. | ||
| - **Inspect dependencies** —trace which cells a formula depends on and understand the calculation graph. | ||
|
|
||
| **Without HyperFormula:** | ||
|
|
||
| ``` | ||
| User: What's the NPV at 8% for these cash flows? | ||
| Agent: "Approximately $142.50" ← non-deterministic, unverifiable | ||
| ``` | ||
|
|
||
| **With HyperFormula MCP server:** | ||
|
|
||
| ``` | ||
| User: What's the NPV at 8% for these cash flows? | ||
| Agent → tool call: evaluate("=NPV(0.08, B1:B5)") | ||
| Agent: "$138.43" ← deterministic, auditable | ||
| ``` | ||
|
|
||
| ## How it works | ||
|
|
||
| 1. **Start the MCP server** —runs HyperFormula as a local MCP server that any compatible client (Claude Desktop, Cursor, VS Code, etc.) can connect to. | ||
| 2. **Client sends tool calls** —the AI client calls tools like `evaluate`, `getCellValue`, and `setCellContents` via the MCP protocol. | ||
| 3. **HyperFormula evaluates deterministically** —resolves formulas using 400+ built-in functions with full dependency tracking. No LLM in the loop for math. | ||
| 4. **Results flow back to the client** —computed values return through MCP, grounding the AI's response in verified numbers. | ||
|
|
||
| ## Use cases | ||
|
|
||
| - Spreadsheet Q&A in Claude Desktop or other MCP clients | ||
| - Formula evaluation in IDE-based AI assistants | ||
| - Financial calculations in chat-based agent workflows | ||
| - Data validation and transformation via natural language | ||
|
|
||
| ## Beta access | ||
|
|
||
| ::: tip | ||
| [Sign up for beta access](https://2fmjvg.share-eu1.hsforms.com/2e6drCkuLTn-1RuiYB91eJA) | ||
| ::: |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Template literal syntax won't interpolate in markdown links
Medium Severity
The
${$page.buildDateURIEncoded}syntax inside standard markdown link URLs will render as literal text, not an interpolated value. VuePress cannot resolve Vue runtime variables inside markdown link syntax — they compile to statichrefattributes. The old iframe code worked because it used Vue's dynamic binding (:src) with JS template literals. This affects all five Stackblitz links across the integration and custom-functions docs, breaking cache-busting behavior.Additional Locations (2)
docs/guide/custom-functions.md#L360-L361docs/guide/integration-with-angular.md#L8-L9Reviewed by Cursor Bugbot for commit f59b575. Configure here.