当前位置: 首页 > 面试题库 >

使用Google云端硬盘中的Google Spreadsheets API创建电子表格

卫英悟
2023-03-14
问题内容

我已经通过Google在开发者指南表格API的官方文档中提到的简单Java代码在My Google
Drive帐户的现有电子表格中成功创建了一个新的工作表,但是我想通过Java代码在Google
Drive帐户中创建一个新的电子表格。在链接中,他们没有提及任何示例代码。我已经看到Spreadservice类中可用的不同方法。

如何使用Google Spreadsheets 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);
        }
    }

问题答案:

经过一些研究,我发现了这个答案很简单。我们无法使用 Google Spreadsheet API 在google驱动器中创建新的电子 表格

注意: 我们可以通过Google Spreadsheet
API在Google驱动器的现有电子表格中创建新工作表,但无法使用电子表格api创建新的电子表格。

要创建和上传新的电子表格或 Google Drive 支持的任何其他类型的文档,我们必须使用 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);

为了创建一个新的电子表格,我们必须创建new SpreadsheetEntry()对象,对于任何其他文档,我们必须创建new DocumentEntry()对象。

现在,如果我们必须在Google驱动器中上传任何类型的文档(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);


 类似资料:
  • 问题内容: 我想在Google云端硬盘中创建一个空的Google表格(仅使用元数据创建)。当我提到Google SpreadSheet API 文档时,它说要使用DocumentsList API,但已弃用,而是要求我使用Google Drive API。在云端硬盘API文档中,我找不到创建空工作表的任何方法。有人知道如何执行此操作吗? 问题答案: 您可以使用做这个驱动器的API被设置MIME类型

  • 我已经通过谷歌官方文档《开发者指南》API中提到的一个简单Java代码成功地在我的Google Drive帐户的现有电子表格中创建了一个新的工作表,但我想通过Java代码在我的Google Drive帐户中创建一个新的电子表格。在链接中,他们没有提到这方面的任何示例代码。我已经在Spreadservice类中看到了不同的可用方法。 如何使用Google电子表格API实现这一点?

  • 问题内容: 我正在尝试授权我的应用程序与Google云端硬盘集成。Google文档提供了有关基于服务器的授权的详细信息以及各种服务器技术的代码示例。 还有一个JavaScript Google API库,该库支持授权。在Wiki的示例部分下方有一个代码片段,用于创建配置和调用authorize函数。我将范围更改为我认为需要驱动器的范围: 永远不会调用该回调函数(是的,已更正了GoogleAPI库的

  • 问题内容: 我尝试运行quickstart-sample,并且具有以下依赖性: 来自云端硬盘Wiki API页面 但是,当我尝试编译代码时,却缺少了。 要验证这一点,您只需要执行步骤2和3!在哪里可以找到该类,或者如何在示例中替换它? 问题答案: 可以在http://repo2.maven.org/maven2/com/google/http-client/google-http-client-

  • 问题内容: 我创建了一些工具来填充Google电子表格。自从我今天出错以来,它已经工作了1年 这是与gmail连接的代码部分: 我不知道如何与gmail连接,我正在尝试通过oAuth进行此操作,但我不知道如何进行操作。在https://developers.google.com/google- apps/spreadsheets/authorize 上的示例中,只有.net代码。 问题答案: 我终

  • 问题内容: 我正在创建一个通道,以接收应用程序上用户的更改。主要问题在于,经过2-3次网络连接后,我收到一条错误消息,提示用户已超出配额限制。 那没有意义,因为我只收到2条帖子(我在ngrok上看到了)。 我在驱动器API和配额上进入了Google控制台。每当我收到一个webhook时,查询量就会增加500个。因此,当用户进行两次更改而我收到两个webhooks时,查询数超过了Google允许的1