想问一下除了插件有没有其他的方法,因为我想临时的用一下,不是长久的格式也没什么要求就读出来的数据导出来就行
还是有一些办法的,我举个例子,望采纳。
html
<table border="1">
<tr>
<th>姓名</th>
<th>年龄</th>
<th>地址</th>
</tr>
<tr>
<td>张三</td>
<td>25</td>
<td>北京</td>
</tr>
<!-- 更多行 -->
</table>
js
export default {
mounted() {
const table = this.$refs.table;
const rows = table.querySelectorAll('tr');
const csvData = [];
rows.forEach(row => {
const cols = row.querySelectorAll('td');
const rowData = [];
cols.forEach(col => {
rowData.push(col.innerText);
})
csvData.push(rowData.join(','));
})
// csvData即为表格数据,可以用于导出CSV文件
}
}
js
uni.saveFile({
tempFilePath: `${Date.now()}.csv`,
complete: (res) => {
const savedFilePath = res.savedFilePath;
uni.downloadFile({
url: savedFilePath,
success: (res) => {
console.log('下载成功');
}
})
}
});
可以试一下用xlsx插件
npm i xlsx
具体使用方法可以自己搜一下
环境配置:
在manifest.json中 APP SDK 配置中 勾选支付,配好appid
APP 模块权限中勾选支付。
最后,制作了一个自定义基座,把自己APP的证书上传。使用自定义基座运行实现了微信支付。
目前纯前端的方式在uniapp中导出表格的方案较为复杂,需要自己编写逻辑,主要分为以下几个步骤: 1. 将表格数据转换成csv格式的文本。 2. 创建一个a标签,将csv文本放入href属性中,并设置download属性为导出的文件名。 3. 触发a标签的click事件,从而下载导出的文件。
具体实现可以参考以下的代码片段:
<template>
<view>
<!-- 点击导出按钮触发导出事件 -->
<button @click="exportTable">导出表格</button>
</view>
</template>
<script>
export default {
methods: {
// 导出表格
exportTable() {
// 将表格数据转换成csv格式的文本
const tableData = [
['姓名', '年龄', '性别'],
['张三', '18', '男'],
['李四', '20', '女'],
['王五', '22', '男']
]
const csvContent = 'data:text/csv;charset=utf-8,' + tableData.map(row => row.join(',')).join('\n')
// 创建一个a标签,将csv文本放入href属性中,并设置download属性为导出的文件名
const link = document.createElement('a')
link.href = encodeURI(csvContent)
link.download = 'table.csv'
// 触发a标签的click事件,从而下载导出的文件
link.click()
}
}
}
</script>
需要注意的是,这种方式导出的文件只能是csv格式的文本,样式较为简单,如果需要自定义样式,可以考虑使用第三方插件或者后端生成并返回下载链接的方式。另外,需要注意浏览器的兼容性,部分浏览器可能存在兼容性问题,需要进行测试并做出兼容处理。