Управление рабочими листами

Управление листами с использованием Aspose.Cells так же просто, как раз, два. В этом разделе мы опишем, как мы можем:

  1. Создать новый файл Excel с нуля и добавить в него лист
  2. Добавить листы к дизайнерским электронным таблицам
  3. Обращение к листам по имени листа
  4. Удалить лист из файла Excel, используя его имя листа
  5. Удалить лист из файла Excel, используя его индекс листа

Aspose.Cells предоставляет класс, Workbook, который представляет собой файл Excel. Класс Workbook содержит WorksheetCollection, позволяющий получить доступ к каждому листу в файле Excel.

Лист представлен классом Worksheet. Класс Worksheet предоставляет широкий спектр свойств и методов для управления листом. Давайте посмотрим, как мы можем использовать этот базовый набор API.

Добавление рабочих листов в новый файл Excel

Для создания нового файла Excel программно разработчикам потребуется создать объект класса Workbook, представляющий файл Excel. Затем разработчики могут вызвать метод add объекта WorksheetCollection. При вызове метода add в файл Excel автоматически добавляется пустой лист, на который можно сослаться, передав индекс листа вновь добавленного листа объекту WorksheetCollection. После получения ссылки на лист разработчики могут работать с их листами в соответствии с их требованиями. После завершения работы с листами, разработчики могут сохранить созданный ими файл Excel с новыми листами, вызвав метод save объекта Workbook.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the documents directory.
String dataDir = Utils.getSharedDataDir(AddingWorksheetstoNewExcelFile.class) + "worksheets/";
// Instantiating a Workbook object
Workbook workbook = new Workbook();
// Adding a new worksheet to the Workbook object
WorksheetCollection worksheets = workbook.getWorksheets();
int sheetIndex = worksheets.add();
Worksheet worksheet = worksheets.get(sheetIndex);
// Setting the name of the newly added worksheet
worksheet.setName("My Worksheet");
// Saving the Excel file
workbook.save(dataDir + "AWToNewExcelFile_out.xls");
// Print Message
System.out.println("Sheet added successfully.");

Добавление листов в дизайнерскую электронную таблицу

Процесс добавления листов в дизайнерскую таблицу тот же самый, что и в вышеуказанном подходе, за исключением того, что файл Excel уже создан, и перед добавлением листа в него сначала нужно открыть этот файл Excel. Дизайнерскую таблицу можно открыть, передавая путь к файлу или поток при инициализации класса Workbook.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the documents directory.
String dataDir = Utils.getSharedDataDir(AddingWorksheetstoDesignerSpreadsheet.class) + "worksheets/";
// Creating a file stream containing the Excel file to be opened
FileInputStream fstream = new FileInputStream(dataDir + "book.xls");
// Instantiating a Workbook object with the stream
Workbook workbook = new Workbook(fstream);
// Adding a new worksheet to the Workbook object
WorksheetCollection worksheets = workbook.getWorksheets();
int sheetIndex = worksheets.add();
Worksheet worksheet = worksheets.get(sheetIndex);
// Setting the name of the newly added worksheet
worksheet.setName("My Worksheet");
// Saving the Excel file
workbook.save(dataDir + "AWToDesignerSpreadsheet_out.xls");
// Closing the file stream to free all resources
fstream.close();
// Print Message
System.out.println("Sheet added successfully.");

Доступ к листам с использованием имени листа

Разработчики могут получить доступ к любому листу, указав его имя или индекс.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the documents directory.
String dataDir = Utils.getSharedDataDir(AccessingWorksheetsusingSheetName.class) + "worksheets/";
String filePath = dataDir + "book1.xlsx";
// Creating a file stream containing the Excel file to be opened
FileInputStream fstream = new FileInputStream(filePath);
// Instantiating a Workbook object with the stream
Workbook workbook = new Workbook(fstream);
// Accessing a worksheet using its sheet name
Worksheet worksheet = workbook.getWorksheets().get("Sheet1");
Cell cell = worksheet.getCells().get(0, 0);
// Print Message
System.out.println(cell.getValue());

Удаление листов с использованием имени листа

Иногда разработчикам может потребоваться удалить листы из существующих файлов Excel, и эту задачу можно выполнить, вызвав метод removeAt коллекции WorksheetCollection. Мы можем передать имя листа методу removeAt для удаления конкретного листа.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the documents directory.
String dataDir = Utils.getSharedDataDir(RemovingWorksheetsusingSheetName.class) + "worksheets/";
// Creating a file stream containing the Excel file to be opened
FileInputStream fstream = new FileInputStream(dataDir + "book.xls");
// Instantiating a Workbook object with the stream
Workbook workbook = new Workbook(fstream);
// Removing a worksheet using its sheet name
workbook.getWorksheets().removeAt("Sheet1");
// Saving the Excel file
workbook.save(dataDir + "RemovingWorksheetsusingSheetName_out.xls");
// Closing the file stream to free all resources
fstream.close();
// Print Message
System.out.println("Sheet removed successfully.");

Удаление рабочих листов с использованием индекса листа.

Вышеуказанный подход к удалению листов работает хорошо, если разработчики уже знают имена листов, которые нужно удалить. Но что, если вы не знаете имени листа, который вы хотите удалить из своего файла Excel?

Ну, в таких случаях разработчики могут использовать перегруженную версию метода removeAt, которая принимает индекс листа вместо его имени листа.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the documents directory.
String dataDir = Utils.getSharedDataDir(RemovingWorksheetsusingSheetIndex.class) + "worksheets/";
// Creating a file stream containing the Excel file to be opened
FileInputStream fstream = new FileInputStream(dataDir + "book.xls");
// Instantiating a Workbook object with the stream
Workbook workbook = new Workbook(fstream);
// Removing a worksheet using its sheet index
workbook.getWorksheets().removeAt(0);
// Saving the Excel file
workbook.save(dataDir + "RWUsingSheetIndex_out.xls");
// Closing the file stream to free all resources
fstream.close();
// Print Message
System.out.println("Sheet removed successfully.");

Продвинутые темы