Библиотека Ant Design в JavaScript предоставляет широкие возможности для визуализации и управления данными. Часто возникает необходимость экспортировать данные из таблиц, форм или других компонентов в форматы, удобные для дальнейшей работы — например, CSV, Excel или PDF. В Ant Design этот процесс реализуется с помощью комбинации встроенных компонентов и сторонних библиотек для обработки данных.
Table)Компонент Table является базовым элементом отображения структурированных данных в Ant Design. Для организации экспорта данных используется несколько подходов:
dataSource и массив колонок
columns. Для экспорта создается отдельный массив,
соответствующий формату вывода. Например:const exportData = dataSource.map(item => ({
Имя: item.name,
Возраст: item.age,
Email: item.email,
}));
json2csv.
Пример использования:import { Parser } from 'json2csv';
import { saveAs } from 'file-saver';
const fields = ['Имя', 'Возраст', 'Email'];
const json2csvParser = new Parser({ fields });
const csv = json2csvParser.parse(exportData);
const blob = new Blob([csv], { type: 'text/csv;charset=utf-8;' });
saveAs(blob, 'export.csv');
xlsx:import * as XLSX from 'xlsx';
const worksheet = XLSX.utils.json_to_sheet(exportData);
const workbook = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1');
XLSX.writeFile(workbook, 'export.xlsx');
В реальных приложениях таблицы содержат фильтры и пагинацию. Для корректного экспорта необходимо:
const filteredData = dataSource
.filter(item => item.age > 18)
.sort((a, b) => a.name.localeCompare(b.name));
При экспорте важно контролировать:
fields.const formattedData = dataSource.map(item => ({
Имя: item.name,
ДатаРегистрации: item.registrationDate.toLocaleDateString(),
Баланс: item.balance.toFixed(2),
}));
xlsx
позволяет задавать стили ячеек (шрифты, цвета, выравнивание) при
использовании формата xlsx-style.Для удобства пользователя часто добавляют кнопку экспорта рядом с таблицей. В Ant Design используется компонент Button, а для группирования с таблицей — Space или Dropdown.
import { Button, Space } from 'antd';
import { DownloadOutlined } from '@ant-design/icons';
<Space style={{ marginBottom: 16 }}>
<Button
type="primary"
icon={<DownloadOutlined />}
onCl ick={handleExport}
>
Экспорт CSV
</Button>
<Button
type="default"
onCl ick={handleExportExcel}
>
Экспорт Excel
</Button>
</Space>
Функция handleExport содержит логику преобразования
данных и их сохранения в выбранный формат.
При работе с большими наборами данных важно учитывать производительность:
Помимо таблиц, часто нужно экспортировать данные из:
form.getFieldsValue() и конвертировать в CSV/Excel.const formData = form.getFieldsValue();
const csvData = Object.keys(formData).map(key => ({
Поле: key,
Значение: formData[key],
}));
Для генерации PDF можно использовать jsPDF или
pdfmake:
import jsPDF from 'jspdf';
import 'jspdf-autotable';
const doc = new jsPDF();
doc.autoTable({
head: [['Имя', 'Возраст', 'Email']],
body: exportData.map(item => [item.Имя, item.Возраст, item.Email]),
});
doc.save('export.pdf');
Эта интеграция позволяет экспортировать табличные данные в PDF с форматированием и стилями.
Button и Space.Комплексный подход к экспорту данных в Ant Design обеспечивает удобство работы с информацией и позволяет интегрировать библиотеку в любые приложения с высокими требованиями к обработке данных.