layui table 使用 XLSX.utils 导出设置宽度
时间: 2024-05-04 09:18:46 浏览: 110
xlsx.full.js,JS生成excle文件,可设置行高
在使用 XLSX.utils 导出表格时,可以使用 `ws` 对象的 `column` 属性来设置每一列的宽度。
具体操作如下:
1. 在导出表格之前,需要先获取到表格的列信息,可以使用 layui 的表格 API 中的 `getCols` 方法来获取:
```javascript
var tableCols = table.cache.tableId;
```
2. 然后在导出表格的代码中,使用 `XLSX.utils.json_to_sheet` 方法将表格数据转换成 sheet 对象,然后遍历表格列信息,设置每一列的宽度:
```javascript
var ws = XLSX.utils.json_to_sheet(data);
tableCols.forEach(function (col, index) {
var width = col.width || 100; // 默认列宽为 100
ws['!cols'] = ws['!cols'] || [];
ws['!cols'][index] = { wpx: width };
});
```
完整的代码示例:
```javascript
var tableCols = table.cache.tableId; // 获取表格列信息
// 导出表格
var wb = XLSX.utils.book_new();
var ws = XLSX.utils.json_to_sheet(data);
// 设置每一列的宽度
tableCols.forEach(function (col, index) {
var width = col.width || 100; // 默认列宽为 100
ws['!cols'] = ws['!cols'] || [];
ws['!cols'][index] = { wpx: width };
});
XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');
XLSX.writeFile(wb, 'table.xlsx');
```
阅读全文