我有一张有问题的桌子,每个问题有一个或多个答案。表是以一种方式格式化的,每个问题都是一行,答案通过rowFormatter和subTable显示在下面。当我下载表格为pdf时,嵌套的数据不会被导出。如何导出嵌套数据?
数据结构(示例):
{
"questiontext": "text",
"timestamp": "2022-07-25T20:19:41.933Z",
"answers": [
{
"timestamp": "2022-07-25T20:19:41.933Z",
"answer": "answertext",
"picture":"pic1.jpg"
},
{
"timestamp": "2022-07-26T20:19:41.933Z",
"answer": "answertext",
"picture":"pic2.jpg"
},
{
"timestamp": "2022-07-27T20:19:41.933Z",
"answer": "answertext",
"picture":"pic3.jpg"
}
]
},代码:
var table = new Tabulator("#table", {
height: "805px",
layout: "fitColumns",
columns: [
{ title: "Time", field: "timestamp"},
{ title: "Question", field: "questiontext"},
],
rowFormatter: function (row) {
var holderEl = document.createElement("div");
var tableEl = document.createElement("div");
holderEl.appendChild(tableEl);
row.getElement().appendChild(holderEl);
var subTable = new Tabulator(tableEl, {
height:"1px",
layout:"fitColumns",
data:row.getData().answers,
columns:[
{title:"Answers", field:"answer"},
],
rowFormatter:function(row_inner){
var element = row.getElement(),
data = row_inner.getData(),
width = element.offsetWidth,
rowTable, cellContents;
rowTable = document.createElement("table")
rowTable.style.width = (width - 18) + "px";
rowTabletr = document.createElement("tr");
//add image on left of row
cellContents = "<td><img src='/pictures/" + data.picture + "'></td>";
//add row data on right hand side
cellContents += "<td><div><strong>Timestamp:</strong> " + data.timestamp + "</div><div><strong>Answer:</strong> " + data.answer +"</div></td>"
rowTabletr.innerHTML = cellContents;
rowTable.appendChild(rowTabletr);
//append newly formatted contents to the row
element.append(rowTable);
},
})
},
});表(示例)

出口(例如)

发布于 2022-08-04 12:31:16
我在寻找做同样的事情。
根据Github中的一些帖子,子表导出不是由Excel导出模块管理的。
关于嵌套表https://github.com/olifolkerd/tabulator/issues/2932的导出到Excel的规定
而且,这似乎是可能的,只有一个定制的下载程序。
用于XLS下载的库是SheetJS http://tabulator.info/docs/5.3/download#xlsx。
根据SheetJS文档,可以从JSON:http://tabulator.info/docs/5.3/download#json生成一个Excel文件
https://stackoverflow.com/questions/73122621
复制相似问题