Работа с ячейками GridWeb
Доступ к ячейкам в таблице
В этой теме рассматриваются ячейки, изучается самая основная функция GridWeb: доступ к ячейкам.
Каждая таблица содержит объект GridCells, коллекцию объектов GridCell. Объект GridCell представляет собой ячейку в Aspose.Cells.GridWeb. Возможно получить доступ к любой ячейке, используя GridWeb. Существует два предпочтительных метода:
Ниже рассмотрены оба подхода.
Использование имени ячейки
Все ячейки имеют уникальное имя. Например, A1, A2, B1, B2 и т. д. Aspose.Cells.GridWeb позволяет разработчикам получить доступ к любой желаемой ячейке, используя имя ячейки. Просто передайте имя ячейки (в качестве индекса) в коллекцию GridCells объекта GridWorksheet.
For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
//Accessing the worksheet of the Grid that is currently active | |
GridWorksheet sheet = gridweb.getWorkSheets().get(gridweb.getActiveSheetIndex()); | |
//Accessing "B1" cell of the worksheet | |
GridCell cell = sheet.getCells().get("B1"); | |
Использование индексов строки и столбца
Ячейку также можно распознать по ее расположению в терминах индексов строки и столбца. Просто передайте индексы строки и столбца ячейки в коллекцию GridCells объекта GridWorksheet. Этот подход более быстрый, чем предыдущий.
For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
//Accessing the worksheet of the Grid that is currently active | |
GridWorksheet sheet = gridweb.getWorkSheets().get(gridweb.getActiveSheetIndex()); | |
//Accessing "B1" cell of the worksheet using its row and column indices | |
GridCell cell = sheet.getCells().get(0, 1); | |
Доступ и изменение значения ячейки
Доступ к ячейкам в таблице обсуждает доступ к ячейкам. В этой теме расширяется эта дискуссия, чтобы показать, как получить доступ и изменить значения ячеек, используя API GridWeb.
Доступ и изменение значения ячейки
Строковые значения
Прежде чем получать доступ и изменять значение ячейки, нужно знать, как получить доступ к ячейкам. Для получения подробной информации о различных подходах к доступу к ячейкам обратитесь к Доступ к ячейкам в таблице.
У каждой ячейки есть свойство с именем getStringValue(). После того как ячейка получена, разработчики могут использовать метод getStringValue() для доступа к строковому значению ячеек.
For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
//Accessing the worksheet of the Grid that is currently active | |
GridWorksheet sheet = gridweb.getWorkSheets().get(gridweb.getActiveSheetIndex()); | |
//Accessing "B1" cell of the worksheet | |
GridCell cell = sheet.getCells().get("B1"); | |
//Inserting & modifying the string value of "B1" cell | |
cell.putValue("Hello Aspose.Grid"); | |
Все типы значений
Aspose.Cells.GridWeb также предоставляет специальный метод putValue для каждой ячейки. С помощью этого метода возможно вставить или изменить любой тип значения (логический, целый, двойной, дата-время и строка) в ячейке.
For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
//Accessing the worksheet of the Grid that is currently active | |
GridWorksheet sheet = gridweb.getWorkSheets().get(gridweb.getActiveSheetIndex()); | |
//Accessing "B1" cell of the worksheet | |
GridCell cell = sheet.getCells().get("B1"); | |
//Putting a value in "B1" cell | |
cell.putValue(Calendar.getInstance()); | |
Также существует перегруженная версия метода putValue, которая может принимать любой тип значения в виде строки и автоматически преобразовать его в соответствующий тип данных. Для этого передайте логическое значение true в другой параметр метода putValue, как показано ниже в примере.
For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
//Accessing the worksheet of the Grid that is currently active | |
GridWorksheet sheet = gridweb.getWorkSheets().get(gridweb.getActiveSheetIndex()); | |
//Accessing "B1" cell of the worksheet | |
GridCell cell = sheet.getCells().get("B1"); | |
//Putting a numeric value as string in "B1" cell that will be converted to a suitable data type automatically | |
cell.putValue("19.4", true); | |
Добавление формул в ячейки
Самая ценная функция, предлагаемая Aspose.Cells.GridWeb, - это поддержка формул или функций. У Aspose.Cells.GridWeb есть свой собственный Движок формул, который вычисляет формулы в рабочих книгах. Aspose.Cells.GridWeb поддерживает как встроенные, так и определяемые пользователем функции или формулы. В этой теме подробно рассматривается добавление формул в ячейки с использованием API Aspose.Cells.GridWeb.
Как добавить и вычислить формулу?
Возможно добавлять, получать доступ к и изменять формулы в ячейках, используя свойство Formula ячейки. Aspose.Cells.GridWeb поддерживает определяемые пользователем формулы от простых до сложных. Однако с Aspose.Cells.GridWeb также поставляется большое количество встроенных функций или формул (аналогично Microsoft Excel). Чтобы увидеть полный список встроенных функций, обратитесь к этому списку поддерживаемых функций.
Синтаксис формулы должен быть совместим с синтаксисом Microsoft Excel. Например, все формулы должны начинаться с знака равенства (=).
Чтобы программно добавить формулу, Aspose.Cells.GridWeb будет распознавать ее как формулу, даже если вы не используете знак =, но если конечные пользователи, работающие в GUI, должны его использовать.
For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
//Accessing the worksheet of the Grid that is currently active | |
GridWorksheet sheet = gridweb.getWorkSheets().get(gridweb.getActiveSheetIndex()); | |
//Putting some values to cells | |
sheet.getCells().get("A1").putValue("1st Value"); | |
sheet.getCells().get("A2").putValue("2nd Value"); | |
sheet.getCells().get("A3").putValue("Sum"); | |
sheet.getCells().get("B1").putValue(125.56); | |
sheet.getCells().get("B2").putValue(23.93); | |
//Calculating all formulas added in worksheets | |
gridweb.getWorkSheets().calculateFormula(); | |
//Adding a simple formula to "B3" cell | |
sheet.getCells().get("B3").setFormula("=SUM(B1:B2)"); | |
Формула добавлена в ячейку B3, но не вычислена GridWeb
На скриншоте выше вы можете видеть, что формула была добавлена в ячейку B3, но еще не была вычислена. Для вычисления всех формул вызовите метод calculateFormula коллекции GridWorksheetControl GridWeb после добавления формул в листы, как показано ниже.
For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
//Calculating all formulas added in worksheets | |
gridweb.getWorkSheets().calculateFormula(); | |
Пользователи также могут вычислять формулы, нажимая кнопку Отправить.
Нажатие кнопки «Отправить» GridWeb
ВАЖНО: Если пользователь нажимает кнопки Сохранить или Отменить, или вкладки листов, все формулы автоматически вычисляются GridWeb.
Результат формулы после вычисления
Ссылка на ячейки из других рабочих книг
С помощью Aspose.Cells.GridWeb можно ссылаться на значения, хранящиеся в разных рабочих книгах в их формулах, создавая сложные формулы.
Синтаксис для ссылки на значение ячейки из другой рабочей книги: НазваниеЛиста!ИмяЯчейки.
For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
//Accessing the worksheet of the Grid that is currently active | |
GridWorksheet sheet = gridweb.getWorkSheets().get(gridweb.getActiveSheetIndex()); | |
//Adding a bit complex formula to "A1" cell | |
sheet.getCells().get("A1").setFormula("=SUM(F1:F7)/ AVERAGE (E1:E7)-Sheet1!C6"); | |
Создание проверки данных в ячейке сетки GridWeb
Aspose.Cells.GridWeb позволяет добавлять проверку данных с помощью метода GridWorksheet.getValidations().add(). Используя этот метод, вы должны указать диапазон ячеек. Но если вы хотите создать проверку данных в одной ячейке сетки, то вы можете сделать это непосредственно с помощью метода GridCell.createValidation(). Аналогично, вы можете удалить проверку данных из ячейки GridCell с помощью метода GridCell.removeValidation().
В следующем образце кода создается Проверка данных в ячейке B3. Если вы введете значение, которое не находится между 20 и 40, ячейка B3 покажет Ошибка проверки в виде Красного XXXX, как показано на этом снимке экрана.
For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
//Access first worksheet | |
GridWorksheet sheet = gridweb.getWorkSheets().get(0); | |
//Access cell B3 | |
GridCell cell = sheet.getCells().get("B3"); | |
//Add validation inside the gridcell | |
//Any value which is not between 20 and 40 will cause error in a gridcell | |
GridValidation val = cell.createValidation(GridValidationType.WHOLE_NUMBER, true); | |
val.setFormula1("=20"); | |
val.setFormula2("=40"); | |
val.setOperator(OperatorType.BETWEEN); | |
val.setShowError(true); | |
val.setShowInput(true); | |
Создание пользовательских кнопок команд
Aspose.Cells.GridWeb содержит специальные кнопки, такие как Отправить, Сохранить и Отменить. Все эти кнопки выполняют определенные задачи для Aspose.Cells.GridWeb. Также возможно добавлять пользовательские кнопки, выполняющие пользовательские задачи. В этой теме объясняется, как использовать эту функцию.
В приведенном ниже образце кода объясняется, как создать пользоватскую командную кнопку и как обрабатывать ее событие нажатия. Вы можете использовать любую иконку для своей пользоватской командной кнопки. В иллюстративных целях мы использовали эту иконку изображения.
Как видно на следующем снимке экрана, когда пользователь нажимает на пользовательскую кнопку команды, она добавляет текст в ячейку A1, который говорит: “Моя Пользовательская Кнопка Команды Нажата.”
Обработка событий пользовательской командной кнопки
В следующем примере кода объясняется, как выполнять обработку событий пользовательской кнопки команды.
Форматирование ячеек для GridWeb
Возможные сценарии использования
GridWeb теперь поддерживает ввод данных ячейки в формате процентов, например, 3%, и данные в ячейке автоматически форматируются как 3,00%. Однако вы должны установить стиль ячейки в формат процента, который соответствует GridTableItemStyle.NumberType 9 или 10. Число 9 отформатирует 3% как 3%, а число 10 отформатирует 3% как 3,00%.
Введите данные ячейки рабочего листа GridWeb в формате процентов
В следующем образце кода устанавливается стиль ячейки A1 GridTableItemStyle.NumberType как 10, поэтому введенные данные 3% автоматически форматируются как 3,00%, как показано на скриншоте.
Образец кода
For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
//Access cell A1 of first gridweb worksheet | |
GridCell cellA1 = gridweb.getWorkSheets().get(0).getCells().get("A1"); | |
//Access cell style and set its number format to 10 which is a Percentage 0.00% format | |
GridTableItemStyle st = cellA1.getStyle(); | |
st.setNumberType(10); | |
cellA1.setStyle(st); | |