International Settings
This section outlines the key settings and customization options for configuring Jspreadsheet in international and multi-language environments.
Documentation
General Number Format
You can format numbers automatically, even without specifying a custom mask for each cell or column. The intl.formatNumber
function automatically applies locale-specific number formatting.
jspreadsheet(HTMLElement, {
tabs: true,
worksheets: [{
minDimensions: [100,100],
tableOverflow: true,
tableWidth: 600
}],
international: {
locale: 'pt-BR'
}
})
Customizing Formula Argument Separator
If your formulas use a different argument separator you can easily change it. For example, =SUM(A1; A2)
is common in some locales. To support this, set the divisor
property via the Formula Pro plugin:
formula.divisor = ';'
Note: This feature is only available with the Formula Pro extension.
Input Editor
The input editor supports Input Method Editors (IME), which is important for languages that use compound characters, like Chinese, Japanese, or Korean.
Translations
You can translate the Jspreadsheet interface using jspreadsheet.setDictionary()
. This function takes an object where the keys are the default English text and the values are your translated strings.
Example
Translate the Data Grid Interface
Translate all text in the spreadsheet to Portuguese.
<html>
<script src="https://jspreadsheet.com/v11/jspreadsheet.js"></script>
<script src="https://jsuites.net/v5/jsuites.js"></script>
<link rel="stylesheet" href="https://jspreadsheet.com/v11/jspreadsheet.css" type="text/css" />
<link rel="stylesheet" href="https://jsuites.net/v5/jsuites.css" type="text/css" />
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Material+Icons" />
<div id="spreadsheet"></div>
<script>
// Set your JSS license key (The following key only works for one day)
jspreadsheet.setLicense('ZjEwMjhmYWEwMDZjM2QzYzBiOGFiYmVlYzAyMzk0ZTEwODE4OTE3NTU2NGNjYThlZTRjM2YxNzlmNDUzNjVhOGU0ZTQwNTEzZTlmODJjOGU1Y2YxZmJhZTdlM2U5NWY0NWQ1NDIyMGMyMzA3ZmExY2VhNTFhY2U4N2YwYzIyOTcsZXlKamJHbGxiblJKWkNJNklpSXNJbTVoYldVaU9pSktjM0J5WldGa2MyaGxaWFFpTENKa1lYUmxJam94TnpVMk56a3pOalEyTENKa2IyMWhhVzRpT2xzaWFuTndjbVZoWkhOb1pXVjBMbU52YlNJc0ltTnZaR1Z6WVc1a1ltOTRMbWx2SWl3aWFuTm9aV3hzTG01bGRDSXNJbU56WWk1aGNIQWlMQ0p6ZEdGamEySnNhWFI2TG1sdklpd2lkMlZpWTI5dWRHRnBibVZ5TG1sdklpd2lkMlZpSWl3aWJHOWpZV3hvYjNOMElsMHNJbkJzWVc0aU9pSXpOQ0lzSW5OamIzQmxJanBiSW5ZM0lpd2lkamdpTENKMk9TSXNJbll4TUNJc0luWXhNU0lzSW1Ob1lYSjBjeUlzSW1admNtMXpJaXdpWm05eWJYVnNZU0lzSW5CaGNuTmxjaUlzSW5KbGJtUmxjaUlzSW1OdmJXMWxiblJ6SWl3aWFXMXdiM0owWlhJaUxDSmlZWElpTENKMllXeHBaR0YwYVc5dWN5SXNJbk5sWVhKamFDSXNJbkJ5YVc1MElpd2ljMmhsWlhSeklpd2lZMnhwWlc1MElpd2ljMlZ5ZG1WeUlpd2ljMmhoY0dWeklpd2labTl5YldGMElsMHNJbVJsYlc4aU9uUnlkV1Y5');
// Create the spreadsheet
jspreadsheet(document.getElementById('spreadsheet'), {
worksheets: [
{ minDimensions: [6,6] }, // Worksheet 1
{ minDimensions: [6,6] }, // Worksheet 2
],
});
// Translate the spreadsheet
jspreadsheet.setDictionary({
'Show': 'Mostrar',
'Search': 'Buscar',
'Showing page {0} of {1} entries': 'Mostrando página {0} de {1} entradas',
'Column name': 'Nome da coluna',
'Change column type': 'Mudar tipo de coluna',
'Insert a new column before': 'Inserir uma coluna antes',
'Insert a new column after': 'Inserior uma coluna depois',
'Delete selected columns': 'Apagar colunas selecionadas',
'Rename this column': 'Renonear essa coluna',
'Order ascending': 'Ordenar ascendente',
'Order descending': 'Ordenar descendente',
'Insert a new row before': 'Inserir uma nova linha antes',
'Insert a new row after': 'Inserir uma nova linha depois',
'Delete selected rows': 'Apagar linhas selecionadas',
'Edit comments': 'Editar comentários',
'Add comments': 'Adicionar comentários',
'Comments': 'Comentários',
'Clear comments': 'Apagar comentários',
'Copy': 'Copiar',
'Paste': 'Colar',
'Save as': 'Salvar como',
'About': 'Sobre',
'Are you sure?': 'Tenha certeza:',
'This action will destroy any existing merged cells. Are you sure?':
'Essa ação irá desturir as celulas mescladas existentes. Tem certeza?',
'Invalid merged properties': 'Propriedades de mesclagem inválidas',
'No cell selected': 'Nenhuma celula selecionada',
'Rename this worksheet': 'Renomear essa planilha',
'Delete this worksheet': 'Apagar essa planilha',
'It was not possible to rename worksheet due conflict name':
'Não foi possível renomear essa planilha devido a um conflito de nomes',
'Cut': 'Cortar',
'Hide': 'Esconder',
'Unhide': 'Mostrar',
'Select All': 'Selecionar tudo',
'Blanks': 'Brancos',
'Add current selection to filter': 'Adicionar seleção atual ao filtro',
'Rename this cell': 'Renomear celula',
// Calendar text
'January': 'Janeiro',
'February': 'Fevereiro',
'March': 'Março',
'April': 'Abril',
'May': 'Maio',
'June': 'Junho',
'July': 'Julho',
'August': 'Agosto',
'September': 'Setembro',
'October': 'Outubro',
'November': 'Novembro',
'December': 'Dezembro',
'Sunday': 'Domingo',
'Monday': 'Segunda',
'Tuesday': 'Terca',
'Wednesday': 'Quarta',
'Thursday': 'Quinta',
'Friday': 'Sexta',
'Saturday': 'Sabado',
'Done': 'Feito',
'Reset': 'Apagar',
'Update': 'Atualizar',
});
</script>
</html>
import React, { useRef, useEffect } from "react";
import { Spreadsheet, Worksheet, jspreadsheet } from "@jspreadsheet/react";
import "jsuites/dist/jsuites.css";
import "jspreadsheet/dist/jspreadsheet.css";
const license = 'ZjEwMjhmYWEwMDZjM2QzYzBiOGFiYmVlYzAyMzk0ZTEwODE4OTE3NTU2NGNjYThlZTRjM2YxNzlmNDUzNjVhOGU0ZTQwNTEzZTlmODJjOGU1Y2YxZmJhZTdlM2U5NWY0NWQ1NDIyMGMyMzA3ZmExY2VhNTFhY2U4N2YwYzIyOTcsZXlKamJHbGxiblJKWkNJNklpSXNJbTVoYldVaU9pSktjM0J5WldGa2MyaGxaWFFpTENKa1lYUmxJam94TnpVMk56a3pOalEyTENKa2IyMWhhVzRpT2xzaWFuTndjbVZoWkhOb1pXVjBMbU52YlNJc0ltTnZaR1Z6WVc1a1ltOTRMbWx2SWl3aWFuTm9aV3hzTG01bGRDSXNJbU56WWk1aGNIQWlMQ0p6ZEdGamEySnNhWFI2TG1sdklpd2lkMlZpWTI5dWRHRnBibVZ5TG1sdklpd2lkMlZpSWl3aWJHOWpZV3hvYjNOMElsMHNJbkJzWVc0aU9pSXpOQ0lzSW5OamIzQmxJanBiSW5ZM0lpd2lkamdpTENKMk9TSXNJbll4TUNJc0luWXhNU0lzSW1Ob1lYSjBjeUlzSW1admNtMXpJaXdpWm05eWJYVnNZU0lzSW5CaGNuTmxjaUlzSW5KbGJtUmxjaUlzSW1OdmJXMWxiblJ6SWl3aWFXMXdiM0owWlhJaUxDSmlZWElpTENKMllXeHBaR0YwYVc5dWN5SXNJbk5sWVhKamFDSXNJbkJ5YVc1MElpd2ljMmhsWlhSeklpd2lZMnhwWlc1MElpd2ljMlZ5ZG1WeUlpd2ljMmhoY0dWeklpd2labTl5YldGMElsMHNJbVJsYlc4aU9uUnlkV1Y5';
export default function App() {
const spreadsheet = useRef();
useEffect(() => {
// Translate the spreadsheet
jspreadsheet.setDictionary({
'Show': 'Mostrar',
'Search': 'Buscar',
'entries': ' entradas',
'Column name': 'Nome da coluna',
'Change column type': 'Mudar tipo de coluna',
'Insert a new column before': 'Inserir uma coluna antes',
'Insert a new column after': 'Inserior uma coluna depois',
'Delete selected columns': 'Apagar colunas selecionadas',
'Rename this column': 'Renonear essa coluna',
'Order ascending': 'Ordenar ascendente',
'Order descending': 'Ordenar descendente',
'Insert a new row before': 'Inserir uma nova linha antes',
'Insert a new row after': 'Inserir uma nova linha depois',
'Delete selected rows': 'Apagar linhas selecionadas',
'Edit comments': 'Editar comentários',
'Add comments': 'Adicionar comentários',
'Comments': 'Comentários',
'Clear comments': 'Apagar comentários',
'Copy': 'Copiar',
'Paste': 'Colar',
'Save as': 'Salvar como',
'About': 'Sobre',
'Are you sure?': 'Tenha certeza:',
'This action will destroy any existing merged cells. Are you sure?':
'Essa ação irá desturir as celulas mescladas existentes. Tem certeza?',
'Invalid merged properties': 'Propriedades de mesclagem inválidas',
'No cell selected': 'Nenhuma celula selecionada',
'Rename this worksheet': 'Renomear essa planilha',
'Delete this worksheet': 'Apagar essa planilha',
'It was not possible to rename worksheet due conflict name':
'Não foi possível renomear essa planilha devido a um conflito de nomes',
'Cut': 'Cortar',
'Hide': 'Esconder',
'Unhide': 'Mostrar',
'Select All': 'Selecionar tudo',
'Blanks': 'Brancos',
'Add current selection to filter': 'Adicionar seleção atual ao filtro',
'Rename this cell': 'Renomear celula',
// Calendar text
'January': 'Janeiro',
'February': 'Fevereiro',
'March': 'Março',
'April': 'Abril',
'May': 'Maio',
'June': 'Junho',
'July': 'Julho',
'August': 'Agosto',
'September': 'Setembro',
'October': 'Outubro',
'November': 'Novembro',
'December': 'Dezembro',
'Sunday': 'Domingo',
'Monday': 'Segunda',
'Tuesday': 'Terca',
'Wednesday': 'Quarta',
'Thursday': 'Quinta',
'Friday': 'Sexta',
'Saturday': 'Sabado',
'Done': 'Feito',
'Reset': 'Apagar',
'Update': 'Atualizar',
});
}, [spreadsheet])
return (
<Spreadsheet ref={spreadsheet} license={license}>
<Worksheet minDimensions={[10, 10]}/>
<Worksheet minDimensions={[10, 10]}/>
</Spreadsheet>
);
};
<template>
<Spreadsheet ref="spreadsheet" :license="license">
<Worksheet :minDimensions="[10,10]" />
<Worksheet :minDimensions="[10,10]" />
</Spreadsheet>
</template>
<script>
import { Spreadsheet, Worksheet, jspreadsheet } from "@jspreadsheet/vue";
import "jsuites/dist/jsuites.css";
import "jspreadsheet/dist/jspreadsheet.css";
const license = 'ZjEwMjhmYWEwMDZjM2QzYzBiOGFiYmVlYzAyMzk0ZTEwODE4OTE3NTU2NGNjYThlZTRjM2YxNzlmNDUzNjVhOGU0ZTQwNTEzZTlmODJjOGU1Y2YxZmJhZTdlM2U5NWY0NWQ1NDIyMGMyMzA3ZmExY2VhNTFhY2U4N2YwYzIyOTcsZXlKamJHbGxiblJKWkNJNklpSXNJbTVoYldVaU9pSktjM0J5WldGa2MyaGxaWFFpTENKa1lYUmxJam94TnpVMk56a3pOalEyTENKa2IyMWhhVzRpT2xzaWFuTndjbVZoWkhOb1pXVjBMbU52YlNJc0ltTnZaR1Z6WVc1a1ltOTRMbWx2SWl3aWFuTm9aV3hzTG01bGRDSXNJbU56WWk1aGNIQWlMQ0p6ZEdGamEySnNhWFI2TG1sdklpd2lkMlZpWTI5dWRHRnBibVZ5TG1sdklpd2lkMlZpSWl3aWJHOWpZV3hvYjNOMElsMHNJbkJzWVc0aU9pSXpOQ0lzSW5OamIzQmxJanBiSW5ZM0lpd2lkamdpTENKMk9TSXNJbll4TUNJc0luWXhNU0lzSW1Ob1lYSjBjeUlzSW1admNtMXpJaXdpWm05eWJYVnNZU0lzSW5CaGNuTmxjaUlzSW5KbGJtUmxjaUlzSW1OdmJXMWxiblJ6SWl3aWFXMXdiM0owWlhJaUxDSmlZWElpTENKMllXeHBaR0YwYVc5dWN5SXNJbk5sWVhKamFDSXNJbkJ5YVc1MElpd2ljMmhsWlhSeklpd2lZMnhwWlc1MElpd2ljMlZ5ZG1WeUlpd2ljMmhoY0dWeklpd2labTl5YldGMElsMHNJbVJsYlc4aU9uUnlkV1Y5';
export default {
components: {
Spreadsheet,
Worksheet,
},
mounted() {
// Translate the spreadsheet
jspreadsheet.setDictionary({
'Show': 'Mostrar',
'Search': 'Buscar',
'entries': ' entradas',
'Column name': 'Nome da coluna',
'Change column type': 'Mudar tipo de coluna',
'Insert a new column before': 'Inserir uma coluna antes',
'Insert a new column after': 'Inserior uma coluna depois',
'Delete selected columns': 'Apagar colunas selecionadas',
'Rename this column': 'Renonear essa coluna',
'Order ascending': 'Ordenar ascendente',
'Order descending': 'Ordenar descendente',
'Insert a new row before': 'Inserir uma nova linha antes',
'Insert a new row after': 'Inserir uma nova linha depois',
'Delete selected rows': 'Apagar linhas selecionadas',
'Edit comments': 'Editar comentários',
'Add comments': 'Adicionar comentários',
'Comments': 'Comentários',
'Clear comments': 'Apagar comentários',
'Copy': 'Copiar',
'Paste': 'Colar',
'Save as': 'Salvar como',
'About': 'Sobre',
'Are you sure?': 'Tenha certeza:',
'This action will destroy any existing merged cells. Are you sure?':
'Essa ação irá desturir as celulas mescladas existentes. Tem certeza?',
'Invalid merged properties': 'Propriedades de mesclagem inválidas',
'No cell selected': 'Nenhuma celula selecionada',
'Rename this worksheet': 'Renomear essa planilha',
'Delete this worksheet': 'Apagar essa planilha',
'It was not possible to rename worksheet due conflict name':
'Não foi possível renomear essa planilha devido a um conflito de nomes',
'Cut': 'Cortar',
'Hide': 'Esconder',
'Unhide': 'Mostrar',
'Select All': 'Selecionar tudo',
'Blanks': 'Brancos',
'Add current selection to filter': 'Adicionar seleção atual ao filtro',
'Rename this cell': 'Renomear celula',
// Calendar text
'January': 'Janeiro',
'February': 'Fevereiro',
'March': 'Março',
'April': 'Abril',
'June': 'Junho',
'July': 'Julho',
'August': 'Agosto',
'September': 'Setembro',
'October': 'Outubro',
'November': 'Novembro',
'December': 'Dezembro',
'Sunday': 'Domingo',
'Monday': 'Segunda',
'Tuesday': 'Terca',
'Wednesday': 'Quarta',
'Thursday': 'Quinta',
'Friday': 'Sexta',
'Saturday': 'Sabado',
'Done': 'Feito',
'Reset': 'Apagar',
'Update': 'Atualizar',
});
},
data() {
return {
// License
license: license,
};
}
}
</script>
import { Component, ViewChild, ElementRef } from "@angular/core";
import jspreadsheet from "jspreadsheet";
// Set your JSS license key (The following key only works for one day)
jspreadsheet.setLicense('ZjEwMjhmYWEwMDZjM2QzYzBiOGFiYmVlYzAyMzk0ZTEwODE4OTE3NTU2NGNjYThlZTRjM2YxNzlmNDUzNjVhOGU0ZTQwNTEzZTlmODJjOGU1Y2YxZmJhZTdlM2U5NWY0NWQ1NDIyMGMyMzA3ZmExY2VhNTFhY2U4N2YwYzIyOTcsZXlKamJHbGxiblJKWkNJNklpSXNJbTVoYldVaU9pSktjM0J5WldGa2MyaGxaWFFpTENKa1lYUmxJam94TnpVMk56a3pOalEyTENKa2IyMWhhVzRpT2xzaWFuTndjbVZoWkhOb1pXVjBMbU52YlNJc0ltTnZaR1Z6WVc1a1ltOTRMbWx2SWl3aWFuTm9aV3hzTG01bGRDSXNJbU56WWk1aGNIQWlMQ0p6ZEdGamEySnNhWFI2TG1sdklpd2lkMlZpWTI5dWRHRnBibVZ5TG1sdklpd2lkMlZpSWl3aWJHOWpZV3hvYjNOMElsMHNJbkJzWVc0aU9pSXpOQ0lzSW5OamIzQmxJanBiSW5ZM0lpd2lkamdpTENKMk9TSXNJbll4TUNJc0luWXhNU0lzSW1Ob1lYSjBjeUlzSW1admNtMXpJaXdpWm05eWJYVnNZU0lzSW5CaGNuTmxjaUlzSW5KbGJtUmxjaUlzSW1OdmJXMWxiblJ6SWl3aWFXMXdiM0owWlhJaUxDSmlZWElpTENKMllXeHBaR0YwYVc5dWN5SXNJbk5sWVhKamFDSXNJbkJ5YVc1MElpd2ljMmhsWlhSeklpd2lZMnhwWlc1MElpd2ljMlZ5ZG1WeUlpd2ljMmhoY0dWeklpd2labTl5YldGMElsMHNJbVJsYlc4aU9uUnlkV1Y5');
// Create component
@Component({
standalone: true,
selector: "app-root",
template: `<div #spreadsheet></div>`,
})
export class AppComponent {
@ViewChild("spreadsheet") spreadsheet: ElementRef;
// Worksheets
worksheets: jspreadsheet.worksheetInstance[];
// Create a new data grid
ngAfterViewInit() {
// Create spreadsheet
this.worksheets = jspreadsheet(this.spreadsheet.nativeElement, {
worksheets: [
{ minDimensions: [6,6] }, // Worksheet 1
{ minDimensions: [6,6] }, // Worksheet 2
],
});
// Translate the spreadsheet
jspreadsheet.setDictionary({
'Show': 'Mostrar',
'Search': 'Buscar',
'entries': ' entradas',
'Column name': 'Nome da coluna',
'Change column type': 'Mudar tipo de coluna',
'Insert a new column before': 'Inserir uma coluna antes',
'Insert a new column after': 'Inserior uma coluna depois',
'Delete selected columns': 'Apagar colunas selecionadas',
'Rename this column': 'Renonear essa coluna',
'Order ascending': 'Ordenar ascendente',
'Order descending': 'Ordenar descendente',
'Insert a new row before': 'Inserir uma nova linha antes',
'Insert a new row after': 'Inserir uma nova linha depois',
'Delete selected rows': 'Apagar linhas selecionadas',
'Edit comments': 'Editar comentários',
'Add comments': 'Adicionar comentários',
'Comments': 'Comentários',
'Clear comments': 'Apagar comentários',
'Copy': 'Copiar',
'Paste': 'Colar',
'Save as': 'Salvar como',
'About': 'Sobre',
'Are you sure?': 'Tenha certeza:',
'This action will destroy any existing merged cells. Are you sure?':
'Essa ação irá desturir as celulas mescladas existentes. Tem certeza?',
'Invalid merged properties': 'Propriedades de mesclagem inválidas',
'No cell selected': 'Nenhuma celula selecionada',
'Rename this worksheet': 'Renomear essa planilha',
'Delete this worksheet': 'Apagar essa planilha',
'It was not possible to rename worksheet due conflict name':
'Não foi possível renomear essa planilha devido a um conflito de nomes',
'Cut': 'Cortar',
'Hide': 'Esconder',
'Unhide': 'Mostrar',
'Select All': 'Selecionar tudo',
'Blanks': 'Brancos',
'Add current selection to filter': 'Adicionar seleção atual ao filtro',
'Rename this cell': 'Renomear celula',
// Calendar text
'January': 'Janeiro',
'February': 'Fevereiro',
'March': 'Março',
'April': 'Abril',
'June': 'Junho',
'July': 'Julho',
'August': 'Agosto',
'September': 'Setembro',
'October': 'Outubro',
'November': 'Novembro',
'December': 'Dezembro',
'Sunday': 'Domingo',
'Monday': 'Segunda',
'Tuesday': 'Terca',
'Wednesday': 'Quarta',
'Thursday': 'Quinta',
'Friday': 'Sexta',
'Saturday': 'Sabado',
'Done': 'Feito',
'Reset': 'Apagar',
'Update': 'Atualizar',
});
}
}
Translating Formula Names
You can localize formula names in Jspreadsheet by defining their translations. You can also specify the argument separator used in your locale. Here’s how to do both:
<html>
<script src="https://cdn.jsdelivr.net/npm/@jspreadsheet/formula-pro/dist/index.min.js"></script>
<script>
// Translate the formula names
let translate = {
NOW: "AGORA",
RAND: "ALEATÓRIO",
RANDBETWEEN: "ALEATÓRIOENTRE",
YEAR: "ANO",
AREAS: "ÁREAS",
ROUND: "ARRED",
FLOOR: "ARREDMULTB",
ROUNDDOWN: "ARREDONDAR.PARA.BAIXO",
ROUNDUP: "ARREDONDAR.PARA.CIMA",
TRIM: "ARRUMAR",
ASINH: "ASENH",
ASIN: "ASEN",
AVERAGEIF: "MÉDIASE",
DB: "BD",
DCOUNT: "BDCONTAR",
DCOUNTA: "BDCONTARA",
DDB: "BDD",
DSTDEVP: "BDDESVPA",
DSTDEV: "BDEST",
DGET: "BDEXTRAIR",
DMAX: "BDMÁX",
DAVERAGE: "BDMÉDIA",
DMIN: "BDMÍN",
DPRODUCT: "BDMULTIPL",
DSUM: "BDSOMA",
VDB: "BDV",
DVAR: "BDVAREST",
DVARP: "BDVARP",
BETAINV: "BETA.ACUM.INV",
BIN2DEC: "BINADEC",
BIN2HEX: "BINAHEX",
BIN2OCT: "BINAOCT",
CHAR: "CARACT",
CELL: "CÉL",
CODE: "CÓDIGO",
COLUMN: "COL",
COLUMNS: "COLS",
COMPLEX: "COMPLEXO",
CONCATENATE: "CONCATENAR",
COUNTIF: "CONT.SE",
COUNTIFS: "CONT.SES",
COUNTA: "CONT.VALORES",
COUNT: "CONTAR",
COUNTBLANK: "CONTAR.VAZIO",
CONVERT: "CONVERTER",
MATCH: "CORRESP",
GROWTH: "CRESCIMENTO",
CRITBINOM: "CRIT.BINOM",
COUPPCD: "CUPDATAANT",
COUPNCD: "CUPDATAPRÓX",
COUPDAYS: "CUPDIAS",
COUPDAYSBS: "CUPDIASINLIQ",
COUPDAYSNC: "CUPDIASPRÓX",
COUPNUM: "CUPNÚM",
KURT: "CURT",
DATE: "DATA",
DATEVALUE: "DATA.VALOR",
DATEVALUE: "DATA.VALOR",
EDATE: "DATAM",
DEC2BIN: "DECABIN",
DEC2HEX: "DECAHEX",
DEC2OCT: "DECAOCT",
FIXED: "DEF.NÚM.DEC",
GESTEP: "DEGRAU",
DISC: "DESC",
OFFSET: "DESLOC",
AVEDEV: "DESV.MÉDIO",
STDEV: "DESVPAD",
STDEVA: "DESVPADA",
STDEVP: "DESVPADP",
STDEVPA: "DESVPADPA",
DEVSQ: "DESVQ",
DAY: "DIA",
WEEKDAY: "DIA.DA.SEMANA",
DAYS360: "DIAS360",
WORKDAY: "DIATRABALHO",
NETWORKDAYS: "DIATRABALHOTOTAL",
RIGHT: "DIREITA",
NEGBINOMDIST: "DIST.BIN.NEG",
HYPGEOMDIST: "DIST.HIPERGEOM",
LOGNORMDIST: "DIST.LOGNORMAL",
NORMDIST: "DIST.NORM",
NORMSDIST: "DIST.NORMP",
CHIDIST: "DIST.QUI",
BETADIST: "DISTBETA",
EXPONDIST: "DISTEXPON",
FDIST: "DISTF",
GAMMADIST: "DISTGAMA",
ABSSKEW: "DISTORÇÃO",
BINOMDIST: "DISTRBINOM",
TDIST: "DISTT",
SLN: "DPD",
DURATION: "DURAÇÃO",
AND: "E",
AND: "E",
ISNA: "É.NÃO.DISP",
ISNONTEXT: "É.NÃO.TEXTO",
ISBLANK: "ÉCÉL.VAZIA",
ISERR: "ÉERRO",
ISERROR: "ÉERROS",
EFFECT: "EFETIVA",
ISODD: "ÉIMPAR",
ISLOGICAL: "ÉLÓGICO",
ADDRESS: "ENDEREÇO",
ISNUMBER: "ÉNÚM",
STEYX: "EPADYX",
ISEVEN: "ÉPAR",
ISPMT: "ÉPGTO",
ISREF: "ÉREF",
CHOOSE: "ESCOLHER",
LEFT: "ESQUERDA",
ISTEXT: "ÉTEXTO",
EXACT: "EXATO",
MID: "EXT.TEXTO",
FALSO: "FALSO",
FACTDOUBLE: "FATDUPLO",
FACT: "FATORIAL",
EOMONTH: "FIMMÊS",
PHONETIC: "FONÉTICA",
YEARFRAC: "FRAÇÃOANO",
FREQUENCY: "FREQUÊNCIA",
ERF: "FUNERRO",
ERFC: "FUNERROCOMPL",
DEGREES: "GRAUS",
HEX2BIN: "HEXABIN",
HEX2DEC: "HEXADEC",
HEX2OCT: "HEXAOCT",
HYPERLINK: "HIPERLINK",
TODAY: "HOJE",
HOUR: "HORA",
IMAGINARY: "IMAGINÁRIO",
IMARGUMENT: "IMARG",
IMCONJUGATE: "IMCONJ",
ODD: "ÍMPAR",
IMPOWER: "IMPOT",
IMPRODUCT: "IMPROD",
IMSQRT: "IMRAIZ",
IMSIN: "IMSENO",
IMSUM: "IMSOMA",
IMSUB: "IMSUBTR",
SLOPE: "INCLINAÇÃO",
INDEX: "ÍNDICE",
INDIRECT: "INDIRETO",
GETPIVOTDATA: "INFODADOSTABELADINÂMICA",
INFO: "INFORMAÇÃO",
CONFIDENCE: "INT.CONFIANÇA",
INTERCEPT: "INTERCEPÇÃO",
NORMINV: "INV.NORM",
NORMSINV: "INV.NORMP",
CHIINV: "INV.QUI",
FINV: "INVF",
GAMMAINV: "INVGAMA",
LOGINV: "INVLOG",
TINV: "INVT",
IPMT: "IPGTO",
ACCRINT: "JUROSACUM",
ACCRINTM: "JUROSACUMV",
ROW: "LIN",
ROWS: "LINS",
GAMMALN: "LNGAMA",
FIND: "LOCALIZAR",
YIELD: "LUCRO",
YIELDDISC: "LUCRODESC",
ODDFYIELD: "LUCROPRIMINC",
ODDLYIELD: "LUCROÚLTINC",
YIELDMAT: "LUCROVENC",
LARGE: "MAIOR",
UPPER: "MAIÚSCULA",
MROUND: "MARRED",
MDETERM: "MATRIZ.DETERM",
MINVERSE: "MATRIZ.INVERSO",
MMULT: "MATRIZ.MULT",
MAX: "MÁXIMO",
MAXA: "MÁXIMOA",
GCD: "MDC",
MDURATION: "MDURAÇÃO",
MEDIAN: "MED",
AVERAGE: "MÉDIA",
GEOMEAN: "MÉDIA.GEOMÉTRICA",
HARMEAN: "MÉDIA.HARMÔNICA",
TRIMMEAN: "MÉDIA.INTERNA",
AVERAGEA: "MÉDIAA",
AVERAGEIF: "MÉDIASE",
AVERAGEIFS: "MÉDIASES",
SMALL: "MENOR",
MONTH: "MÊS",
MIN: "MÍNIMO",
MINA: "MÍNIMOA",
LOWER: "MINÚSCULA",
MINUTE: "MINUTO",
LCM: "MMC",
MODE: "MODO",
DOLLAR: "MOEDA",
DOLLARDE: "MOEDADEC",
DOLLARFR: "MOEDAFRA",
MIRR: "MTIR",
REPLACE: "MUDAR",
PRODUCT: "MULT",
NOT: "NÃO",
NA: "NÃO.DISP",
LEN: "NÚM.CARACT",
WEEKNUM: "NÚMSEMANA",
OCT2BIN: "OCTABIN",
OCT2DEC: "OCTADEC",
OCT2HEX: "OCTAHEX",
RANK: "ORDEM",
PERCENTRANK: "ORDEM.PORCENTUAL",
TBILLEQ: "OTN",
TBILLYIELD: "OTNLUCRO",
TBILLPRICE: "OTNVALOR",
OR: "OU",
STANDARDIZE: "PADRONIZAR",
EVEN: "PAR",
PERCENTILE: "PERCENTIL",
PMT: "PGTO",
CUMPRINC: "PGTOCAPACUM",
CUMIPMT: "PGTOJURACUM",
POWER: "POTÊNCIA",
PPMT: "PPGTO",
PRICE: "PREÇO",
PRICEDISC: "PREÇODESC",
ODDFPRICE: "PREÇOPRIMINC",
ODDLPRICE: "PREÇOÚLTINC",
PRICEMAT: "PREÇOVENC",
FORECAST: "PREVISÃO",
PROPER: "PRI.MAIÚSCULA",
LOOKUP: "PROC",
HLOOKUP: "PROCH",
SEARCH: "PROCURAR",
VLOOKUP: "PROCV",
LINEST: "PROJ.LIN",
LOGEST: "PROJ.LOG",
QUARTILE: "QUARTIL",
QUOTIENT: "QUOCIENTE",
RADIANS: "RADIANOS",
SQRT: "RAIZ",
SQRTPI: "RAIZPI",
RECEIVED: "RECEBER",
ROMAN: "ROMANO",
RSQ: "RQUAD",
SYD: "SDA",
IF: "SE",
IFERROR: "SEERRO",
SECOND: "SEGUNDO",
SIN: "SEN",
SINH: "SENH",
SIGN: "SINAL",
SUM: "SOMA",
SUMSQ: "SOMAQUAD",
SUMPRODUCT: "SOMARPRODUTO",
SUMIF: "SOMASE",
SERIESSUM: "SOMASEQÜÊNCIA",
SUMIFS: "SOMASES",
SUMX2MY2: "SOMAX2DY2",
SUMX2PY2: "SOMAX2SY2",
SUMXMY2: "SOMAXMY2",
REPLACE: "SUBSTITUIR",
RATE: "TAXA",
INTRATE: "TAXAJUROS",
TIME: "TEMPO",
TREND: "TENDÊNCIA",
CHITEST: "TESTE.QUI",
FTEST: "TESTEF",
TTEST: "TESTET",
ZTEST: "TESTEZ",
CEILING: "TETO",
TEXT: "TEXTO",
TYPE: "TIPO",
IRR: "TIR",
CLEAN: "TIRAR",
TRANSPOSE: "TRANSPOR",
TRUNC: "TRUNCAR",
VALUE: "VALOR",
TIMEVALUE: "VALOR.TEMPO",
VERDADEIRO: "VERDADEIRO",
FV: "VF",
FVSCHEDULE: "VFPLANO",
PV: "VP",
NPV: "VPL",
XIRR: "XTIR",
XNPV: "XVPL",
}
let keys = Object.keys(translate)
keys.forEach(function(v){
formula[translate[v]] = formula[v];
});
// Activate the precision adjusted
formula.adjustPrecision = true;
// By default, comma separates method arguments. But you can change that using:
formula.divisor = ';';
// Run the formula
formula("SOMA(1;2;3)"); // result = 6
</script>
</html>
Calendar Configuration
The calendar component supports international settings such as the first day of the week, day and month names, and date format. You can configure these options like this:
<html>
<script src="https://jspreadsheet.com/v11/jspreadsheet.js"></script>
<link rel="stylesheet" href="https://jspreadsheet.com/v11/jspreadsheet.css" type="text/css" />
<script src="https://jsuites.net/v5/jsuites.js"></script>
<link rel="stylesheet" href="https://jsuites.net/v5/jsuites.css" type="text/css" />
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Material+Icons" />
<div id="spreadsheet"></div>
<script>
let calendarOptions = {
// Define the letter that represent the weekdays
weekdays_short: ['D', 'S', 'T', 'Q', 'Q', 'S', 'S'],
// The week starts in which day?
startingDay: '1', // Starts on Monday
// Format
format: 'YYYY-Mon-DD',
};
// Set your JSS license key (The following key only works for one day)
jspreadsheet.setLicense('ZjEwMjhmYWEwMDZjM2QzYzBiOGFiYmVlYzAyMzk0ZTEwODE4OTE3NTU2NGNjYThlZTRjM2YxNzlmNDUzNjVhOGU0ZTQwNTEzZTlmODJjOGU1Y2YxZmJhZTdlM2U5NWY0NWQ1NDIyMGMyMzA3ZmExY2VhNTFhY2U4N2YwYzIyOTcsZXlKamJHbGxiblJKWkNJNklpSXNJbTVoYldVaU9pSktjM0J5WldGa2MyaGxaWFFpTENKa1lYUmxJam94TnpVMk56a3pOalEyTENKa2IyMWhhVzRpT2xzaWFuTndjbVZoWkhOb1pXVjBMbU52YlNJc0ltTnZaR1Z6WVc1a1ltOTRMbWx2SWl3aWFuTm9aV3hzTG01bGRDSXNJbU56WWk1aGNIQWlMQ0p6ZEdGamEySnNhWFI2TG1sdklpd2lkMlZpWTI5dWRHRnBibVZ5TG1sdklpd2lkMlZpSWl3aWJHOWpZV3hvYjNOMElsMHNJbkJzWVc0aU9pSXpOQ0lzSW5OamIzQmxJanBiSW5ZM0lpd2lkamdpTENKMk9TSXNJbll4TUNJc0luWXhNU0lzSW1Ob1lYSjBjeUlzSW1admNtMXpJaXdpWm05eWJYVnNZU0lzSW5CaGNuTmxjaUlzSW5KbGJtUmxjaUlzSW1OdmJXMWxiblJ6SWl3aWFXMXdiM0owWlhJaUxDSmlZWElpTENKMllXeHBaR0YwYVc5dWN5SXNJbk5sWVhKamFDSXNJbkJ5YVc1MElpd2ljMmhsWlhSeklpd2lZMnhwWlc1MElpd2ljMlZ5ZG1WeUlpd2ljMmhoY0dWeklpd2labTl5YldGMElsMHNJbVJsYlc4aU9uUnlkV1Y5');
// Create the spreadsheet
jspreadsheet(document.getElementById('spreadsheet'), {
worksheets: [
{
minDimensions: [6,6],
columns: [
{
type: 'calendar',
options: calendarOptions,
}
]
},
],
});
</script>
</html>
import React, { useRef } from "react";
import { Spreadsheet, Worksheet } from "@jspreadsheet/react";
import "jsuites/dist/jsuites.css";
import "jspreadsheet/dist/jspreadsheet.css";
const license = 'ZjEwMjhmYWEwMDZjM2QzYzBiOGFiYmVlYzAyMzk0ZTEwODE4OTE3NTU2NGNjYThlZTRjM2YxNzlmNDUzNjVhOGU0ZTQwNTEzZTlmODJjOGU1Y2YxZmJhZTdlM2U5NWY0NWQ1NDIyMGMyMzA3ZmExY2VhNTFhY2U4N2YwYzIyOTcsZXlKamJHbGxiblJKWkNJNklpSXNJbTVoYldVaU9pSktjM0J5WldGa2MyaGxaWFFpTENKa1lYUmxJam94TnpVMk56a3pOalEyTENKa2IyMWhhVzRpT2xzaWFuTndjbVZoWkhOb1pXVjBMbU52YlNJc0ltTnZaR1Z6WVc1a1ltOTRMbWx2SWl3aWFuTm9aV3hzTG01bGRDSXNJbU56WWk1aGNIQWlMQ0p6ZEdGamEySnNhWFI2TG1sdklpd2lkMlZpWTI5dWRHRnBibVZ5TG1sdklpd2lkMlZpSWl3aWJHOWpZV3hvYjNOMElsMHNJbkJzWVc0aU9pSXpOQ0lzSW5OamIzQmxJanBiSW5ZM0lpd2lkamdpTENKMk9TSXNJbll4TUNJc0luWXhNU0lzSW1Ob1lYSjBjeUlzSW1admNtMXpJaXdpWm05eWJYVnNZU0lzSW5CaGNuTmxjaUlzSW5KbGJtUmxjaUlzSW1OdmJXMWxiblJ6SWl3aWFXMXdiM0owWlhJaUxDSmlZWElpTENKMllXeHBaR0YwYVc5dWN5SXNJbk5sWVhKamFDSXNJbkJ5YVc1MElpd2ljMmhsWlhSeklpd2lZMnhwWlc1MElpd2ljMlZ5ZG1WeUlpd2ljMmhoY0dWeklpd2labTl5YldGMElsMHNJbVJsYlc4aU9uUnlkV1Y5'
const calendarOptions = {
// Define the letter that represent the weekdays
weekdays_short: ['D', 'S', 'T', 'Q', 'Q', 'S', 'S'],
// The week starts in which day?
startingDay: '1', // Starts on Monday
// Format
format: 'YYYY-Mon-DD',
};
const columns = [{
type: 'calendar',
options: calendarOptions,
}]
export default function App() {
// Spreadsheet array of worksheets
const spreadsheet = useRef();
// Render data grid component
return (
<Spreadsheet ref={spreadsheet} license={license}>
<Worksheet minDimension={[6, 6]} columns={columns} />
</Spreadsheet>
);
}
<template>
<Spreadsheet ref="spreadsheet" :license="license">
<Worksheet :minDimensions="[6, 6]" :columns="columns" />
</Spreadsheet>
</template>
<script>
import { Spreadsheet, Worksheet, jspreadsheet } from "@jspreadsheet/vue";
import "jsuites/dist/jsuites.css";
import "jspreadsheet/dist/jspreadsheet.css";
const license = 'ZjEwMjhmYWEwMDZjM2QzYzBiOGFiYmVlYzAyMzk0ZTEwODE4OTE3NTU2NGNjYThlZTRjM2YxNzlmNDUzNjVhOGU0ZTQwNTEzZTlmODJjOGU1Y2YxZmJhZTdlM2U5NWY0NWQ1NDIyMGMyMzA3ZmExY2VhNTFhY2U4N2YwYzIyOTcsZXlKamJHbGxiblJKWkNJNklpSXNJbTVoYldVaU9pSktjM0J5WldGa2MyaGxaWFFpTENKa1lYUmxJam94TnpVMk56a3pOalEyTENKa2IyMWhhVzRpT2xzaWFuTndjbVZoWkhOb1pXVjBMbU52YlNJc0ltTnZaR1Z6WVc1a1ltOTRMbWx2SWl3aWFuTm9aV3hzTG01bGRDSXNJbU56WWk1aGNIQWlMQ0p6ZEdGamEySnNhWFI2TG1sdklpd2lkMlZpWTI5dWRHRnBibVZ5TG1sdklpd2lkMlZpSWl3aWJHOWpZV3hvYjNOMElsMHNJbkJzWVc0aU9pSXpOQ0lzSW5OamIzQmxJanBiSW5ZM0lpd2lkamdpTENKMk9TSXNJbll4TUNJc0luWXhNU0lzSW1Ob1lYSjBjeUlzSW1admNtMXpJaXdpWm05eWJYVnNZU0lzSW5CaGNuTmxjaUlzSW5KbGJtUmxjaUlzSW1OdmJXMWxiblJ6SWl3aWFXMXdiM0owWlhJaUxDSmlZWElpTENKMllXeHBaR0YwYVc5dWN5SXNJbk5sWVhKamFDSXNJbkJ5YVc1MElpd2ljMmhsWlhSeklpd2lZMnhwWlc1MElpd2ljMlZ5ZG1WeUlpd2ljMmhoY0dWeklpd2labTl5YldGMElsMHNJbVJsYlc4aU9uUnlkV1Y5';
const calendarOptions = {
// Define the letter that represents the weekdays
weekdays_short: ['D', 'S', 'T', 'Q', 'Q', 'S', 'S'],
// The week starts in which day?
startingDay: '1', // Starts on Monday
// Format
format: 'YYYY-Mon-DD',
};
const columns = [{
type: 'calendar',
options: calendarOptions,
}]
export default {
components: {
Spreadsheet,
Worksheet,
},
mounted() {
},
data() {
return {
// License
license: license,
columns: columns,
};
}
}
</script>
import { Component, ViewChild, ElementRef } from "@angular/core";
import jspreadsheet from "jspreadsheet";
// Set your JSS license key (The following key only works for one day)
jspreadsheet.setLicense('ZjEwMjhmYWEwMDZjM2QzYzBiOGFiYmVlYzAyMzk0ZTEwODE4OTE3NTU2NGNjYThlZTRjM2YxNzlmNDUzNjVhOGU0ZTQwNTEzZTlmODJjOGU1Y2YxZmJhZTdlM2U5NWY0NWQ1NDIyMGMyMzA3ZmExY2VhNTFhY2U4N2YwYzIyOTcsZXlKamJHbGxiblJKWkNJNklpSXNJbTVoYldVaU9pSktjM0J5WldGa2MyaGxaWFFpTENKa1lYUmxJam94TnpVMk56a3pOalEyTENKa2IyMWhhVzRpT2xzaWFuTndjbVZoWkhOb1pXVjBMbU52YlNJc0ltTnZaR1Z6WVc1a1ltOTRMbWx2SWl3aWFuTm9aV3hzTG01bGRDSXNJbU56WWk1aGNIQWlMQ0p6ZEdGamEySnNhWFI2TG1sdklpd2lkMlZpWTI5dWRHRnBibVZ5TG1sdklpd2lkMlZpSWl3aWJHOWpZV3hvYjNOMElsMHNJbkJzWVc0aU9pSXpOQ0lzSW5OamIzQmxJanBiSW5ZM0lpd2lkamdpTENKMk9TSXNJbll4TUNJc0luWXhNU0lzSW1Ob1lYSjBjeUlzSW1admNtMXpJaXdpWm05eWJYVnNZU0lzSW5CaGNuTmxjaUlzSW5KbGJtUmxjaUlzSW1OdmJXMWxiblJ6SWl3aWFXMXdiM0owWlhJaUxDSmlZWElpTENKMllXeHBaR0YwYVc5dWN5SXNJbk5sWVhKamFDSXNJbkJ5YVc1MElpd2ljMmhsWlhSeklpd2lZMnhwWlc1MElpd2ljMlZ5ZG1WeUlpd2ljMmhoY0dWeklpd2labTl5YldGMElsMHNJbVJsYlc4aU9uUnlkV1Y5');
// Create component
@Component({
standalone: true,
selector: "app-root",
template: `<div #spreadsheet></div>`,
})
export class AppComponent {
@ViewChild("spreadsheet") spreadsheet: ElementRef;
// Worksheets
worksheets: jspreadsheet.worksheetInstance[];
// Create a new data grid
ngAfterViewInit() {
const calendarOptions = {
// Define the letter that represent the weekdays
weekdays_short: ['D', 'S', 'T', 'Q', 'Q', 'S', 'S'],
// The week starts in which day?
startingDay: '1', // Starts on Monday
// Format
format: 'YYYY-Mon-DD',
};
const columns = [{
type: 'calendar',
options: calendarOptions,
}]
// Create spreadsheet
this.worksheets = jspreadsheet(this.spreadsheet.nativeElement, {
worksheets: [
{ minDimensions: [6, 6], columns: columns }, // Worksheet 1
],
});
}
}