我想从google表生成一个D3.js树。
在我接下来的示例中,树是用csv生成的。因此,我已经用应用程序脚本从google表在我的google驱动器上生成了一个csv文件,现在,我尝试像下面这样加载它:
<script src="https://d3js.org/d3.v4.js"></script>
<script>
d3.csv('https://raw.githubusercontent.com/holtzy/D3-graph-gallery/master/DATA/data_hierarchy_1level.csv', function(data) {console.log(data)})
</script>
这里工作得很好,但是当我尝试从google驱动器加载我自己的csv时,我使用了以下代码:
<script src="https://d3js.org/d3.v4.js"></script>
<script>
d3.csv('https://drive.google.com/uc?id=1S9_KA87o_i7PjHILicXX21mlVeQc1jIA', function(data) {console.log(data)})
</script>
以下错误消息:
CORS策略阻止从源'i7PjHILicXX21mlVeQc1jIA‘访问i7PjHILicXX21mlVeQc1jIA 'https://n-mvggraccraz7qqhyhidnzi7cecuqlcodyfxsjjq-0lu-script.googleusercontent.com’:请求的资源上不存在“访问控制-允许-原产地”标题。
VM1794 d3.v4.js:11472 GET i7PjHILicXX21mlVeQc1jIA net::ERR_FAILED 303
我已经查过这两个文件了。他们看起来是一样的。我看不出哪里有错误。你能解释一下如何像任何带有URL的文件一样使用驱动器中的文件吗?
发布于 2022-06-13 01:16:11
在当前阶段,当使用webContentLink (如https://drive.google.com/uc?id=###&export=download
)的端点时,似乎会出现类似has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
的错误。为了避免这种情况,下面的模式如何?
模式1:
在此模式中,将使用API键。当使用API密钥时,可以删除此问题。您可以看到如何在这里中检索API密钥。在您的URL中,它如下所示。
https://www.googleapis.com/drive/v3/files/{fileId}?alt=media&key={APIkey}
当使用此URL时,它将成为以下脚本。
<script src="https://d3js.org/d3.v4.js"></script>
<script>
d3.csv('https://www.googleapis.com/drive/v3/files/{fileId}?alt=media&key={APIkey}', function(data) {console.log(data)})
</script>
模式2:
在此模式中,不使用API键。当我看到你的问题时,我注意到了In the exemple I followed, the tree is generated with a csv. So, I have generated with apps script a csv file on my google drive from a google sheet and now
。由此,我了解到您希望使用从电子表格中检索的CSV数据。如果我的理解是正确的,我认为你的目标可以直接使用电子表格。其流程如下。
https://docs.google.com/spreadsheets/d/e/2PACX-###/pubhtml
一样检索URL。- In this URL, the 1st sheet of the Spreadsheet is used. For example, when you want to use the other sheet, please modify it as follows using the sheet ID.
https://docs.google.com/spreadsheets/d/e/2PACX-###/pub?output=csv&gid={sheetId}
当您的脚本使用此URL时,如下所示。
<script src="https://d3js.org/d3.v4.js"></script>
<script>
d3.csv('https://docs.google.com/spreadsheets/d/e/2PACX-###/pub?output=csv', function(data) {console.log(data)})
</script>
https://stackoverflow.com/questions/72596818
复制相似问题