Java в Google Spreadsheet

Я пытался заниматься программированием, используя Java для подключения к Google Spreadsheet, чтобы выполнять поиск или изменение данных в ячейках.

Моя ссылка на электронную таблицу Google представляет собой https://docs.google.com/spreadwAgW2W1W2Wyg0D0D0D0D0W0D0R0D0_RuDWD_Ru.WD

Я посмотрел на API листов , и для него требуется ссылка типа

https://spreadsheets.google.com/feeds/worksheets/key/private/full

Я пробовал разные формы ссылок, например:

    https://spreadsheets.google.com/feeds/worksheets/1UXoGD2gowxZ2TY3gooI9y7rwWTPBOA0dnkeNYwUqQRA/private/full https://spreadsheets.google.com/feeds/worksheets/1UXoGD2gowxZ2TY3gooI9y7rwWTPBOA0dnkeNYwUqQRA/private/full

Они дали мне различные виды ошибок соответственно:

    com.google.gdata.util.ParseException: Unrecognized content type:application/binary литий> com.google.gdata.util.RedirectRequiredException: Moved Temporarily литий>

Я понятия не имею, как подключиться к электронной таблице Googl с помощью Java. Пожалуйста, помогите мне, если у вас есть опыт в этом.

import com.google.gdata.client.authn.oauth.*;
import com.google.gdata.client.spreadsheet.*;
import com.google.gdata.data.*;
import com.google.gdata.data.batch.*;
import com.google.gdata.data.spreadsheet.*;
import com.google.gdata.util.*;
import org.testng.annotations.Test;

import java.io.IOException;
import java.net.*;
import java.util.*;

public class TestGoogleSheetsAPI {

    @Test
    public void testConnectToSpreadSheet() throws ServiceException, IOException {
        SpreadsheetService service = new SpreadsheetService("google-spreadsheet");

        URL SPREADSHEET_FEED_URL = new URL("https://spreadsheets.google.com/feeds/worksheets/1UXoGD2gowxZ2TY3gooI9y7rwWTPBOA0dnkeNYwUqQRA/public/full");
        SpreadsheetFeed feed = service.getFeed(SPREADSHEET_FEED_URL, SpreadsheetFeed.class);
        List<SpreadsheetEntry> spreadsheets = feed.getEntries();

        if (spreadsheets.size() == 0) {
            // TODO: There were no spreadsheets, act accordingly.
        }

        SpreadsheetEntry spreadsheet = spreadsheets.get(0);
        System.out.println(spreadsheet.getTitle().getPlainText());
    }
}

Я не использовал service.setUserCredentials("[email protected]", "password"), потому что у меня будет другая ошибка, которая com.google.gdata.util.AuthenticationException: Error authenticating (check service name)

7 голосов | спросил Tim Lai 20 J000000Monday15 2015, 05:14:09

1 ответ


0

Фид, который вы получаете с этого URL, является WorksheetFeed, а не SpreadsheetFeed. Попробуйте это:

    SpreadsheetService service = new SpreadsheetService("google-spreadsheet");

    FeedURLFactory urlFactory = FeedURLFactory.getDefault();
    WorksheetFeed worksheetFeed = service.getFeed(urlFactory.getWorksheetFeedUrl("1V4jT4vSqmY4YNY1VJhariLRLbxfFWf5z8bSTpDcSBPE", "public", "full"), WorksheetFeed.class);
    List<WorksheetEntry> worksheets = worksheetFeed.getEntries();
    WorksheetEntry worksheet = worksheets.get(0);
    System.out.println(worksheet.getTitle().getPlainText());
ответил Alex R 20 J000000Monday15 2015, 23:58:18

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132