Именованные диапазоны

Создание именованного диапазона

Использование Microsoft Excel

Следующие шаги описывают, как назвать ячейку или диапазон ячеек с помощью Microsoft Excel. Этот метод применим к Microsoft Office Excel 2003, Microsoft Excel 97, 2000 и 2002.

  1. Выберите ячейку, диапазон ячеек, которые вы хотите назвать.
  2. Щелкните поле имени в левом конце строки формул.
  3. Введите имя для ячеек.
  4. Нажмите Ввод.

Использование Aspose.Cells

Здесь мы используем Aspose.Cells API для выполнения задачи.

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

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

  • Имя верхней левой ячейки, имя верхней левой ячейки в диапазоне.
  • Имя нижней правой ячейки, имя нижней правой ячейки в диапазоне.

КогдаcreateRange, он возвращает только что созданный именованный диапазон как экземплярСпектр учебный класс.

В следующем примере показано, как создать именованный диапазон ячеек, охватывающий B4:G14.

// 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(CreateNamedRangeofCells.class) + "data/";
// Instantiating a Workbook object
Workbook workbook = new Workbook(dataDir + "book1.xls");
WorksheetCollection worksheets = workbook.getWorksheets();
// Accessing the first worksheet in the Excel file
Worksheet sheet = worksheets.get(0);
Cells cells = sheet.getCells();
// Creating a named range
Range namedRange = cells.createRange("B4", "G14");
namedRange.setName("TestRange");
// Saving the modified Excel file in default (that is Excel 2000) format
workbook.save(dataDir + "CNROfCells_out.xls");
// Print message
System.out.println("Process completed successfully");

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

ПозвонитеgetNamedRange методРабочий листКоллекция чтобы получить все именованные диапазоны в электронной таблице.getNamedRange возвращает массив всех именованных диапазонов вРабочий листКоллекция.

В следующем примере показано, как получить доступ ко всем именованным диапазонам в книге.

// 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(AccessAllNamedRanges.class) + "data/";
// Instantiating a Workbook object
Workbook workbook = new Workbook(dataDir + "book1.xls");
WorksheetCollection worksheets = workbook.getWorksheets();
// Accessing the first worksheet in the Excel file
Worksheet sheet = worksheets.get(0);
Cells cells = sheet.getCells();
// Getting all named ranges
Range[] namedRanges = worksheets.getNamedRanges();
// Print message
System.out.println("Number of Named Ranges : " + namedRanges.length);

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

ПозвонитеРабочий листКоллекция коллекцияgetRangeByName для получения указанного диапазона по имени. ТипичныйgetRangeByName принимает имя именованного диапазона и возвращает указанный именованный диапазон как экземплярСпектручебный класс.

В следующем примере показано, как получить доступ к указанному диапазону по его имени.

// 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(AccessSpecificNamedRange.class) + "data/";
// Instantiating a Workbook object
Workbook workbook = new Workbook(dataDir + "book1.xls");
WorksheetCollection worksheets = workbook.getWorksheets();
// Accessing the first worksheet in the Excel file
Worksheet sheet = worksheets.get(0);
Cells cells = sheet.getCells();
// Getting the specified named range
Range namedRange = worksheets.getRangeByName("TestRange");
// Print message
System.out.println("Named Range : " + namedRange.getRefersTo());

Определить Cells в именованном диапазоне

Используя Aspose.Cells, вы можете вставлять данные в отдельные ячейки диапазона. Предположим, у вас есть именованный диапазон ячеек, то есть A1:C4. Таким образом, матрица будет состоять из 4 * 3 = 12 ячеек, а отдельные ячейки диапазона расположены последовательно. Aspose.Cells предоставляет вам некоторые полезные свойства класса Range для доступа к отдельным ячейкам в диапазоне. Вы можете использовать следующие методы для идентификации ячеек в диапазоне:

  • getFirstRow возвращает индекс первой строки в именованном диапазоне.
  • getFirstColumnвозвращает индекс первого столбца в именованном диапазоне.

В следующем примере показано, как ввести некоторые значения в ячейки указанного диапазона.

// 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(IdentifyCellsinNamedRange.class) + "data/";
// Instantiating a Workbook object
Workbook workbook = new Workbook(dataDir + "book1.xls");
WorksheetCollection worksheets = workbook.getWorksheets();
// Accessing the first worksheet in the Excel file
Worksheet sheet = worksheets.get(0);
Cells cells = sheet.getCells();
// Getting the specified named range
Range range = worksheets.getRangeByName("TestRange");
// Identify range cells.
System.out.println("First Row : " + range.getFirstRow());
System.out.println("First Column : " + range.getFirstColumn());
System.out.println("Row Count : " + range.getRowCount());
System.out.println("Column Count : " + range.getColumnCount());

Введите данные в Cells в именованном диапазоне

Используя Aspose.Cells, вы можете вставлять данные в отдельные ячейки диапазона. Предположим, у вас есть именованный диапазон ячеек, например, H1:J4. Таким образом, матрица будет состоять из 4 * 3 = 12 ячеек, а отдельные ячейки диапазона расположены последовательно. Aspose.Cells предоставляет вам некоторые полезные свойства класса Range для доступа к отдельным ячейкам в диапазоне. Вы можете использовать следующие свойства для идентификации ячеек в диапазоне:

  • getFirstRowвозвращает индекс первой строки в именованном диапазоне.
  • getFirstColumnвозвращает индекс первого столбца в именованном диапазоне.

В следующем примере показано, как ввести некоторые значения в ячейки указанного диапазона.

// 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(InputDataInCellsInRange.class) + "data/";
// Instantiate a new Workbook.
Workbook workbook = new Workbook();
// Get the first worksheet in the workbook.
Worksheet worksheet1 = workbook.getWorksheets().get(0);
// Create a range of cells and specify its name based on H1:J4.
Range range = worksheet1.getCells().createRange("H1:J4");
range.setName("MyRange");
// Input some data into cells in the range.
range.get(0, 0).setValue("USA");
range.get(0, 1).setValue("SA");
range.get(0, 2).setValue("Israel");
range.get(1, 0).setValue("UK");
range.get(1, 1).setValue("AUS");
range.get(1, 2).setValue("Canada");
range.get(2, 0).setValue("France");
range.get(2, 1).setValue("India");
range.get(2, 2).setValue("Egypt");
range.get(3, 0).setValue("China");
range.get(3, 1).setValue("Philipine");
range.get(3, 2).setValue("Brazil");
// Save the excel file.
workbook.save(dataDir + "IDICInRange_out.xls");
// Print message
System.out.println("Process completed 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(FormatRanges1.class) + "data/";
// Instantiate a new Workbook.
Workbook workbook = new Workbook();
// Get the first worksheet in the book.
Worksheet WS = workbook.getWorksheets().get(0);
// Create a named range of cells.
com.aspose.cells.Range range = WS.getCells().createRange(1, 1, 1, 17);
range.setName("MyRange");
// Declare a style object.
Style stl;
// Create the style object with respect to the style of a cell.
stl = WS.getCells().get(1, 1).getStyle();
// Specify some Font settings.
stl.getFont().setName("Arial");
stl.getFont().setBold(true);
// Set the font text color
stl.getFont().setColor(Color.getRed());
// To Set the fill color of the range, you may use ForegroundColor with
// solid Pattern setting.
stl.setBackgroundColor(Color.getYellow());
stl.setPattern(BackgroundType.SOLID);
// Apply the style to the range.
for (int r = 1; r < 2; r++) {
for (int c = 1; c < 18; c++) {
WS.getCells().get(r, c).setStyle(stl);
}
}
// Save the excel file.
workbook.save(dataDir + "FormatRanges1_out.xls");
// Print message
System.out.println("Process completed successfully");

Форматирование диапазонов… Добавление границ к именованному диапазону

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

  • borderStyle: тип границы, выбранный изCellBorderTypeперечисление.
  • borderColor: цвет линии границы, выбранный изЦвет перечисление.

В следующем примере показано, как установить границу контура для диапазона.

// 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(FormatRanges2.class) + "data/";
// Instantiating a Workbook object
Workbook workbook = new Workbook();
// Adding a new worksheet to the Workbook object
// Obtaining the reference of the newly added worksheet
int sheetIndex = workbook.getWorksheets().add();
Worksheet worksheet = workbook.getWorksheets().get(sheetIndex);
// Accessing the "A1" cell from the worksheet
Cell cell = worksheet.getCells().get("A1");
// Adding some value to the "A1" cell
cell.setValue("Hello World From Aspose");
// Creating a range of cells starting from "A1" cell to 3rd column in a
// row
Range range = worksheet.getCells().createRange("A1:C1");
range.setName("MyRange");
// Adding a thick outline border with the blue line
range.setOutlineBorders(CellBorderType.THICK, Color.getBlue());
// Saving the Excel file
workbook.save(dataDir + "FormatRanges2_out.xls");
// Print message
System.out.println("Process completed successfully");

После выполнения приведенного выше кода будет сгенерирован следующий вывод:

дело:изображение_альтернативный_текст

Применение стиля к ячейкам в диапазоне

Иногда вы хотите применить стиль к ячейкам вСпектр . Для этого вы можете перебирать ячейки в диапазоне и использоватьCell.setStyle для применения стиля к ячейке.

В следующем примере показано, как применять стили к ячейкам в диапазоне.

// 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(ConvertCellsAddresstoRangeorCellArea.class) + "data/";
// Instantiating a Workbook object
Workbook workbook = new Workbook();
// Obtaining the reference of the newly added worksheet
int sheetIndex = workbook.getWorksheets().add();
Worksheet worksheet = workbook.getWorksheets().get(sheetIndex);
// Accessing the "A1" cell from the worksheet
Cell cell = worksheet.getCells().get("A1");
// Adding some value to the "A1" cell
cell.setValue("Hello World!");
// Creating a range of cells based on cells Address.
Range range = worksheet.getCells().createRange("A1:F10");
// Specify a Style object for borders.
Style style = cell.getStyle();
// Setting the line style of the top border
style.setBorder(BorderType.TOP_BORDER, CellBorderType.THICK, Color.getBlack());
style.setBorder(BorderType.BOTTOM_BORDER, CellBorderType.THICK, Color.getBlack());
style.setBorder(BorderType.LEFT_BORDER, CellBorderType.THICK, Color.getBlack());
style.setBorder(BorderType.RIGHT_BORDER, CellBorderType.THICK, Color.getBlack());
Iterator cellArray = range.iterator();
while (cellArray.hasNext()) {
Cell temp = (Cell) cellArray.next();
// Saving the modified style to the cell.
temp.setStyle(style);
}
// Saving the Excel file
workbook.save(dataDir + "CCAToROrCArea_out.xls");

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

Aspose.Cells обеспечиваетКоллекция Имен. Удалить В () способ стереть имя диапазона. Чтобы очистить содержимое диапазона, используйтеCells.ClearRange() метод. В следующем примере показано, как удалить именованный диапазон вместе с его содержимым.

// 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(RemoveANamedRange.class) + "data/";
// Instantiate a new Workbook.
Workbook workbook = new Workbook();
// Get all the worksheets in the book.
WorksheetCollection worksheets = workbook.getWorksheets();
// Get the first worksheet in the worksheets collection.
Worksheet worksheet = workbook.getWorksheets().get(0);
// Create a range of cells.
Range range1 = worksheet.getCells().createRange("E12", "I12");
// Name the range.
range1.setName("MyRange");
// Set the outline border to the range.
range1.setOutlineBorder(BorderType.TOP_BORDER, CellBorderType.MEDIUM, Color.fromArgb(0, 0, 128));
range1.setOutlineBorder(BorderType.BOTTOM_BORDER, CellBorderType.MEDIUM, Color.fromArgb(0, 0, 128));
range1.setOutlineBorder(BorderType.LEFT_BORDER, CellBorderType.MEDIUM, Color.fromArgb(0, 0, 128));
range1.setOutlineBorder(BorderType.RIGHT_BORDER, CellBorderType.MEDIUM, Color.fromArgb(0, 0, 128));
// Input some data with some formattings into
// a few cells in the range.
range1.get(0, 0).setValue("Test");
range1.get(0, 4).setValue("123");
// Create another range of cells.
Range range2 = worksheet.getCells().createRange("B3", "F3");
// Name the range.
range2.setName("testrange");
// Copy the first range into second range.
range2.copy(range1);
// Remove the previous named range (range1) with its contents.
worksheet.getCells().clearRange(11, 4, 11, 8);
worksheets.getNames().removeAt(0);
// Save the excel file.
workbook.save(dataDir + "RANRange_out.xls");
// Print message
System.out.println("Process completed successfully");

границаЦвета