Управление листами Excel файлов Microsoft с помощью Node.js через C++
Aspose.Cells предоставляет класс, Workbook, который представляет файл Excel. Класс Workbook содержит коллекцию Workbook.getWorksheets(), позволяющую получить доступ к каждому листу в файле Excel.
Лист представляет класс Worksheet. Класс Worksheet предоставляет широкий спектр свойств и методов для управления листами.
Добавление рабочих листов в новый файл Excel
Для создания нового файла Excel программно:
- Создайте объект класса Workbook.
- Вызовите метод WorksheetCollection.add(SheetType) класса WorksheetCollection. В файл Excel автоматически добавляется пустой лист. Его можно получить, передав индекс листа в коллекцию Workbook.getWorksheets().
- Получите ссылку на рабочий лист.
- Выполнение работы с рабочими листами.
- Сохраните новый файл Excel с новыми листами, вызвав метод Workbook.save(string, SaveFormat) класса Workbook.
const path = require("path");
const AsposeCells = require("aspose.cells.node");
// The path to the documents directory.
const dataDir = path.join(__dirname, "data");
// Instantiating a Workbook object
const workbook = new AsposeCells.Workbook();
// Adding a new worksheet to the Workbook object
const i = workbook.getWorksheets().getCount();
workbook.getWorksheets().add();
// Obtaining the reference of the newly added worksheet by passing its sheet index
const worksheet = workbook.getWorksheets().get(i);
// Setting the name of the newly added worksheet
worksheet.setName("My Worksheet");
// Saving the Excel file
workbook.save(path.join(dataDir, "output.out.xls"));
Добавление листов в дизайнерскую электронную таблицу
Процесс добавления листов в дизайн-таблицу совпадает с добавлением нового листа, за исключением того, что файл Excel уже существует и должен быть открыт перед добавлением листов. Дизайн-таблицу можно открыть с помощью класса Workbook.
const fs = require("fs");
const path = require("path");
const AsposeCells = require("aspose.cells.node");
// The path to the documents directory.
const dataDir = path.join(__dirname, "data");
const inputPath = path.join(dataDir, "book1.xlsx");
// Creating a file stream containing the Excel file to be opened
const fstream = fs.readFileSync(inputPath);
// Opening the Excel file through the file stream
const workbook = new AsposeCells.Workbook(fstream);
// Adding a new worksheet to the Workbook object
const i = workbook.getWorksheets().add();
// Obtaining the reference of the newly added worksheet by passing its sheet index
const worksheet = workbook.getWorksheets().get(i);
// Setting the name of the newly added worksheet
worksheet.setName("My Worksheet");
// Saving the Excel file
workbook.save(path.join(dataDir, "output.xlsx"));
Доступ к листам с использованием имени листа
Получите доступ к любому листу, указав его имя или индекс.
const path = require("path");
const fs = require("fs");
const AsposeCells = require("aspose.cells.node");
// The path to the documents directory.
const dataDir = path.join(__dirname, "data");
const inputPath = path.join(dataDir, "book1.xlsx");
// Creating a file stream containing the Excel file to be opened
const fstream = fs.readFileSync(inputPath);
// Instantiating a Workbook object
// Opening the Excel file through the file stream
const workbook = new AsposeCells.Workbook(fstream);
// Accessing a worksheet using its sheet name
const worksheet = workbook.getWorksheets().get("Sheet1");
const cell = worksheet.getCells().get("A1");
console.log(cell.getValue());
Удаление листов с использованием имени листа
Чтобы удалить листы из файла, вызовите метод WorksheetCollection.removeAt(string) класса WorksheetCollection. Передайте имя листа в метод WorksheetCollection.removeAt(string), чтобы удалить конкретный лист.
const fs = require("fs");
const path = require("path");
const AsposeCells = require("aspose.cells.node");
// The path to the documents directory.
const dataDir = path.join(__dirname, "data");
const filePath = path.join(dataDir, "book1.xls");
// Creating a file stream containing the Excel file to be opened
const fstream = fs.readFileSync(filePath);
// Instantiating a Workbook object
// Opening the Excel file through the file stream
const workbook = new AsposeCells.Workbook(fstream);
// Removing a worksheet using its sheet name
workbook.getWorksheets().removeAt("Sheet1");
// Save workbook
workbook.save(path.join(dataDir, "output.out.xls"));
Удаление рабочих листов с использованием индекса листа.
Удаление листов по имени хорошо работает, когда известно имя листа. Если имя листа неизвестно, используйте перегруженную версию метода WorksheetCollection.removeAt(string), которая принимает индекс листа вместо его имени.
const fs = require("fs");
const path = require("path");
const AsposeCells = require("aspose.cells.node");
// The path to the documents directory.
const dataDir = path.join(__dirname, "data");
const filePath = path.join(dataDir, "book1.xls");
// Creating a file stream containing the Excel file to be opened
const fstream = fs.readFileSync(filePath);
// Instantiating a Workbook object
// Opening the Excel file through the file stream
const workbook = new AsposeCells.Workbook(fstream);
// Removing a worksheet using its sheet index
workbook.getWorksheets().removeAt(0);
// Save workbook
workbook.save(path.join(dataDir, "output.out.xls"));
Активация листов и установка активной ячейки на листе
Иногда необходимо, чтобы определенный лист был активен и отображался при открытии файла Microsoft Excel. Аналогично, можно активировать конкретную ячейку и настроить прокрутки для отображения активной ячейки. Aspose.Cells способен выполнять все эти задачи.
Активный лист - это лист, над которым вы работаете: имя активного листа на вкладке жирным шрифтом по умолчанию.
Активная ячейка - это выбранная ячейка, в которую вводятся данные при начале набора текста. Одновременно может быть активна только одна ячейка. Активная ячейка выделяется толстой границей.
Активация листов и установка активной ячейки
Aspose.Cells предоставляет конкретные вызовы API для активации листа и ячейки. Например, свойство WorksheetCollection.getActiveSheetIndex() полезно для установки активного листа в книге. Аналогично, свойство Worksheet.getActiveCell() используется для установки и получения активной ячейки в листе.
Чтобы убедиться, что горизонтальные или вертикальные полосы прокрутки находятся в нужной позиции по индексам строк и столбцов для отображения определенных данных, используйте свойства Worksheet.getFirstVisibleRow() и Worksheet.getFirstVisibleColumn().
В следующем примере показано, как активировать лист и сделать активной ячейку. В сгенерированном выводе полосы прокрутки будут прокручены, чтобы сделать 2-ю строку и 2-й столбец первой видимой строкой и столбцом.
const path = require("path");
const AsposeCells = require("aspose.cells.node");
// The path to the documents directory.
const dataDir = path.join(__dirname, "data");
// Instantiate a new Workbook.
const workbook = new AsposeCells.Workbook();
// Add a worksheet if collection is empty
const worksheets = workbook.getWorksheets();
if (worksheets.getCount() === 0) {
worksheets.add();
}
// Get the first worksheet in the workbook.
const worksheet1 = worksheets.get(0);
// Get the cells in the worksheet.
const cells = worksheet1.getCells();
// Input data into B2 cell.
cells.get(1, 1).putValue("Hello World!");
// Set the first sheet as an active sheet.
workbook.getWorksheets().setActiveSheetIndex(0);
// Set B2 cell as an active cell in the worksheet.
worksheet1.setActiveCell("B2");
// Set the B column as the first visible column in the worksheet.
worksheet1.setFirstVisibleColumn(1);
// Set the 2nd row as the first visible row in the worksheet.
worksheet1.setFirstVisibleRow(1);
// Save the excel file.
workbook.save(path.join(dataDir, "output.xls"));
Продвинутые темы
- Копирование и перемещение листов
- Посчитать количество ячеек в листе
- Обнаружение пустых листов
- Определить, является ли рабочий лист диалоговым листом
- Получить уникальный идентификатор листа
- Создание, изменение или удаление сценариев из листов
- Управление разрывами страницы
- Возможности настройки страницы
- Использование свойства Sheet.SheetId из OpenXml с помощью Aspose.Cells
- Просмотр листов