как хранить данные из электронных таблиц Google в базе данных (: - в базе данных сохраняется только первая верхняя строка - PullRequest
0 голосов
/ 04 марта 2019
public class AccountProjectSheet {

    public AccountProjectDTO spreadsheets() {
        SpreadsheetService service = new SpreadsheetService("Sheet1");
        AccountProjectDTO accountProjectDTO = new AccountProjectDTO(); //creating an object of AccountProjectDto class to assign values which are coming from spreadsheet
        try {
            //Read Data
            String sheetUrl = "https://spreadsheets.google.com/feeds/list/*******key********(just to maintain privacy)********/default/public/values";

            URL url = new URL(sheetUrl);
            // Get Feed of Spreadsheet url
            ListFeed lf = service.getFeed(url, ListFeed.class);
            //Iterate over feed to get cell value

            for (ListEntry le: lf.getEntries()) {
                CustomElementCollection cec = le.getCustomElements();
                //Pass column name to access it's cell values
                accountProjectDTO.setProjectCode(cec.getValue("projectCode"));
                accountProjectDTO.setProjectName(cec.getValue("projectName"));
                accountProjectDTO.setAccountCode(cec.getValue("accountCode"));
                accountProjectDTO.setAccountName(cec.getValue("accountName"));
                accountProjectDTO.setProjectManagerName(cec.getValue("projectManagerName"));
                accountProjectDTO.setDeliveryManagerName(cec.getValue("deliveryManagerName"));
                accountProjectDTO.setProjectStatus(cec.getValue("projectStatus"));
                accountProjectDTO.setProjectMetricsLink(cec.getValue("projectMatricsLink"));

                return accountProjectDTO;
            }
        } catch (IOException e) {
            e.printStackTrace();
            return null;
        } catch (ServiceException e) {
            e.printStackTrace();
            return null;
        }
        return accountProjectDTO;
    }
}

Я пытаюсь получить данные из Google Sheets в Hana DB, но это затрагивает только верхнюю первую строку.Я хочу сохранить все строки в таблицах

1 Ответ

0 голосов
/ 04 марта 2019

Читая код, я предполагаю, что вы хотите получить список AccountProjectDTO для дальнейшего их хранения в базе данных.Но сигнатура метода неверна, поскольку метод возвращает только один AccountProjectDTO.

. Вы возвращаете первое AccountProjectDTO вместо построения списка всех AccountProjectDTO и возвращаете его.

Схематично, вы должны заменить это:

public AccountProjectDTO spreadsheets() {
    SpreadsheetService service = new SpreadsheetService("Sheet1");
    AccountProjectDTO accountProjectDTO = new AccountProjectDTO(); 
    [...]

        for (ListEntry le: lf.getEntries()) {
            [...]   
            return accountProjectDTO;
        }

на:

public List<AccountProjectDTO> spreadsheets() {
    SpreadsheetService service = new SpreadsheetService("Sheet1");
    List<AccountProjectDTO> result = new ArrayList<>();
    [...]

        for (ListEntry le: lf.getEntries()) {
            AccountProjectDTO accountProjectDTO = new AccountProjectDTO(); 
            [...]   
            result.add(accountProjectDTO);
        }
    return result;
}
...