Управление рабочими листами
Управление листами с использованием Aspose.Cells так же просто, как раз, два. В этом разделе мы опишем, как мы можем:
- Создать новый файл Excel с нуля и добавить в него лист
- Добавить листы к дизайнерским электронным таблицам
- Обращение к листам по имени листа
- Удалить лист из файла Excel, используя его имя листа
- Удалить лист из файла 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."); |
Продвинутые темы
- Активация листов и активация ячейки в листе
- Копирование и перемещение листов внутри и между книгами
- Копирование и перемещение листов
- Посчитать количество ячеек в листе
- Обнаружение пустых листов
- Определить, является ли рабочий лист диалоговым листом
- Получить уникальный идентификатор листа
- Добавление фонового изображения в Excel
- Создание, изменение или удаление сценариев из листов
- Управление разрывами страницы
- Возможности настройки страницы
- Обновление ссылок в других листах при удалении пустых столбцов и строк на листе
- Использование свойства Sheet.SheetId из OpenXml с помощью Aspose.Cells
- Работа с фоном в файлах ODS
- Просмотр листов