Доступ к таблице из ячейки и добавление значений в нее с использованием смещений строк и столбцов
Обычно вы добавляете значения внутри объекта Table или List, используя метод Cell.putValue(). Но иногда вам может потребоваться добавлять значения внутри объекта Table или List, используя смещения строки и столбца.
Для доступа к таблице или объекту списка из ячейки используйте метод Cell.getTable(). И для добавления значений в него с использованием смещений строк и столбцов используйте метод ListObject.putCellValue(rowOffset,columnOffset,value).
Пример
Снимки экрана сравнивают исходные и выходные файлы
На следующем скриншоте показан исходный файл Excel, используемый в коде. Он содержит пустую таблицу и выделяет ячейку D5, которая находится внутри таблицы. Мы получим доступ к этой таблице из ячейки D5, используя метод Cell.getTable(), а затем добавим значения в нее, используя методы Cell.putValue() и ListObject.putCellValue(rowOffset,columnOffset,value).
На следующем снимке экрана показан созданный код. Как видно, ячейка D5 имеет значение, и ячейка F6, которая находится в смещении 2,2 от таблицы, имеет значение.
Java-код для доступа к таблице из ячейки и добавления значений в нее с использованием смещений строк и столбцов
Следующий примерный код загружает исходный файл Excel, как показано на снимке экрана выше, добавляет значения в таблицу и создает выходной файл Excel, как показано выше.
// 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.getDataDir(AccessingTablefromCell.class); | |
// Create workbook from source Excel file | |
Workbook workbook = new Workbook(dataDir + "source.xlsx"); | |
// Access first worksheet | |
Worksheet worksheet = workbook.getWorksheets().get(0); | |
// Access cell D5 which lies inside the table | |
Cell cell = worksheet.getCells().get("D5"); | |
// Put value inside the cell D5 | |
cell.putValue("D5 Data"); | |
// Access the Table from this cell | |
ListObject table = cell.getTable(); | |
// Add some value using Row and Column Offset | |
table.putCellValue(2, 2, "Offset [2,2]"); | |
// Save the workbook | |
workbook.save(dataDir + "output.xlsx"); |