The spreadsheet module is moved to the community version for the upcoming spreadsheet dashboards This module is the core engine of spreadsheets in Odoo. It contains `o-spreadsheet` library (o_spreadsheet.js) and all basic integrations with odoo such as accounting formulas, lists, pivot, filters, etc. This module alone does not have any action or menu to open a spreadsheet. Those actions come with `documents_spreadsheet` module or the upcoming `spreadsheet_dashboard` module. Task 2799682 Part-of: odoo/odoo#97606
56 lines
1.6 KiB
JavaScript
56 lines
1.6 KiB
JavaScript
/** @odoo-module */
|
|
|
|
import spreadsheet from "@spreadsheet/o_spreadsheet/o_spreadsheet_extended";
|
|
|
|
const { toCartesian } = spreadsheet.helpers;
|
|
|
|
/**
|
|
* Get the value of the given cell
|
|
*/
|
|
export function getCellValue(model, xc, sheetId = model.getters.getActiveSheetId()) {
|
|
const { col, row } = toCartesian(xc);
|
|
const cell = model.getters.getCell(sheetId, col, row);
|
|
if (!cell) {
|
|
return undefined;
|
|
}
|
|
return cell.evaluated.value;
|
|
}
|
|
|
|
/**
|
|
* Get the cell of the given xc
|
|
*/
|
|
export function getCell(model, xc, sheetId = model.getters.getActiveSheetId()) {
|
|
const { col, row } = toCartesian(xc);
|
|
return model.getters.getCell(sheetId, col, row);
|
|
}
|
|
|
|
/**
|
|
* Get the cells of the given sheet (or active sheet if not provided)
|
|
*/
|
|
export function getCells(model, sheetId = model.getters.getActiveSheetId()) {
|
|
return model.getters.getCells(sheetId);
|
|
}
|
|
|
|
/**
|
|
* Get the formula of the given xc
|
|
*/
|
|
export function getCellFormula(model, xc, sheetId = model.getters.getActiveSheetId()) {
|
|
const cell = getCell(model, xc, sheetId);
|
|
return cell && cell.isFormula() ? model.getters.getFormulaCellContent(sheetId, cell) : "";
|
|
}
|
|
|
|
/**
|
|
* Get the content of the given xc
|
|
*/
|
|
export function getCellContent(model, xc, sheetId = model.getters.getActiveSheetId()) {
|
|
const cell = getCell(model, xc, sheetId);
|
|
return cell ? model.getters.getCellText(cell, sheetId, true) : "";
|
|
}
|
|
|
|
/**
|
|
* Get the list of the merges (["A1:A2"]) of the sheet
|
|
*/
|
|
export function getMerges(model, sheetId = model.getters.getActiveSheetId()) {
|
|
return model.exportData().sheets.find((sheet) => sheet.id === sheetId).merges;
|
|
}
|