Java 在 Google Drive 中使用 Google Spreadsheets API 创建电子表格
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/19361814/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Create spreadsheet using Google Spreadsheets API in Google Drive
提问by Satyam Koyani
I have successfully created a new worksheet in an existing spreadsheet of My Google Drive account through a simple Java code mentioned in Google's official documentation on Developer Guide Sheets API but want to create a new spreadsheet in my Google Drive account through Java code. In the link they didn't mention any sample code for that. I have already seen different methods available in Spreadservice class.
我已经通过谷歌关于开发人员指南表 API 的官方文档中提到的一个简单的 Java 代码在我的谷歌驱动器帐户的现有电子表格中成功创建了一个新工作表,但想通过 Java 代码在我的谷歌驱动器帐户中创建一个新的电子表格。在链接中,他们没有提到任何示例代码。我已经在 Spreadservice 类中看到了不同的方法。
How to do this with Google Spreadsheets API?
如何使用 Google 电子表格 API 执行此操作?
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
import com.google.gdata.client.spreadsheet.*;
import com.google.gdata.data.Link;
import com.google.gdata.data.PlainTextConstruct;
import com.google.gdata.data.TextConstruct;
import com.google.gdata.data.docs.ExportFormat;
import com.google.gdata.data.spreadsheet.*;
import com.google.gdata.util.*;
import java.io.IOException;
import java.net.*;
import java.util.*;
import javax.xml.soap.Text;
/**
*
* @author satyam
*/
public class SpreadSheet {
public static void main(String[] args)
throws AuthenticationException, MalformedURLException, IOException, ServiceException {
SpreadsheetService service = new SpreadsheetService("gBuddy");
// TODO: Authorize the service object for a specific user (see other sections)
String USERNAME = "USERNAME";
String PASSWORD = "PASSWORD";
service.setUserCredentials(USERNAME, PASSWORD);
// Define the URL to request. This should never change.
URL SPREADSHEET_FEED_URL = new URL(
"https://spreadsheets.google.com/feeds/spreadsheets/private/full");
// Make a request to the API and get all spreadsheets.
SpreadsheetFeed feed = service.getFeed(SPREADSHEET_FEED_URL, SpreadsheetFeed.class);
List<SpreadsheetEntry> spreadsheets = feed.getEntries();
// Iterate through all of the spreadsheets returned
for (SpreadsheetEntry spreadsheet : spreadsheets) {
// Print the title of this spreadsheet to the screen;
System.out.println(spreadsheet.getTitle().getPlainText());
}
SpreadsheetEntry spreadsheet = spreadsheets.get(1);
// System.out.println(spreadsheet.getTitle().getPlainText());
// // Create a local representation of the new worksheet.
WorksheetEntry worksheet = new WorksheetEntry();
worksheet.setTitle(new PlainTextConstruct("New Worksheet"));
worksheet.setColCount(10);
worksheet.setRowCount(20);
// Send the local representation of the worksheet to the API for
// creation. The URL to use here is the worksheet feed URL of our
// spreadsheet.
URL worksheetFeedUrl = spreadsheet.getWorksheetFeedUrl();
WorksheetEntry insert = service.insert(worksheetFeedUrl, worksheet);
}
}
采纳答案by Satyam Koyani
It's just simple after some research I found this answer. We cannot create a new spreadsheet in google drive with Google Spreadsheet API.
经过一些研究,我找到了这个答案,这很简单。我们无法使用Google Spreadsheet API在 google drive 中创建新电子表格。
NOTE:we can create new worksheet in already exist spreadsheet of google drive through Google Spreadsheet API but cannot create a new spreadsheet with spreadsheet api.
注意:我们可以通过 Google Spreadsheet API 在已经存在的 google drive 电子表格中创建新的工作表,但不能使用电子表格 API 创建新的电子表格。
For creating and uploading new Spreadsheet or any other kind of document which google drive supports we have to use Google Drive api.
要创建和上传新的电子表格或Google Drive支持的任何其他类型的文档,我们必须使用Google Drive api。
This is what I am looking for. By this we can create a new spreadsheet in google drive using google drive api.
这就是我正在寻找的。通过这个,我们可以使用 google drive api 在 google drive 中创建一个新的电子表格。
DocsService docsService = new DocsService("MySampleApplication-v3");
docsService.setUserCredentials(USERNAME, PASSWORD);
URL GOOGLE_DRIVE_FEED_URL = new URL("https://docs.google.com/feeds/default/private/full/");
DocumentListEntry documentListEntry = new com.google.gdata.data.docs.SpreadsheetEntry();
documentListEntry.setTitle(new PlainTextConstruct("Spreadsheet_name"));
documentListEntry = docsService.insert(GOOGLE_DRIVE_FEED_URL, documentListEntry);
For creating a new spreadsheet we have to create new SpreadsheetEntry()
object and for any other document we have to create new DocumentEntry()
object.
为了创建一个新的电子表格,我们必须创建new SpreadsheetEntry()
对象,而对于任何其他文档,我们必须创建new DocumentEntry()
对象。
NOW If we have to upload any kind of document(xls,doc,image etc) in google drive we can do like this
现在如果我们必须在谷歌驱动器中上传任何类型的文档(xls、doc、图像等),我们可以这样做
//File upload in google drive
DocumentListEntry uploadFile = new DocumentListEntry();
uploadFile.setTitle(new PlainTextConstruct("FILE_NAME_DISPLAY_IN_DRIVE"));
uploadFile.setFile(new File("FILE_PATH"), "MIME_TYPE_OF_FILE");
uploadFile = docsService.insert(GOOGLE_DRIVE_FEED_URL, uploadFile);
回答by Guillaume
You should use the Google Documents List APIto create new speadsheets.
您应该使用Google Documents List API创建新的电子表格。
What can this API do?
The Google Documents List API allows developers to create, retrieve, update, and delete Google Docs (including but not limited to text documents, spreadsheets, presentations, and drawings), files, and collections. It also provides some advanced features like resource archives, Optical Character Recognition, translation, and revision history.
这个 API 能做什么?
Google 文档列表 API 允许开发人员创建、检索、更新和删除 Google 文档(包括但不限于文本文档、电子表格、演示文稿和绘图)、文件和集合。它还提供了一些高级功能,如资源档案、光学字符识别、翻译和修订历史。