Введение
Aspose.Cells FOSS for TypeScript предоставляет комплексный набор функций управления электронными таблицами, выходящих за рамки базового чтения/записи ячеек. Разработчики могут применять детальное стилизование, настраивать правила проверки данных, конфигурировать автофильтры, добавлять условное форматирование, создавать диаграммы, вставлять фигуры и защищать книги – всё из кода TypeScript без зависимости от Microsoft Office.
В этой статье рассматриваются основные возможности управления электронными таблицами, доступные в библиотеке, с рабочими примерами кода для каждой области функций.
Ключевые особенности
Проверка данных
Добавьте правила проверки в диапазоны ячеек, используя класс DataValidation. Поддерживаемые типы проверки включают список, числовой диапазон и пользовательские формулы. Применяйте проверку к любому диапазону с помощью worksheet.addDataValidation().
const workbook = new Workbook();
const worksheet = workbook.worksheets[0]!;
const validation = new DataValidation();
validation.type = "list";
validation.formula1 = '"Option1,Option2,Option3"';
worksheet.addDataValidation(validation, "B1:B10");
await workbook.save("validated.xlsx");
Автофильтр
Включите автофильтр заголовков в диапазоне данных с помощью worksheet.setAutoFilter(). Это добавляет элементы управления выпадающим фильтром к заголовкам столбцов в выходном файле XLSX. Удалите фильтры с помощью worksheet.removeAutoFilter().
const workbook = new Workbook();
const worksheet = workbook.worksheets[0]!;
worksheet.putValue("A1", "Name");
worksheet.putValue("B1", "Age");
worksheet.putValue("C1", "City");
worksheet.putValue("A2", "Alice");
worksheet.putValue("B2", "25");
worksheet.putValue("C2", "New York");
worksheet.putValue("A3", "Bob");
worksheet.putValue("B3", "30");
worksheet.putValue("C3", "London");
worksheet.setAutoFilter("A1:C4");
await workbook.save("filtered.xlsx");
Условное форматирование
Применяйте визуальные правила к диапазонам ячеек, используя ConditionalFormatCollection. Библиотека поддерживает ColorScaleRule, DataBarRule и IconSetRule для выделения ячеек на основе их значений.
const workbook = new Workbook();
const worksheet = workbook.worksheets[0]!;
for (let i = 1; i <= 10; i++) {
worksheet.putValue(`A${i}`, i * 10);
}
await workbook.save("conditional.xlsx");
Гиперссылки и комментарии
Прикрепите гиперссылки к ячейкам с cell.setHyperlink(), поддерживая URL‑адреса, адреса электронной почты и внутренние ссылки на листы. Добавьте комментарии с worksheet.addComment(), используя объекты Comment.
const workbook = new Workbook();
const worksheet = workbook.worksheets[0]!;
worksheet.putValue("A1", "Click here");
worksheet.getCell2("A1").setHyperlink("https://www.example.com");
worksheet.putValue("A3", "Send email");
worksheet.getCell2("A3").setHyperlink("mailto:test@example.com");
await workbook.save("hyperlinks.xlsx");
Защита рабочей книги и ячеек
Защитите целые рабочие книги паролем, используя workbook.protect(). Заблокируйте отдельные ячейки с помощью style.setLocked(true) и контролируйте видимость формул с помощью style.setHidden().
const workbook = new Workbook();
const worksheet = workbook.worksheets[0]!;
worksheet.putValue("A1", "Protected Cell");
const style = new Style();
style.setLocked(true);
style.setHidden(false);
worksheet.getCell2("A1").setStyle(style);
workbook.protect(true, "password");
await workbook.save("protected.xlsx");
Размеры столбцов и строк
Установите ширину столбцов с worksheet.setColumnWidth() и высоту строк с worksheet.setRowHeight(). Скрывайте строки с worksheet.setRowHidden(). Эти настройки сохраняются в сохранённом файле XLSX.
const workbook = new Workbook();
const worksheet = workbook.worksheets[0]!;
worksheet.putValue("A1", "Wide Column");
worksheet.setColumnWidth(0, 30);
worksheet.setRowHeight(0, 25);
await workbook.save("sized.xlsx");
Быстрый старт
Установить с помощью npm:
npm install @aspose/cells@1.0.0
Создайте стилизованную книгу с проверкой данных и автофильтром:
import { Workbook, Style, DataValidation } from "@aspose/cells";
const workbook = new Workbook();
const worksheet = workbook.worksheets[0]!;
worksheet.putValue("A1", "Status");
worksheet.putValue("B1", "Value");
const headerStyle = new Style();
headerStyle.setBold(true);
worksheet.getCell2("A1").setStyle(headerStyle);
worksheet.getCell2("B1").setStyle(headerStyle);
const validation = new DataValidation();
validation.type = "list";
validation.formula1 = '"Active,Inactive,Pending"';
worksheet.addDataValidation(validation, "A2:A20");
worksheet.setAutoFilter("A1:B20");
await workbook.save("managed.xlsx");
Открытый исходный код и лицензирование
Aspose.Cells FOSS for TypeScript выпущен под лицензией MIT. Исходный код доступен на GitHub. Коммерческое использование разрешено в соответствии с условиями лицензии MIT.