java - 如何将数据从谷歌电子表格存储到数据库(:-只有第一行被存储到数据库中
问题描述
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,但只有第一行受到影响。我想将所有行存储在电子表格中
解决方案
阅读代码,我假设您想要获取一个列表,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;
}
推荐阅读
- python - TensorFlow 未检测到 GPU(Dell Vostro 与 NVIDIA GeForce GTX 1060)
- laravel - 如何在 Laravel 模型中访问当前用户(Laravel 8)
- django - 我想用 django 制作一个 webapp,这基本上是一个壁纸生成器,但是在哪里存储以及如何在 heroku 上显示图像?
- python - gunzip 管道传输到子进程缓慢
- flutter - 我尝试使用作为流的draw(dart reddit API)获取提交,然后将其显示为ListView,但我不知道该怎么做
- android - 如何在 Android Studio (kotlin) 中管理同一活动中的 2 个下拉菜单
- javascript - 网站图像不会显示在 github 页面或 netlify 上
- java - 仅在编程 powershell 中不允许获取空标识名称(用于 <>)
- javascript - 文件中的 TypeScript 私有接口
- javascript - 为什么我的 DJS 角色声明消息可以工作几个小时,但突然停止?