Изменение ячеек на листе с помощью Java и API Smartsheet

У меня есть не большая, но неразрешимая для меня проблема. Мой код Java подключается к Smartsheet и считывает список листов в папке (по идентификатору папки), затем копирует из папки все листы (оставляя отчеты и информационные панели), изменяя имя листов и вставляя их в другую папку. Я использую Коррето 17.

Как я могу изменить значение ячейки на любом листе по коду. Мне нужно изменить только 1 ячейку для каждого работающего кода, так что это не должно быть гениальным циклом. Я хочу понять основы этого.

Ниже я добавил 2 класса частично после копирования и переименования. Все работает отлично, прежде чем я попытаюсь изменить ячейку. Если поможет: ячейка разблокирована, valueType text_number, не формула, а просто текст, но в листе другие ячейки со значениями, они с формулами / они заблокированы).

Я могу прочитать значение в ячейке, но не могу его установить.

      public void projectFolderCreate(String projectID_Value) throws SmartsheetException {

 Smartsheet smartsheet = SmartsheetFactory.createDefaultClient(API);
 System.out.println("Folder working. Loading folder: " + getFolderID());

 Folder workFolder = smartsheet.folderResources().getFolder(getFolderID(), null);

for (var element : workFolder.getSheets()) {

System.out.println(element.getId());
ContainerDestination containerDestination = new ContainerDestination().setDestinationType(DestinationType.FOLDER).setDestinationId(8775808614459268L).setNewName(element.getName().replace("Project_Name", projectID_Value));
Sheet sheet = smartsheet.sheetResources().copySheet(element.getId(),containerDestination,EnumSet.of(SheetCopyInclusion.DATA,SheetCopyInclusion.CELLLINKS));
if (sheet.getName().endsWith("Metadata")) {
Sheet newSheet = smartsheet.sheetResources().getSheet(sheet.getId(),null,null,null,null,null,null,null); 
long newSheetId = newSheet.getId(); 
System.out.println("ID of the New Sheet : " + newSheetId); 
Column projIDcolumn = newSheet.getColumns().get(1); 
System.out.println(projIDcolumn.getTitle()); 
Row firstRow = newSheet.getRows().get(2); 
firstRow.getCells().get(2).setValue(new CellDataItem().setObjectValue(projectID_Value)); 
firstRow.getColumnByIndex(projIDcolumn.getIndex()); 
Cell s = newSheet.getRows().get(2).getCells().get(1).setDisplayValue(projectID_Value); 
}System.out.println(sheet.getName() + " was created");
}
}
      ProjectFolderWorking(String projectID) throws SQLException, SmartsheetException {     
String folderID;
LikeAWall law = new LikeAWall(1);
DataBase db = new DataBase(law.getPickDB());
db.setApi();
SmartIM smartIM = new SmartIM(db.getApi());
folderID = String.valueOf(SmartIM.getFolderID());
System.out.println("FolderID: " + folderID);
setProjectID(projectID);
smartIM.projectFolderCreate(getProjectID());
}

Я уверен, что ссылка на переменную была хорошей, потому что я пробовал геттеры, но сеттеры этого не работают, а компилируются без каких-либо исключений/ошибок/багов/проблем и грубого результата.

Ниже приведены методы, которые я пробовал.

      smartsheet.sheetResources().getSheet(sheet.getId(),null,null,null,null,null,null,null).getRows().get(2).getCells().set(1,null);
smartsheet.sheetResources().getSheet(sheet.getId(),null,null,null,null,null,null,null).getRows().get(2).getCells().get(1).setDisplayValue(projectID_Value)
smartsheet.sheetResources().getSheet(sheet.getId(),null,null,null,null,null,null,null).getRows().get(2).getCells().get(1).setValue(projectID_Value.toString) / and getBytes() 
smartsheet.sheetResources().getSheet(sheet.getId(),null,null,null,null,null,null,null).getRows().get(2).getCells().get(1).setObjectValue()

Это не имело смысла, но я просто сломался. Я пытался сделать все вышеперечисленное с такими частями, как:

      Sheet sh = lallalalla;
Column s = sh.lalallalala;
Rows w = sh.lalallala;
Cell = w.getCells().get(lalallaa);

0 ответов

Другие вопросы по тегам