1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/wangerzi-layui-excel

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
导出相关函数.md 12 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 28.11.2024 11:53 ed2126c

Экспорт связанных функций

Экспорт — это основная функция данного плагина, предназначенная для предоставления пользователям возможности загрузки данных из интерфейса в виде файла 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.

tableToJson параметры конфигурации

Вспомогательный метод: преобразование таблицы 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 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/wangerzi-layui-excel.git
git@api.gitlife.ru:oschina-mirror/wangerzi-layui-excel.git
oschina-mirror
wangerzi-layui-excel
wangerzi-layui-excel
master