gpt4 book ai didi

go - 如何使用Google Sheets API v4和Go格式化单元格?

转载 作者:行者123 更新时间:2023-12-01 20:08:20 32 4
gpt4 key购买 nike

我必须粘贴一个日期。对于我在文档和SO中所了解的是,我必须粘贴从1899年12月30日起经过的日期,并将单元格的格式设置为日期。
最近一个小时,正在寻找使用Go API客户端进行格式化的示例。有什么例子吗?
谢谢!
编辑:我的代码!

Google libs used:
"google.golang.org/api/option"
"google.golang.org/api/sheets/v4"
功能:
func googleAppend(bookID, sheet, tableCorner string, data []interface{}) {
srv := connect(key)
var vr sheets.ValueRange
vr.Values = append(vr.Values, data)
_, err := srv.Spreadsheets.Values.Append(bookID,
sheet+"!"+tableCorner, &vr).ValueInputOption("RAW").Do()
if err != nil {
log.Fatalf("Unable to retrieve data from sheet. %v", err)
}
}
经过测试:
func Test_googleAppend(t *testing.T) {
sample := []interface{}{"swwewewew", 3, 47120} <-- for what I understand, the destination of 3434343 should be formated to DATE.
googleAppend("XXX", "SHEET", "A1", sample)
}
所需结果:
enter image description here

最佳答案

我相信您的目标如下。

  • 您想在“C”列中设置单元格的数字格式。
  • 例如,您要将47120转换为1/2/2029
  • 您想使用googleapis for Golang实现此目的。
  • 您已经能够使用Sheets API获取和放置值。

  • 修改要点:
  • 为了更改单元格格式,需要使用Sheets API中的batchUpdate方法。对于您的情况,我想建议在batchUpdate方法中使用RepeatCellRequest更改数字格式。

  • 当这反射(reflect)到您的脚本时,请按如下所示进行修改。
    修改后的脚本:
    在运行脚本之前,请设置 sheetId
    func googleAppend(bookID, sheet, tableCorner string, data []interface{}) {
    srv := connect(key)
    var vr sheets.ValueRange
    vr.Values = append(vr.Values, data)
    _, err := srv.Spreadsheets.Values.Append(bookID,
    sheet+"!"+tableCorner, &vr).ValueInputOption("RAW").Do()
    if err != nil {
    log.Fatalf("Unable to retrieve data from sheet. %v", err)
    }

    // I added below script.
    sheetId := 12345678 // Please set the sheet ID which is not Spreadsheet ID. Please be careful this.

    repeatCellRequest := &sheets.RepeatCellRequest{
    Fields: "userEnteredFormat.numberFormat",
    Range: &sheets.GridRange{
    SheetId: int64(sheetId),
    StartRowIndex: 0,
    StartColumnIndex: 2,
    EndColumnIndex: 3,
    },
    Cell: &sheets.CellData{
    UserEnteredFormat: &sheets.CellFormat{
    NumberFormat: &sheets.NumberFormat{
    Pattern: "m/d/yyyy",
    Type: "DATE",
    },
    },
    },
    }
    requestBody := &sheets.BatchUpdateSpreadsheetRequest{
    Requests: []*sheets.Request{&sheets.Request{
    RepeatCell: repeatCellRequest,
    }},
    }
    resp, err := srv.Spreadsheets.BatchUpdate(bookID, requestBody).Do()
    if err != nil {
    log.Fatal(err)
    }
    fmt.Printf("%#v\n", resp)
    }
  • 在此修改中,使用您的脚本将值放入电子表格后,使用batchUpdate方法中的RepeatCellRequest更改了列“C”的单元格格式。

  • 笔记:
  • 在这种情况下,当您运行用于更改数字格式的脚本一次时,可能不需要再次运行。因为在运行脚本时,“C”列的数字格式已更改。但是我不确定你的实际情况。因此,请根据您的实际情况修改脚本。

  • 引用:
  • Method: spreadsheets.batchUpdate
  • RepeatCellRequest
  • 关于go - 如何使用Google Sheets API v4和Go格式化单元格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62964170/

    32 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com