我想复制此处提到的文档:
http://code.google.com/apis/documents/docs/3.0/developers_guide_protocol.html#CopyingDocs
我正在使用最新的 Java Gdata 库,它没有一个很好的包装方法来做到这一点,而且我是 java gdata 库的新手。
如果有用的话,我已经获得了经过身份验证的 DocsService。
如果你将它包装成一个需要两个字符串的方法,一个是源名称,另一个是副本名称,则可以加分。
我想复制此处提到的文档:
http://code.google.com/apis/documents/docs/3.0/developers_guide_protocol.html#CopyingDocs
我正在使用最新的 Java Gdata 库,它没有一个很好的包装方法来做到这一点,而且我是 java gdata 库的新手。
如果有用的话,我已经获得了经过身份验证的 DocsService。
如果你将它包装成一个需要两个字符串的方法,一个是源名称,另一个是副本名称,则可以加分。
好吧我做到了....
让每个人都可以看到... this.dService 是一个 DocsService,已经过身份验证。
// This method returns the Resource ID to be used to make the copy
public String loadDocsSpreadsheetEntryId(String sourceName) {
String resourceId = null;
try {
Logger.info("Loading feed URL");
URL url = new URL("https://docs.google.com/feeds/default/private/full" );
DocumentQuery query = new DocumentQuery(url);
query.setTitleQuery(sourceName);
query.setTitleExact(true);
Logger.info("Loaded feed URL");
DocumentListFeed dfeed = this.dService.getFeed(query, DocumentListFeed.class);
Logger.info("got feed");
for (DocumentListEntry entry : dfeed.getEntries()) {
Logger.info(entry.getTitle().getPlainText());
if(entry.getTitle().getPlainText().equalsIgnoreCase(sourceName))
{
Logger.info("found doc");
resourceId = entry.getResourceId();
}
}
} catch(Exception e) {
logException(e, "Loading Source Spreadsheet to copy");
}
return resourceId;
}
public void createSpreadsheetFrom(String destination, String source) {
try {
URL entryUrl = new URL("http://docs.google.com/feeds/default/private/full");
Map<String, String> parameters = new HashMap<String, String>();
String resourceID = loadDocsSpreadsheetEntryId(source);
Logger.info("Resource id %s", resourceID);
DocumentListEntry newEntry = new DocumentListEntry();
newEntry.setId(resourceID);
newEntry.setTitle(new PlainTextConstruct(destination));
this.dService.insert(entryUrl, newEntry);
} catch(Exception e) {
logException(e, "Copying Spreadsheet");
}
}