Экспорт связанных функций
Экспорт — это основная функция данного плагина, предназначенная для предоставления пользователям возможности загрузки данных из интерфейса в виде файла Excel. При разработке функций особое внимание уделялось соответствию реальным сценариям использования. Были созданы такие вспомогательные функции, как filterExportData для упорядочивания данных и setExportCellStyle для добавления стилей, а также setRoundBorder для настройки границ.
Параметры конфигурации exportExcel
Основная функция, используемая для последовательного экспорта данных. Если необходимо настроить порядок полей или отфильтровать лишние данные в файле после экспорта, следует обратиться к методу filterExportData.
Внимание: перед вызовом exportExcel все строки должны иметь одинаковое количество элементов с одинаковыми ключами, расположенными в одном порядке. В противном случае могут возникнуть проблемы с выравниванием, стилем рендеринга и т. д.
Параметр | Описание | Значение по умолчанию |
---|---|---|
data | Список данных (необходимо указать имя таблицы) | Обязательный |
filename | Имя файла (с расширением) | Обязательный |
type | Тип экспорта: xlsx, csv, ods, xlsb, fods, biff2 | xlsx |
opt | Дополнительные параметры конфигурации | null |
Пример данных:
{
"sheet1": [
{name: '111', sex: 'male'},
{name: '222', sex: 'female'},
]
}
Поддерживаемые параметры opt:
Параметр | Описание | Значение по умолчанию |
---|---|---|
opt.Props | Параметры документа: Title, Subject, Author, Manager, Company, Category, Keywords, Comments, LastAuthor, CreatedData | null |
opt.extend | Параметры таблицы: !merge (объединение информации ячеек), !cols (количество строк), !protect (защита от записи) и др. Для получения дополнительной информации о настройке обратитесь к документации SheetJS. | null |
opt.compression | Сжатие: рекомендуется включить (эффективно при большом количестве повторяющихся данных) | true |
opt.writeOpt | Опции записи: обычно используются настройки по умолчанию. Подробнее см. Writing Options | undefined |
В writeOpt наиболее значимым является bookSST, который позволяет включить запись SharedString.xml и тем самым повысить совместимость при импорте данных. Однако это приводит к увеличению размера файла (если включено сжатие).
Если вы хотите указать параметры opt.extend для определённого листа, используйте следующий формат:
excel.exportExcel({
sheet1: data,
sheet2: data
}, '测试导出复杂表头.xlsx', 'xlsx', {
extend: {
// extend 中 можно указать свойства для конкретного листа. Если не указано, применяются настройки для всех листов
sheet1: {
// следующие настройки применимы только к sheet1
'!merges': mergeConf
,'!cols': colConf
,'!rows': rowConf
}
}
});
Параметры конфигурации downloadExl
Функция совместимости для быстрого экспорта данных без необходимости указывать имя листа или расширение файла. Остальные параметры аналогичны exportExcel.
Параметр | Описание | Значение по умолчанию |
---|---|---|
data | Экспортируемые данные | — |
filename | Имя файла без расширения | — |
type | Формат экспорта (автоматически добавляется к имени файла) | — |
Параметры конфигурации filterExportData
Вспомогательная функция для организации экспортируемых данных, включая сортировку полей и фильтрацию лишних данных.
Примечание: эту функцию можно использовать только один раз для данных на уровне таблицы. Можно выбрать один из трёх режимов: массив, объект или функция обратного вызова. Если требуется многократно изменять содержимое таблицы, рекомендуется использовать метод setExportCellStyle. Также обратите внимание, что ключи объектов не должны быть числовыми, так как порядок чисел в объектах может быть непредсказуемым.
Параметр | Описание | Значение по умолчанию |
---|---|---|
data | Данные для организации | Обязательный |
fields | Массив, объект или функция обратного вызова для отображения отношений и сортировки полей | Обязательный |
Значение score необходимо умножить на 10, а поле username переименовать в name. Поля sex и city должны быть сохранены. Все ячейки поля city необходимо сделать полужирными, центрировать по вертикали и горизонтали, а также сделать красными с белым текстом. (Для использования стиля обратитесь к разделу «Настройка стилей»).
var data = [];// Предполагаемые данные из бэкенда
data = excel.filterExportData(data, {
name: 'username',
sex:'sex',
city: function(value, line, data) {
return {
v: value,// v обозначает значение ячейки
s:{// s обозначает стиль
alignment: {
horizontal: 'center',
vertical: 'center',
},
font: { sz: 14, bold: true, color: { rgb: "FFFFFF" } },
fill: { bgColor: { indexed: 64 }, fgColor: { rgb: "FF0000" }}
},
};
},
range: function(value, line, data) {
return line['start'] + '~' + line['end'];
},
score: function(value, line, data) {
return value * 10;
}
});
excel.exportExcel(data, '导出测试.xlsx', 'xlsx');
Key | Description |
---|---|
v |
Значение ячейки |
w |
Форматированный текст (если применимо) |
t |
Тип ячейки: b логическое значение, n число, e ошибка, s символ, d дата |
f |
Формула ячейки (если применима) |
r |
Расширенный текст (если применим) |
h |
Отображение расширенного текста в HTML (если применимо) |
c |
Связанные с ячейкой комментарии |
z |
Строка числового формата, связанная с ячейкой (если требуется) |
l |
Объект гиперссылки ячейки (цель ссылки, .tooltip — подсказка) |
s |
Стиль/тема ячейки (если применимы) |
Пример настройки формулы:
Обратите внимание: при экспорте веб-страницы в формате xlsx и открытии её в Microsoft Excel в защищённом режиме формулы не отображаются. Чтобы исправить это, необходимо отключить защищённый режим!
Для сложных формул автор не имеет полного понимания, поэтому рассмотрим пример простой формулы SUM(A1, A10). В плагине необходимо установить свойства ячейки следующим образом: {t: 'n', f: 'SUM(A1:A10)'}
. Например, чтобы добавить строку с общим обзором, можно добавить следующие данные:
// 4. Пример использования формулы
data.push({
id: '',
username: 'Общий возраст',
age: {t: 'n', f: 'SUM(C4:C10)'},
sex: 'Общая оценка',
score: {t: 'n', f: 'SUM(E4:E10)'},
classify: ''
});
Официальная документация по формулам: https://github.com/SheetJS/js-xlsx#formulae.
Вспомогательный метод: преобразование таблицы DOM в данные JSON.
Параметр | Описание | По умолчанию |
---|---|---|
dom | Объект DOM или jQuery для исходной таблицы | null |
Параметр | Тип | Описание |
---|---|---|
head | array | Массив данных заголовка таблицы |
body | array | Массив данных тела таблицы |
head содержит данные заголовка, body — данные хвоста. Для объединения массивов можно использовать arr1.push.apply(arr, arr2).
// Получение данных заголовка и тела
var data = LAY_EXCEL.tableToJson(document.getElementById('LAY-EXPORT-TEST')) // Или $('#LAY-EXPORT-TEST')
// console.log(data)
var exportData = []
exportData.push.apply(exportData, data.head)
exportData.push.apply(exportData, data.body)
// console.log(exportData)
LAY_EXCEL.exportExcel(exportData, 'Экспорт таблицы.xlsx', 'xlsx')
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )