0

Googleスプレッドシートと通信するコードを作成しようとしています。私たちは自分たちの側でたくさんの処理を行い、次にデータをクライアントにこのスプレッドシートに渡します。それを自動化したいのです。これは簡単なはずです。

このページで、Googleは「すでに取得したSpreadsheetEntryがあれば、このスプレッドシート内のすべてのワークシートのリストを次のように印刷できます」と述べています。

AtomLink link = entry.Links.FindService(GDataSpreadsheetsNameTable.WorksheetRel, null);

WorksheetQuery query = new WorksheetQuery(link.HRef.ToString());
WorksheetFeed feed = service.Query(query);

foreach (WorksheetEntry worksheet in feed.Entries)
{
    Console.WriteLine(worksheet.Title.Text);
}

家で続いて、私は始めます:

Dim link As AtomLink = Entry.Links.FindService(GDataSpreadsheetsNameTable.WorksheetRel, "")
Dim wsq As New WorksheetQuery(link.HRef.ToString)

そして、実行がその2行目に到達すると、「オブジェクト参照がオブジェクトのインスタンスに設定されていない」ことがわかります。FindServiceメソッドは何も返しません。また、GDataSpreadsheetsNameTable.WorksheetRelを見ると、「http://schemas.google.com/spreadsheets/2006#worksheetsfeed」の定数値です。

やりたいことをやっつけてしまうほどではありません。たとえば、フィードとは何ですか?ワークシートは本当にExcelの命名法に基づいていると思いますか?そのようなもの。しかし、問題を引き起こしている可能性のあることがいくつかあります。

  1. C#メソッドは「... FindService(GDataSpreadsheetsNameTable.WorksheetRel、null);」を呼び出します。そのヌルについてはよくわかりません。文字列が必要なため、VBで「」を使用しましたが、それが正しいかどうかはわかりません。
  2. そのschemas.google.comURIはライブではないようです。少なくとも、ブラウザにパンチすると、サーバーが見つかりません。しかし、繰り返しになりますが、私はそれが何をしようとしているのか正確にはわかりません。

それで、何か考えはありますか?Googleスプレッドシートを読み取るVBコードと、初心者に指示する時間を持っている人はいますか?ネット上に浮かんでいる有用なサンプルコードが本質的にないことに驚いています。

読んでくれてありがとう!

4

1 に答える 1

1

それで、もちろん、私がこれを投稿した直後に、私はここでいくつかのインスピレーションを見つけました。コレクション間で手動で反復することは、これを行うための好ましい方法ではない場合でも、問題なく機能します。私はまだこれに関連する他の人からの情報を聞きたいと思っているので、私はおそらくこの1つのハードルを超えているとしても、助けてくれることを奨励されていると感じます。

For Each Entry In mySprShFeed.Entries
    If Entry.Title.Text = "spreadsheetNameSought" Then
        For Each link As AtomLink In Entry.Links
            If link.Rel = GDataSpreadsheetsNameTable.WorksheetRel Then
                Dim wsf As WorksheetFeed = service.Query(New WorksheetQuery(link.HRef.ToString))
                For Each worksheet In wsf.Entries
                    Console.WriteLine(worksheet.Title.Text)
                Next

            End If
        Next
    End If
Next
于 2010-10-26T17:07:25.307 に答える