如何将数据从 google 电子表格存储到数据库(:- 只有最上面的第一行被存储到数据库
how to store data from google spreadsheets to database(:- only the top first row is getting stored to data base
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 表格获取到 Hana DB,但只有最上面的第一行受到影响。我想存储电子表格中的所有行
阅读代码,我假设您想获取 AccountProjectDTO
的列表,以便进一步将它们存储在数据库中。但是方法签名是错误的,因为方法 return 只有一个 AccountProjectDTO
.
您正在 return 创建第一个 AccountProjectDTO
,而不是构建所有 AccountProjectDTO
和 return 的列表。
从示意图上看,您应该将其替换为:
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;
}
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 表格获取到 Hana DB,但只有最上面的第一行受到影响。我想存储电子表格中的所有行
阅读代码,我假设您想获取 AccountProjectDTO
的列表,以便进一步将它们存储在数据库中。但是方法签名是错误的,因为方法 return 只有一个 AccountProjectDTO
.
您正在 return 创建第一个 AccountProjectDTO
,而不是构建所有 AccountProjectDTO
和 return 的列表。
从示意图上看,您应该将其替换为:
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;
}