我有一个简单的函数,可以从谷歌表格中获取数据。
例如https://sheets.googleapis.com/v4/spreadsheets/{MYSHEET}/values/Sheet1!A1:D5
我在那里有一个包含长数字的字段,谷歌会自动以科学计数法显示该字段,例如 1.234E+8。
我不介意它在表格中的显示方式,因为它从未直接使用过。但在我的 API 调用中,我必须能够获得原始/原始数字。
这是如何实现的?
附言。更改工作表用户界面中的格式可能会有所帮助,但这有两个问题:
更新
我张贴了样本表。这是我用来下载的完整 URL:
但返回的结果json是错误的,如下:
{
"range": "'Form Responses 1'!A1:F103",
"majorDimension": "ROWS",
"values": [
[
"cc"
],
[
4.3668413379866e+15
],
[
4.14809933325943e+15
]
]
}
Run Code Online (Sandbox Code Playgroud)
从您的端点来看,我认为您可能在Sheets API中使用spreadsheets.values.get方法。如果我的理解是正确的,那么在您的情况下,如何使用查询参数valueRenderOption?当你的端点被修改后,它会变成如下所示。
https://sheets.googleapis.com/v4/spreadsheets/{MYSHEET}/values/Sheet1!A1:D5?valueRenderOption=UNFORMATTED_VALUE
Run Code Online (Sandbox Code Playgroud)
本次修改增加了查询参数valueRenderOption=UNFORMATTED_VALUE。
当我看到你更新的问题时,你的值似乎是 16 位数字。在 Sheets API 中,15 位数字可以视为十进制数。当数字大于 15 位时,如,则检索1000000000000000的值。1e+15当我使用电子表格.values.get、电子表格.values.batchGet 和电子表格.get 方法对此进行测试时,获得了相同的结果。当我看到你的电子表格4.3668413379866e+15并4.14809933325943e+15检索时。
幸运的是,当我使用 Google Apps 脚本的电子表格服务对此进行测试时,我注意到可以检索4366841337986600和 的值。4148099333259430因此,作为一种解决方法,我想提出以下流程。
Web Apps 的示例脚本是 Google Apps 脚本。因此,请创建一个 Google Apps 脚本项目。
如果您想直接创建,请访问https://script.new/。在这种情况下,如果您尚未登录 Google,则会打开登录屏幕。所以请登录谷歌。这样,Google Apps 脚本的脚本编辑器就打开了。
请将以下脚本复制并粘贴到创建的 Google Apps 脚本项目中并保存。该脚本用于 Web 应用程序。
https://sheets.googleapis.com/v4/spreadsheets/{MYSHEET}/values/Sheet1!A1:D5?valueRenderOption=UNFORMATTED_VALUE
Run Code Online (Sandbox Code Playgroud)
详细信息可以看官方文档。
https://script.google.com/macros/s/###/exec。
为了测试此 Web 应用程序,请通过将其替换为您的 Web 应用程序 URL 来访问以下端点。
https://script.google.com/macros/s/###/exec?id=1pSQ4W0GV85Z-6QrUx0UxVA3VCSHE3x93BT3c-R6mHZk&range=Form%20Responses%201!A2:A3
Run Code Online (Sandbox Code Playgroud)
当浏览器访问该端点时,会得到以下结果。
[
[4366841337986600],
[4148099333259430]
]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1256 次 |
| 最近记录: |