我想导出我生成的表 表格单元格已合并 但是当我使用 downloadFile 插件导出文件时 文件可以成功下载,但是单元格没有合并,成为原始数据 为什么?
这是我的代码
const container = document.getElementById('table-container');
let table = new Handsontable(container, {
data: [
['序号 ', '脱模角度 ', ' 纹理深度(μm) ', ' 纹理深度(μm) ', ' 纹理深度(μm) ', ' 纹理深度(μm) '],
['序号 ', '脱模角度 ', '皮革纹 ', '几何纹 ', '梨地纹 ', '其他常用纹理 '],
['1 ', '1° ', '13 ', '10 ', '15 ', '13 '],
['2 ', '2° ', '26 ', '20 ', '20 ', '26 '],
['3 ', '3° ', '39 ', '30 ', '30 ', '39 '],
['4 ', '4° ', '52 ', '40 ', '40 ', '52 '],
['5 ', '5° ', '65 ', '50 ', '50 ', '65 '],
['6 ', '6° ', '78 ', '60 ', '60 ', '78 '],
['7 ', '7° ', '91 ', '70 ', '70 ', '91 '],
['8 ', '8° ', '104 ', '80 ', '80 ', '104 '],
['9 ', '9° ', '117 ', '90 ', '90 ', '117 '],
['10 ', '10° ', '130 ', '100 ', '100 ', '130 '],
['11 ', '11° ', '143 ', '110 ', '—— ', '143 '],
['12 ', '12° ', '156 ', '120 ', '—— ', '156 '],
['13 ', '13° ', '—— ', '130 ', '—— ', '—— '],
['14 ', '14° ', '—— ', '140 ', '—— ', '—— '],
['15 ', '15° ', '—— ', '150 ', '—— ', '—— '],
],
mergeCells: [
{'row': 0, 'col': 0, 'rowspan': 2, 'colspan': 1},
{'row': 0, 'col': 1, 'rowspan': 2, 'colspan': 1},
{'row': 0, 'col': 2, 'rowspan': 1, 'colspan': 4}
],
rowHeaders: true,
colHeaders: true,
height: 450,
className: 'htCenter htMiddle',
stretchH: 'all',
licenseKey: 'non-commercial-and-evaluation', // for non-commercial use only
});
})
const exportPlugin = table.getPlugin('exportFile');
// export to downloadable file (named: MyFile.csv)
exportPlugin.downloadFile('csv', {
bom: true,
columnDelimiter: ',',
columnHeaders: false,
rowHeaders:false,
exportHiddenColumns: true,
exportHiddenRows: true,
fileExtension: 'csv',
filename: 'Excel-[YYYY]-[MM]-[DD]',
mimeType: 'text/csv',
rowDelimiter: '\r\n',
});
Handsontable 的
ExportToFile
插件仅以 CSV 文件格式导出 RAW 数据。这意味着不附加格式、注释和样式。合并是单元格格式的一种形式。如果您想要合并单元格,我宁愿在 Github 上的 MIT 项目中查找 HTML > XLSX 转换。 Handsontable 对 DOM 中的元素使用 COLSPAN/ROWSPAN,因此它应该可以正常工作。您只需要记住使用 renderAllRows: true
和 viewportColumnRenderingOffset: instance.countCols()
将所有元素渲染到 DOM。