-
$123,456
作为
123456
来自谷歌电子表格。
-
$123,456
-
你想通过使用
gopkg.in/Iwark/spreadsheet.v2
-
您已经能够使用带有Sheets API的服务帐户获取和放置Google电子表格的值。
如果我的理解是正确的,这个答案怎么样?请把这看作是几种可能的答案之一。
出现问题的原因是使用
formattedValue
userEnteredValue
.
当你想实现你的目标时使用
gopkg.in/Iwark/spreadsheet文件.v2版
修改脚本:
请修改的文件
如下所示。当然,为了回到原来的库,请备份原来的文件。
the line 116
如下所示。
fields := "spreadsheetId,properties.title,sheets(properties,data.rowData.values(formattedValue,note))"
收件人:
fields := "spreadsheetId,properties.title,sheets(properties,data.rowData.values(formattedValue,note,userEnteredValue))"
the line 52
如下所示。
发件人:
Value: cellData.FormattedValue,
Value: strconv.FormatFloat(cellData.UserEnteredValue.NumberValue, 'f', 4, 64),
并添加
"strconv"
到
import
import (
"encoding/json"
"strings"
"strconv"
)
修改
the line 8
如下所示。
发件人:
// UserEnteredFormat *CellFormat `json:"userEnteredFormat"`
收件人:
UserEnteredFormat struct {
NumberValue float64 `json:"numberValue"`
} `json:"userEnteredFormat"`
结果:
[123456.0000]
其他模式:
作为实现目标的另一种模式,使用googleapi go客户端怎么样?关于这个,你可以在
Go Quickstart
. 当使用googleapi go客户端时,示例脚本如下所示。在本例中,作为一个测试用例电子表格.get使用了。
在这个示例脚本中,
authenticate()
和
checkError()
在您的脚本中,由修改使用。
package main
import (
"fmt"
"io/ioutil"
"net/http"
"golang.org/x/net/context"
"golang.org/x/oauth2/google"
"google.golang.org/api/sheets/v4"
)
func main() {
c := authenticate()
sheetsService, err := sheets.New(c)
checkError(err)
spreadsheetId := "###" // Please set the Spreadsheet ID.
ranges := []string{"Sheet1"} // Please set the sheet name.
resp, err := sheetsService.Spreadsheets.Get(spreadsheetId).Ranges(ranges...).Fields("sheets.data.rowData.values.userEnteredValue").Do()
checkError(err)
for _, row := range resp.Sheets[0].Data[0].RowData {
for _, col := range row.Values {
fmt.Println(col.UserEnteredValue)
}
}
}
func authenticate() *http.Client {
data, err := ioutil.ReadFile("serviceAccount_20190511.json")
checkError(err)
conf, err := google.JWTConfigFromJSON(data, sheets.SpreadsheetsScope)
checkError(err)
client := conf.Client(context.TODO())
return client
}
func checkError(err error) {
if err != nil {
panic(err.Error())
}
}
示例脚本2:
什么时候电子表格.values.get使用的脚本
main()
具体如下。
func main() {
c := authenticate()
sheetsService, err := sheets.New(c)
checkError(err)
spreadsheetId := "###" // Please set the Spreadsheet ID.
sheetName := "Sheet1" // Please set the sheet name.
resp, err := sheetsService.Spreadsheets.Values.Get(spreadsheetId, sheetName).ValueRenderOption("UNFORMATTED_VALUE").Do()
checkError(err)
fmt.Println(resp.Values)
}
参考文献: