Работа с Cells GridWeb
Доступ к Cells на рабочем листе
В этом разделе обсуждаются ячейки, рассматривается самая основная функция GridWeb: доступ к ячейкам.
Каждый рабочий лист содержит объект GridCells, коллекцию объектов GridCell. Объект GridCell представляет ячейку в Aspose.Cells.GridWeb. С помощью GridWeb можно получить доступ к любой ячейке. Есть два предпочтительных метода:
Ниже обсуждается каждый подход.
Использование имени Cell
Все ячейки имеют уникальное имя. Например, 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); | |
Доступ и изменение значения Cell
Доступ к Cells на рабочем листе обсуждали доступ к ячейкам. Этот раздел расширяет это обсуждение, чтобы показать, как получить доступ к значениям ячеек и изменить их с помощью GridWeb API.
Доступ и изменение значения Cell
Строковые значения
Прежде чем получить доступ и изменить значение ячейки, вам необходимо знать, как получить доступ к ячейкам. Подробнее о различных подходах к доступу к ячейкам см.Доступ к Cells на рабочем листе.
Каждая ячейка имеет свойство с именем 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 для каждой ячейки. С помощью этого метода можно вставить или изменить любой тип значения (логическое, целое, двойное, DateTime и строковое) в ячейке.
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); | |
Добавление формул в Cells
Самая ценная функция, предлагаемая Aspose.Cells.GridWeb, — это поддержка формул или функций. Aspose.Cells.GridWeb имеет собственный механизм формул, который вычисляет формулы на листах. Aspose.Cells.GridWeb поддерживает как встроенные, так и определяемые пользователем функции или формулы. В этом разделе подробно обсуждается добавление формул в ячейки с помощью Aspose.Cells.GridWeb API.
Как добавить и рассчитать формулу?
Можно добавлять, получать доступ и изменять формулы в ячейках, используя свойство Формула ячейки. Aspose.Cells.GridWeb поддерживает пользовательские формулы, начиная от простых и заканчивая сложными. Однако большое количество встроенных функций или формул (аналогичных Microsoft Excel) также поставляется с Aspose.Cells.GridWeb. Полный список встроенных функций см.список поддерживаемых функций.
Синтаксис формулы должен быть совместим с синтаксисом Excel Microsoft. Например, все формулы должны начинаться со знака равенства (=).
Чтобы добавить формулу программно, 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()); | |
//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 GridWorksheetCollection элемента управления 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 автоматически.
Результат формулы после расчета
Ссылка Cells из других рабочих листов
Используя Aspose.Cells.GridWeb, можно ссылаться на значения, хранящиеся на разных листах, в их формулах, создавая сложные формулы.
Синтаксис для ссылки на значение ячейки из другого листа: SheetName!CellName.
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"); | |
Создание проверки данных в GridCell GridWeb
Aspose.Cells.GridWeb позволяет добавлятьВалидация данных используя метод GridWorksheet.getValidations().add(). Используя этот метод, вы должны указатьCell Ассортимент . Но если вы хотите создать проверку данных в одной ячейке GridCell, вы можете сделать это напрямую, используя метод GridCell.createValidation(). Аналогично можно удалитьВалидация данных из GridCell с помощью метода GridCell.removeValidation().
Следующий пример кода создаетВалидация данных в ячейке B3. Если вы введете любое значение, отличное от 20 и 40, в ячейке B3 отобразитсяОшибка проверки в видеКрасный ХХХ как показано на этом снимке экрана.
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%.
Введите Cell Данные рабочего листа 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); | |