Shinnara's Blog
Talking with Shinnara :: NaraTalk.com

'google Code'에 해당되는 글 1건

  1. 2007/10/08 Google API 를 이용하여 SpreadSheet 의 내용 얻어오기
사용자 삽입 이미지
Google 은 Google Code 를 통해 Google 의 여러 서비스에 접근할 수 있는 API 를 제공하고 있습니다. 오늘은 이중에서 SpreadSheet 의 내용을 얻어 오는 방법을 간략하게 소개합니다. 자세한 내용은 Google Spreadsheets Data API Developer's Guide: Java 를 참고하시면 됩니다. 이때 Java Library 가 필요하며 여기서 다운받으실 수 있습니다.

먼저 서비스를 만들고 로그인 정보를 입력합니다.


            SpreadsheetService service = new SpreadsheetService("Naratalk-SpreadSheet-1");
            service.setUserCredentials(<사용자아이디>, <패스워드>);


서비스 이름은 아직까지 별로 중요하지는 않은것 같습니다. 무엇을 입력해도 상관없더군요. (이부분은 자세한 정보 필요). 그리고 사용자 아이디와 패스워드를 입력하는데 사용자 아이디는 gmail 계정 아이디가 아니라 전체 이메일 주소를 모두 입력하셔야 합니다. 만약 Google Apps 등을 이용해서 자신만의 도메인을 쓰고 있다면 그 이메일 전체를 입력하시면 됩니다.


            URL metafeedUrl = new URL("http://spreadsheets.google.com/feeds/spreadsheets/private/full");
            SpreadsheetFeed feed = service.getFeed(metafeedUrl, SpreadsheetFeed.class);
            List<SpreadsheetEntry> spreadsheets = feed.getEntries();


서비스 URL 입니다. 별로 고칠 부분은 없어보입니다.  feed.getEntries() 를 통해 등록되어 있는 모든 SpreadSheet 의 Entry 를 List 로 반환합니다. 이제 이 List 를 차례로 보면서 해당 내용을 확인해봅니다.

            for (int i = 0; i < spreadsheets.size(); i++) {
              System.out.println("Entry>>");
              SpreadsheetEntry entry = spreadsheets.get(i);
              System.out.println("\t" + entry.getTitle().getPlainText());
            }


 전체적인 구조는 SpreadSheetEntry -> WorksheetEntry -> CellEntry 의 형태를 가지며, 동일한 방법에 의해 접근이 가능합니다.  자세한 내용은 API 문서를 참고하시면 됩니다.

전체 프로그램 소스는 아래와 같습니다.

import com.google.gdata.client.spreadsheet.*;
import java.net.URL;
import com.google.gdata.data.spreadsheet.*;
import java.util.*;

public class GdataTest {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
       
        try{
            SpreadsheetService service = new SpreadsheetService("Naratalk-SpreadSheet-1");
            service.setUserCredentials("", "");
           
            URL metafeedUrl = new       URL("http://spreadsheets.google.com/feeds/spreadsheets/private/full");
            SpreadsheetFeed feed = service.getFeed(metafeedUrl, SpreadsheetFeed.class);
            List<SpreadsheetEntry> spreadsheets = feed.getEntries();
            for (int i = 0; i < spreadsheets.size(); i++) {
              System.out.println("Entry>>");
              SpreadsheetEntry entry = spreadsheets.get(i);
              System.out.println("\t" + entry.getTitle().getPlainText());
             
              List<WorksheetEntry> worksheets = entry.getWorksheets();
              for(int k=0;k< worksheets.size();k++)
              {
                  WorksheetEntry worksheet = worksheets.get(k);
                  System.out.println("\t\t"+ worksheet.getTitle().getPlainText());
                 
                  URL cellFeedUrl = worksheet.getCellFeedUrl();
                  CellFeed cellFeed = service.getFeed(cellFeedUrl, CellFeed.class);
                  for (CellEntry cell : cellFeed.getEntries()) {
                    System.out.println(cell.getTitle().getPlainText());
                    String shortId = cell.getId().substring(cell.getId().lastIndexOf('/') + 1);
                    System.out.println(" -- Cell(" + shortId + "/" + cell.getTitle().getPlainText()
                        + ") formula(" + cell.getCell().getInputValue() + ") numeric("
                        + cell.getCell().getNumericValue() + ") value("
                        + cell.getCell().getValue() + ")");
                  }
              }
              
            }
           
        }catch(Exception e){
            e.printStackTrace();
        }
    }

}

0 Trackback, 0 Comment

TRACKBACK :: http://naratalk.com/trackback/178 관련글 쓰기

댓글을 달아 주세요

1 
다...... (264)
Computer/Programming (106)
Links (14)
책 읽는 즐거움 (7)
끄적임 (66)
즐거운 과학 나라 (7)
일본 (5)
Study (4)