Загрузка и экспорт данных
Вы можете заполнить DHTMLX Spreadsheet подготовленным набором данных, который может включать как данные ячеек, так и стили. Компонент поддерживает два способа загрузки данных:
- загрузка из внешнего файла
- загрузка из локального источника
Компонент также поддерживает экспорт данных в файл Excel.
Подготовка данных
DHTMLX Spreadsheet ожидает данные в формате JSON.
Это может быть простой массив объектов ячеек. Используйте этот способ, если нужно создать набор данных только для одного листа.
const data = [
{ cell: "A1", value: "Country" },
{ cell: "B1", value: "Product" },
{ cell: "C1", value: "Price" },
{ cell: "D1", value: "Amount" },
{ cell: "E1", value: "Total Price" },
{ cell: "A2", value: "Ecuador" },
{ cell: "B2", value: "Banana" },
{ cell: "C2", value: 6.68, format:"currency" },
{ cell: "D2", value: 430, format:"percent" },
// "myFormat" is the id of a custom format
{ cell: "E2", value: 2872.4, format:"myFormat" },
// add drop-down lists to cells
{ cell: "A9", value: "Turkey", editor: {type: "select", options: ["Turkey","India","USA","Italy"]} },
{ cell: "B9", value: "", editor: {type: "select", options: "B2:B8" } },
// more cell objects
];
Или это может быть объект с данными для загрузки сразу в несколько листов. Например:
const data = {
sheets: [
{
name: "sheet 1",
id: "sheet_1",
data: [
{ cell: "A1", value: "Country" },
{ cell: "B1", value: "Product" },
// more data
],
merged: [
// merge cells A1 and B1
{ from: { column: 0, row: 0 }, to: { column: 1, row: 0 } },
// merge cells A2, A3, A4, and A5
{ from: { column: 0, row: 1 }, to: { column: 0, row: 4 } },
]
},
{
name: "sheet 2",
id: "sheet_2",
data: [
{ cell: "A1", value: "Country" },
{ cell: "B1", value: "Product" },
// more data
]
},
// more sheet objects
]
};
Ознакомьтесь с полными списками доступных свойств для этих двух способов в справочнике API.
Возможность загрузки объединённых ячеек доступна только при подготовке данных в объекте листа.
Задание стилей для ячеек
Возможно, вам потребуется определить стили ячеек в наборе данных. В этом случае данные должны быть объектом с отдельными свойствами, описывающими объекты данных и CSS-классы, применяемые к конкретным ячейкам.
Задайте CSS-класс для ячейки с помощью свойства css.
const styledData = {
styles: {
someclass: {
background: "#F2F2F2",
color: "#F57C00"
}
},
data: [
{ cell: "A1", value: "Country" },
{ cell: "B1", value: "Product" },
{ cell: "C1", value: "Price" },
{ cell: "D1", value: "Amount" },
{ cell: "E1", value: "Total Price" },
{ cell: "A2", value: "Ecuador" },
{ cell: "B2", value: "Banana" },
{ cell: "C2", value: 6.68, css: "someclass" },
{ cell: "D2", value: 430, css: "someclass" },
{ cell: "E2", value: 2872.4 }
],
}
Задание заблокированного состояния для ячейки
Если вы хотите указать заблокированные ячейки в наборе данных, используйте свойство locked ячейки и установите его в true:
const dataset = [
{ cell: "a1", value: "Country", locked: true }, //locks a cell
{ cell: "b1", value: "Product", locked: true },
{ cell: "a2", value: "Ecuador" },
{ cell: "b2", value: "Banana" },
{ cell: "a3", value: "Belarus" },
{ cell: "b3", value: "Apple" },
// more cells
];
Ознакомьтесь с полным списком доступных свойств ячеек в справочнике API.
Заблокированное состояние является частью данных таблицы. Оно включается в объект, возвращаемый методом serialize(), даже если заблокированная ячейка пуста, и сохраняется при экспорте данных в файл Excel и обратном импорте.
Связанный пример: Spreadsheet. Заблокированные ячейки
Добавление ссылки в ячейку
Вы можете указать ссылку для ячейки прямо в наборе данных. Для этого задайте свойство link как объект и укажите необходимые настройки:
text- (необязательно) текст ссылкиhref- (обязательно) URL-адрес, определяющий назначение ссылки
Вот как это выглядит в наборе данных:
const dataset = [
{ cell: "a1", value: "Country"}, //locks a cell
{ cell: "b1", value: "Product"},
{ cell: "a2", value: "Ecuador"},
{
cell: "b2",
value: "Banana",
link:{
href:"http://localhost:8080/"
}
},
// more cells
];
Обратите внимание, что не следует использовать свойство value объекта cell и свойство text объекта link одновременно, поскольку они являются взаимоисключающими.
Связанный пример: Spreadsheet. Импорт и экспорт в JSON
Загрузка из внешнего источника
Загрузка данных JSON
По умолчанию Spreadsheet ожидает данные в формате JSON. Чтобы загрузить данные из внешнего источника, используйте метод load(). Он принимает URL-адрес файла с данными в качестве параметра:
var spreadsheet = new dhx.Spreadsheet("spreadsheet");
spreadsheet.load("../common/data.json");
Связанный пример: Spreadsheet. Загрузка данных
Если вы хотите предоставить пользователям возможность импортировать JSON-файл в таблицу через Проводник файлов, прочитайте раздел Загрузка JSON-файлов.
Загрузка данных CSV
Вы также можете загружать данные в формате CSV. Для этого нужно вызвать метод load() и передать название формата ("csv") вторым параметром:
var spreadsheet = new dhx.Spreadsheet("spreadsheet");
spreadsheet.load("../common/data.csv", "csv");
Связанный пример: Spreadsheet. Загрузка CSV