Javascript 从谷歌电子表格创建表格:如何操作数据?
目前,我正在做一个项目,从Google表单/电子表格中提取数据,并使用JQuery/DataTables将其显示在网站上。我得到了帮助,让数据出现在网站上,但我遇到了一个新问题 上一个问题: 在Google上,我有一个表单,可以输出八列:Javascript 从谷歌电子表格创建表格:如何操作数据?,javascript,datatables,google-sheets,Javascript,Datatables,Google Sheets,目前,我正在做一个项目,从Google表单/电子表格中提取数据,并使用JQuery/DataTables将其显示在网站上。我得到了帮助,让数据出现在网站上,但我遇到了一个新问题 上一个问题: 在Google上,我有一个表单,可以输出八列: 时间戳 头衔 作者 类型 网址 专题 国家(s) 泰格斯 其中,我不需要显示时间戳,如果URL存在,我希望标题链接到URL。由于我对Javascript或DataTables不太熟练,因此我制作了第二张表格,并试图将其简化为以下六张: 标题(当前格式为)
- 时间戳
- 头衔
- 作者
- 类型
- 网址
- 专题
- 国家(s)
- 泰格斯
- 标题(当前格式为
),在表格中可见。有关当前情况,请参见标题“实际输出”下的表格;“目标表格外观”下的表格是我的目标- 电流输出:
- 表创建脚本:
作为链接提供,尽管它被放在Google电子表格单元格中?或者,有没有一种方法可以编辑当前脚本以a)忽略时间戳列,b)使标题输出成为从URL列到URL的链接(带有适当的条件)
编辑:我现在关注的是链接;我有一个时间戳的解决方案,它涉及到将数据复制到一个新的电子表格(因为表单严格要求复制/粘贴信息)。当前的问题是让每个条目都有一个链接,假设URL在第一列,标题在第二列。更多信息,请阅读Mogsdad的回答和我的第一条评论
解决方案:首先,我要感谢莫格斯达德的灵感和洞察力的“火花”,使我朝着解决方案的正确方向前进。为了解释总体思路,我不想在目标网站上显示谷歌电子表格中的一列(URL),而是使用它的内容在另一列(标题)中创建链接。然后,一旦创建了表,就使用DataTables对其进行格式化。表中的所有单元格都必须包含某些内容,因此如果单元格为空,则必须用“无”填充函数cellEntries(json、dest、divId){ var table=document.createElement('table'); table.setAttribute(“id”,divId+“table”);//从名称中将id分配给。 var thead=document.createElement('thead'); var tbody=document.createElement('tbody'); var-thr; var-tr; var entries=json.feed.entry; var cols=json.feed.gs$colCount.$t;//工作表中的列数。 var link;//行URL的临时持有者。
对于
中此位周围的(var i=0;i):tablescript.js
您可以通过以下操作添加超链接:var th = document.createElement('th'); th.appendChild(document.createTextNode(entry.content.$t)); >>>> thr.appendChild(th)
th.setAttribute('href',<link>);
多亏了这一点,这确实让我走上了正确的方向,但我有两个问题。首先,表格的单元格是否可以有
属性?我编辑了我的单元格,在其中使用href
元素,因为我对前者没有什么运气。其次,我希望将其应用于列表中的所有条目,而不仅仅是标题,因此above代码结构应该放在a
/td
部分。我的问题是,我似乎无法理解在该部分中执行此操作的逻辑。有什么见解吗?要找到替代方法,请尝试查看,或者。有很多带有超链接的单元格示例,所以应该只是找到正确的链接我想让它为你工作。tr
th.setAttribute('href',<link>);
var hlink = null; // Temporary storage for hyperlink for (var i=0; i <cols; i++) { var entry = json.feed.entry[i]; if (entry.gs$cell.col == '1') { if (thr != null) { tbody.appendChild(thr); } thr = document.createElement('tr'); } // Element 0 assumed to have hyperlink if (i == 0) { hlink = entry.content.$t; } else { var th = document.createElement('th'); // If we have an hlink, set the href attribute. if (hlink !== null) { th.setAttribute('href',hlink); hlink = null; } th.appendChild(document.createTextNode(entry.content.$t)); thr.appendChild(th); } }