首页 > 解决方案 > 如何使用 vb.net 在现有的 google 电子表格中插入新工作表?

问题描述

我设法使用以下代码在谷歌驱动器上创建电子表格。现在我想在创建的电子表格中添加新工作表。

当我创建新电子表格时,它包含名为 Sheet1 的默认工作表,但我想重命名该工作表或在电子表格中插入多个工作表

Public Function Create(ByVal FileName As String) As String
        Try

            Dim service = GetGoogleAPPDriveService()


            Dim fileMetadata = New Google.Apis.Drive.v3.Data.File()
            fileMetadata.Name = FileName
            fileMetadata.MimeType = "application/vnd.google-apps.spreadsheet"

            Dim request As FilesResource.CreateRequest = service.Files.Create(fileMetadata)

            request.SupportsTeamDrives = True
            request.Fields = "id"
            System.Net.ServicePointManager.ServerCertificateValidationCallback = New System.Net.Security.RemoteCertificateValidationCallback(AddressOf AcceptAllcertification)
            Dim file = request.Execute

            Return file.Id

        Catch ex As Exception
            Throw ex
        End Try
    End Function 

Private Function GetGoogleAPPDriveService() As DriveService
        Try
            Dim Scopes1 As String() = {DriveService.Scope.Drive, DriveService.Scope.DriveFile}
            Dim ClientId As String = ""
            Dim ClientSecret As String = ""
            Dim UserCredentials As UserCredential

            Dim stream = New FileStream("credentials.json", FileMode.Open, FileAccess.Read)
            ClientId = GoogleClientSecrets.Load(stream).Secrets.ClientId

            Dim stream1 = New FileStream("credentials.json", FileMode.Open, FileAccess.Read)
            ClientSecret = GoogleClientSecrets.Load(stream1).Secrets.ClientSecret

            Dim cs = New ClientSecrets()
            cs.ClientId = ClientId
            cs.ClientSecret = ClientSecret

            UserCredentials = GoogleWebAuthorizationBroker.AuthorizeAsync(cs, Scopes1, Environment.UserName,
                                                                         CancellationToken.None, New FileDataStore("MyAppsToken", True)).Result


            Dim service = New DriveService(New BaseClientService.Initializer() With {
   .HttpClientInitializer = UserCredentials,
   .ApplicationName = ApplicationName})

            Return service


        Catch ex As Exception
            Throw ex
        End Try
    End Function

Public Function AcceptAllcertification(ByVal sender As Object, ByVal Certification As X509Certificate, ByVal Chain As X509Chain, ByVal sslPolicyErrors As System.Net.Security.SslPolicyErrors) As Boolean
        Return True
    End Function

标签: vb.netgoogle-sheets-api

解决方案


为此,您需要使用Sheets API。看看AddSheetRequest


推荐阅读