Настройки границ

Добавление границ в ячейки

Microsoft Excel позволяет пользователям форматировать ячейки, добавляя границы. Тип границы зависит от её расположения. Например, верхняя граница добавляется к верхней стороне ячейки. Также можно изменить стиль линии и цвет границы.

С помощью Aspose.Cells for JavaScript через C++, разработчики могут добавлять границы и настраивать их внешний вид так же гибко, как в Microsoft Excel.

Добавление границ в ячейки

Aspose.Cells предоставляет класс Workbook, который представляет файл Microsoft Excel. Класс Workbook содержит коллекцию worksheets, позволяющую получить доступ к каждому листу в файле Excel. Лист представлен классом Worksheet. Класс Worksheet обеспечивает коллекцию cells. Каждый элемент коллекции cells представляет объект класса Cell.

Aspose.Cells предоставляет свойство style в классе Cell. style используется для установки стиля форматирования ячейки. Класс Style предоставляет свойства для добавления границ к ячейкам.

Добавление границ к ячейке

Разработчики могут добавлять границы к ячейке, используя коллекцию borders объекта Style. Тип границы передается как индекс в коллекцию borders. Все типы границ предопределены в перечислении BorderType.

Перечисление границ

Типы границ Описание
BottomBorder Линия нижней границы
DiagonalDown Диагональная линия от верхнего левого до нижнего правого
DiagonalUp Диагональная линия от нижнего левого до верхнего правого
LeftBorder Линия левой границы
RightBorder Линия правой границы
TopBorder Линия верхней границы

Коллекция borders хранит все границы. Каждая граница в коллекции borders представлена объектом Border, который обеспечивает два свойства: color и lineStyle для установки цвета линии границы и стиля соответственно.

Чтобы установить цвет линии границы, выберите цвет с помощью перечисления Color (часть JavaScript) и присвойте его свойству color объекта Border.

Стиль линии границы устанавливается выбором стиля линии из перечисления CellBorderType.

Перечисление типов границ ячейки

Стили линий Описание
DashDot Тонкая пунктирная линия
DashDotDot Тонкая штрих-пунктирная линия
Dashed Пунктирная линия
Dotted Точечная линия
Double Двойная линия
Hair Линия минимальной толщины
MediumDashDot Средняя штрих-пунктирная линия
MediumDashDotDot Средняя штрих-точечно-пунктирная линия
MediumDashed Средняя пунктирная линия
None Нет линии
Medium Средняя линия
SlantedDashDot Наклоненная средняя штрих-пунктирная линия
Thick Толстая линия
Thin Тонкая линия
Выберите один из стилей линий и затем присвойте его свойству lineStyle объекта Border.
<!DOCTYPE html>
<html>
    <head>
        <title>Aspose.Cells Example</title>
    </head>
    <body>
        <h1>Add Borders to A1 Cell Example</h1>
        <input type="file" id="fileInput" accept=".xls,.xlsx,.csv" />
        <button id="runExample">Run Example</button>
        <a id="downloadLink" style="display: none;">Download Result</a>
        <div id="result"></div>
    </body>

    <script src="aspose.cells.js.min.js"></script>
    <script type="text/javascript">
        const { Workbook, SaveFormat, Worksheet, Cell } = AsposeCells;

        AsposeCells.onReady({
            license: "/lic/aspose.cells.enc",
            fontPath: "/fonts/",
            fontList: [
                "arial.ttf",
                "NotoSansSC-Regular.ttf"
            ]
        }).then(() => {
            console.log("Aspose.Cells initialized");
        });

        document.getElementById('runExample').addEventListener('click', async () => {
            // This example creates a new workbook and adds borders to cell A1.
            // No try/catch is used so errors propagate for testing.

            // Instantiating a Workbook object
            const workbook = new Workbook();

            // Obtaining the reference of the first (default) worksheet by passing its sheet index
            const worksheet = workbook.worksheets.get(0);

            // Accessing the "A1" cell from the worksheet
            const cell = worksheet.cells.get("A1");

            // Adding some value to the "A1" cell
            cell.value = "Visit Aspose!";

            // Create a style object
            const style = cell.style;

            // Setting the line style and color of the top border
            style.borders.get(AsposeCells.BorderType.TopBorder).lineStyle = AsposeCells.CellBorderType.Thick;
            style.borders.get(AsposeCells.BorderType.TopBorder).color = AsposeCells.Color.Black;

            // Setting the line style and color of the bottom border
            style.borders.get(AsposeCells.BorderType.BottomBorder).lineStyle = AsposeCells.CellBorderType.Thick;
            style.borders.get(AsposeCells.BorderType.BottomBorder).color = AsposeCells.Color.Black;

            // Setting the line style and color of the left border
            style.borders.get(AsposeCells.BorderType.LeftBorder).lineStyle = AsposeCells.CellBorderType.Thick;
            style.borders.get(AsposeCells.BorderType.LeftBorder).color = AsposeCells.Color.Black;

            // Setting the line style and color of the right border
            style.borders.get(AsposeCells.BorderType.RightBorder).lineStyle = AsposeCells.CellBorderType.Thick;
            style.borders.get(AsposeCells.BorderType.RightBorder).color = AsposeCells.Color.Black;

            // Apply the border styles to the cell
            cell.style = style;

            // Saving the Excel file
            const outputData = workbook.save(SaveFormat.Excel97To2003);
            const blob = new Blob([outputData]);
            const downloadLink = document.getElementById('downloadLink');
            downloadLink.href = URL.createObjectURL(blob);
            downloadLink.download = 'book1.out.xls';
            downloadLink.style.display = 'block';
            downloadLink.textContent = 'Download Excel File';

            document.getElementById('result').innerHTML = '<p style="color: green;">Workbook created and styled successfully! Click the download link to get the file.</p>';
        });
    </script>
</html>

Добавление границ для диапазона ячеек

Также возможно добавлять границы к диапазону ячеек, а не только к одной ячейке. Для этого сначала создайте диапазон ячеек, вызвав метод createRange коллекции cells. Он принимает следующие параметры:

  • Первая строка, первая строка диапазона.
  • Первый столбец, представляет первый столбец диапазона.
  • Количество строк, количество строк в диапазоне.
  • Количество столбцов, количество столбцов в диапазоне.

Метод createRange возвращает объект Range, который содержит указанный диапазон ячеек. Объект Range предоставляет метод outlineBorder, который принимает следующие параметры для добавления границы к диапазону ячеек:

  • Тип границы, тип границы, выбранный из перечисления BorderType.
  • Стиль линии, стиль линии границы, выбранный из перечисления CellBorderType.
  • Цвет, цвет линии, выбранный из перечисления Color.
<!DOCTYPE html>
<html>
    <head>
        <title>Aspose.Cells Example</title>
    </head>
    <body>
        <h1>Aspose.Cells Example - Create Workbook and Apply Borders</h1>
        <input type="file" id="fileInput" accept=".xls,.xlsx,.csv" />
        <button id="runExample">Run Example</button>
        <a id="downloadLink" style="display: none;">Download Result</a>
        <div id="result"></div>
    </body>

    <script src="aspose.cells.js.min.js"></script>
    <script type="text/javascript">
        const { Workbook, SaveFormat, BorderType, CellBorderType, Color } = AsposeCells;

        AsposeCells.onReady({
            license: "/lic/aspose.cells.enc",
            fontPath: "/fonts/",
            fontList: [
                "arial.ttf",
                "NotoSansSC-Regular.ttf"
            ]
        }).then(() => {
            console.log("Aspose.Cells initialized");
        });

        document.getElementById('runExample').addEventListener('click', async () => {
            // This example creates a new workbook, writes to A1, creates a range and applies borders, then offers the file for download.
            const workbook = new Workbook();

            const worksheet = workbook.worksheets.get(0);

            const cell = worksheet.cells.get("A1");

            cell.putValue("Hello World From Aspose");

            const range = worksheet.cells.createRange(0, 0, 1, 3);

            // Applying borders using property assignment conversions for setter methods
            range.outlineBorder = [BorderType.TopBorder, CellBorderType.Thick, Color.Blue];
            range.outlineBorder = [BorderType.BottomBorder, CellBorderType.Thick, Color.Blue];
            range.outlineBorder = [BorderType.LeftBorder, CellBorderType.Thick, Color.Blue];
            range.outlineBorder = [BorderType.RightBorder, CellBorderType.Thick, Color.Blue];

            const outputData = workbook.save(SaveFormat.Excel97To2003);
            const blob = new Blob([outputData]);
            const downloadLink = document.getElementById('downloadLink');
            downloadLink.href = URL.createObjectURL(blob);
            downloadLink.download = 'book1.out.xls';
            downloadLink.style.display = 'block';
            downloadLink.textContent = 'Download Modified Excel File';

            document.getElementById('result').innerHTML = '<p style="color: green;">Workbook created and borders applied successfully! Click the download link to get the file.</p>';
        });
    </script>
</html>