Vue使用xlsx table_to_book 和xlsx-style 设置标题居中
时间: 2024-09-30 14:14:41 浏览: 46
Vue.js 结合 Exceljs 库可以方便地处理表格数据。`table_to_book` 是 `xlsx` 提供的一个方法,它用于将二维数组转换成 Excel 工作簿,而 `xlsx-style` 可能是指 Excel 样式的设置。
当你想要在生成的 Excel 表格中设置标题居中时,你可以这样做:
1. 首先,安装必要的库:
```bash
npm install xlsx lodash
```
2. 然后,在 Vue 中创建一个组件,例如:
```javascript
import XLSX from 'xlsx';
import _ from 'lodash';
export default {
methods: {
generateExcel(title, data) {
// 将数据转为工作簿对象
const workbook = XLSX.utils.table_to_book(data);
// 获取第一张表的工作表
const sheet_name_list = workbook.SheetNames;
const worksheet = workbook.Sheets[sheet_name_list[0]];
// 添加标题并设置居中对齐
let headerRow = Object.keys(worksheet['!ref']).map(key => key.split(':')[1]);
headerRow.forEach((titleItem, index) => {
worksheet[`!${headerRow[index]}: ${headerRow[index]}`] = { v: titleItem };
XLSX.utils._setAlignment(worksheet, `${headerRow[index]}`, { vert: 'center', horz: 'center' });
});
// 创建一个新的工作簿并添加工作表
const newWorkbook = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(newWorkbook, worksheet, title);
// 返回文件内容
return XLSX.writeFile(newWorkbook, 'output.xlsx');
}
}
}
```
在这个例子中,`title` 是表格的标题,`data` 是你要转换的数据数组。函数会创建一个新的 Excel 文件,并将标题居中对齐。
阅读全文