当前位置: 首页 > 知识库问答 >
问题:

在Google Drive中使用Google电子表格API创建电子表格

况经纬
2023-03-14

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

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

共有2个答案

苏丰茂
2023-03-14

您应该使用Google文档列表API创建新的speadsheet。

这个API能做什么?

Google Documents List API允许开发人员创建、检索、更新和删除Google Docs(包括但不限于文本文档、电子表格、演示文稿和绘图)、文件和集合。它还提供了一些高级功能,如资源档案、光学字符识别、翻译和修订历史。

井浩思
2023-03-14

很简单,经过一些研究,我找到了这个答案。我们不能创建一个新的电子表格在谷歌驱动器与谷歌电子表格API。

注意:我们可以通过google电子表格API在google drive已有的电子表格中创建新的工作表,但不能使用电子表格API创建新的电子表格。

对于创建和上传新的电子表格或任何其他类型的文档,谷歌驱动器支持我们必须使用谷歌驱动器api。

这就是我要找的。通过这个,我们可以使用GoogleDrive api在GoogleDrive中创建一个新的电子表格。

    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()对象。

现在,如果我们必须上传任何类型的文件(xls,文档,图像等)在谷歌驱动器,我们可以这样做

//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电子表格中创建了一个电子表格。我可以在internet浏览器的驱动器主页上看到它。在此之后,当我尝试从另一个电子表格导入工作表时,会发生错误。 出于某种原因,我得到了错误: googleapiclient.errors.HttpError: 这是奇怪的部分,因为电子表格已经创建。我可以从我的互联网浏览器的驱动器主页上看到它。如果我在浏览器中插入

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

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

  • 我想使用GoogleSheetsAPI以编程方式创建一个GoogleSheet,将其公开,并将其嵌入网页上的IFRAME中。 我不知道如何使用API使电子表格对公众可见。创建或更新电子表格时,API中是否对此进行了设置? 我遵循谷歌的Python快速入门,能够创建和更新电子表格。 使用驱动器API,我可以公开电子表格,并且可以从其他帐户访问它。但是,这不允许您将其嵌入到网页中(它仍然声明“很抱歉,

  • 我在谷歌电子表格中创建一个函数的同时,试图找出如何使用If语句。 我已经提供了一个我正在努力实现的例子。据我所知,这段代码中的If语句只是检查单元格A4的值是否等于4,如果是,则将输入数字乘以1.5?但是,当我尝试运行该函数时,它总是返回0(或我从price变量开始指定的任何值)。 任何帮助都将不胜感激。 非常感谢

  • 我很难找到将多张工作表同步到主电子表格的方法。在我的测试中,我有一个大的电子表格,上面有5个城市的地址。我正在尝试为每个城市创建一个电子表格,并能够在任何一个表格中更改数据时同步数据。因此,我将管理总体数据,5张电子表格中的每一张都将分配给其他人。这样,他们就可以在不访问所有数据的情况下更新工作表。使用内置查询或导入功能的问题是,如果用户在“城市”电子表格上进行更改,它将破坏该表格,因为数据被引用