当前位置:   article > 正文

Markdown导出为 Excel文件 Vue3

Markdown导出为 Excel文件 Vue3

直接复制到单文件内即可使用

需要用到的插件

  • xlsx @0.17.5
  • marked  @14.0.0
  • file-saver @2.0.5
  • vue @3.4.29

直接SFC单文件内使用

  1. <script setup>
  2. import {reactive} from 'vue';
  3. import xlsx from 'xlsx';
  4. import {marked} from 'marked';
  5. import {saveAs} from 'file-saver';
  6. const markdownTable = reactive({
  7. "code": 0,
  8. "message": "ok",
  9. "data": [
  10. "| 镜号 | 景别 | 场景 | 拍摄技巧 | 画面 | 台词 | 画面备选 | 道具 | 备注 |\n| ---- | ------ | ------ | -------------- | ------------------------------------ | ------------------ | -------- | ------ | ---- |\n| 1 | 大远景 | 山峰 | 无人机俯拍 | 无人机从高空俯拍山峰,云雾缭绕 | 大型古装仙侠爱情 | | | |\n| 2 | 中景 | 山峰 | 镜头跟随 | 演员从山峰小路走下,表情凝重 | | | 吊威亚 | |\n| 3 | 近景 | 大海 | 镜头推进 | 女演员站在海边,风吹动衣裙 | | | | |\n| 4 | 全景 | 树林 | 镜头环绕 | 男演员在树林中舞剑,树叶飘落 | | | | |\n| 5 | 特写 | 树林 | 镜头聚焦 | 剑尖上的露珠 | | | | |\n| 6 | 中景 | 山峰 | 镜头快速切换 | 男女演员在山峰上相遇,眼神交流 | | | | |\n| 7 | 大远景 | 大海 | 镜头拉远 | 大海波涛汹涌,远处有船只 | | | | |\n| 8 | 近景 | 树林 | 镜头推进 | 女演员手抚树干,表情忧伤 | | | | |\n| 9 | 全景 | 山峰 | 镜头环绕 | 山峰上男女演员并肩站立,背景壮丽 | | | | |\n| 10 | 特写 | 大海 | 镜头聚焦 | 海浪拍打岩石,水花四溅 | | | | |\n| 11 | 中景 | 树林 | 镜头跟随 | 男演员在树林中追逐,表情紧张 | | | | |\n| 12 | 大远景 | 山峰 | 镜头拉远 | 山峰上男女演员相拥,背景云雾缭绕 | | | | |\n| 13 | 近景 | 大海 | 镜头推进 | 女演员站在海边,眼神望向远方 | | | | |\n| 14 | 全景 | 树林 | 镜头环绕 | 树林中男女演员相遇,背景树叶飘落 | | | | |\n| 15 | 特写 | 山峰 | 镜头聚焦 | 山峰上男女演员手牵手,表情坚定 | | | | |\n| 16 | 中景 | 大海 | 镜头跟随 | 大海中男女演员划船,表情平静 | | | | |\n| 17 | 大远景 | 树林 | 镜头拉远 | 树林中男女演员并肩行走,背景宁静 | | | | |\n| 18 | 近景 | 山峰 | 镜头推进 | 山峰上男女演员相视而笑,表情幸福 | | | | |\n| 19 | 全景 | 大海 | 镜头环绕 | 大海中男女演员拥抱,背景波涛汹涌 | | | | |\n| 20 | 特写 | 树林 | 镜头聚焦 | 树林中男女演员手牵手,表情坚定 | | | | |", "\"| 镜号 | 景别 | 场景 | 拍摄技巧 | 画面 | 台词 | 画面备选 | 道具 | 备注 |\n| ---- | ------ | ------ | -------------- | ------------------------------------ | ------------------ | -------- | ------ | ---- |\n| 1 | 大远景 | 山峰 | 无人机俯拍 | 无人机从高空俯拍山峰,云雾缭绕 | 大型古装仙侠爱情 | | | |\n| 2 | 中景 | 山峰 | 镜头跟随 | 演员从山峰小路走下,表情凝重 | | | 吊威亚 | |\n| 3 | 近景 | 大海 | 镜头推进 | 女演员站在海边,风吹动衣裙 | | | | |\n| 4 | 全景 | 树林 | 镜头环绕 | 男演员在树林中舞剑,树叶飘落 | | | | |\n| 5 | 特写 | 树林 | 镜头聚焦 | 剑尖上的露珠 | | | | |\n| 6 | 中景 | 山峰 | 镜头快速切换 | 男女演员在山峰上相遇,眼神交流 | | | | |\n| 7 | 大远景 | 大海 | 镜头拉远 | 大海波涛汹涌,远处有船只 | | | | |\n| 8 | 近景 | 树林 | 镜头推进 | 女演员手抚树干,表情忧伤 | | | | |\n| 9 | 全景 | 山峰 | 镜头环绕 | 山峰上男女演员并肩站立,背景壮丽 | | | | |\n| 10 | 特写 | 大海 | 镜头聚焦 | 海浪拍打岩石,水花四溅 | | | | |\n| 11 | 中景 | 树林 | 镜头跟随 | 男演员在树林中追逐,表情紧张 | | | | |\n| 12 | 大远景 | 山峰 | 镜头拉远 | 山峰上男女演员相拥,背景云雾缭绕 | | | | |\n| 13 | 近景 | 大海 | 镜头推进 | 女演员站在海边,眼神望向远方 | | | | |\n| 14 | 全景 | 树林 | 镜头环绕 | 树林中男女演员相遇,背景树叶飘落 | | | | |\n| 15 | 特写 | 山峰 | 镜头聚焦 | 山峰上男女演员手牵手,表情坚定 | | | | |\n| 16 | 中景 | 大海 | 镜头跟随 | 大海中男女演员划船,表情平静 | | | | |\n| 17 | 大远景 | 树林 | 镜头拉远 | 树林中男女演员并肩行走,背景宁静 | | | | |\n| 18 | 近景 | 山峰 | 镜头推进 | 山峰上男女演员相视而笑,表情幸福 | | | | |\n| 19 | 全景 | 大海 | 镜头环绕 | 大海中男女演员拥抱,背景波涛汹涌 | | | | |\n| 20 | 特写 | 树林 | 镜头聚焦 | 树林中男女演员手牵手,表情坚定 | | | | |", "\"| 镜号 | 景别 | 场景 | 拍摄技巧 | 画面 | 台词 | 画面备选 | 道具 | 备注 |\n| ---- | ------ | ------ | -------------- | ------------------------------------ | ------------------ | -------- | ------ | ---- |\n| 1 | 大远景 | 山峰 | 无人机俯拍 | 无人机从高空俯拍山峰,云雾缭绕 | 大型古装仙侠爱情 | | | |\n| 2 | 中景 | 山峰 | 镜头跟随 | 演员从山峰小路走下,表情凝重 | | | 吊威亚 | |\n| 3 | 近景 | 大海 | 镜头推进 | 女演员站在海边,风吹动衣裙 | | | | |\n| 4 | 全景 | 树林 | 镜头环绕 | 男演员在树林中舞剑,树叶飘落 | | | | |\n| 5 | 特写 | 树林 | 镜头聚焦 | 剑尖上的露珠 | | | | |\n| 6 | 中景 | 山峰 | 镜头快速切换 | 男女演员在山峰上相遇,眼神交流 | | | | |\n| 7 | 大远景 | 大海 | 镜头拉远 | 大海波涛汹涌,远处有船只 | | | | |\n| 8 | 近景 | 树林 | 镜头推进 | 女演员手抚树干,表情忧伤 | | | | |\n| 9 | 全景 | 山峰 | 镜头环绕 | 山峰上男女演员并肩站立,背景壮丽 | | | | |\n| 10 | 特写 | 大海 | 镜头聚焦 | 海浪拍打岩石,水花四溅 | | | | |\n| 11 | 中景 | 树林 | 镜头跟随 | 男演员在树林中追逐,表情紧张 | | | | |\n| 12 | 大远景 | 山峰 | 镜头拉远 | 山峰上男女演员相拥,背景云雾缭绕 | | | | |\n| 13 | 近景 | 大海 | 镜头推进 | 女演员站在海边,眼神望向远方 | | | | |\n| 14 | 全景 | 树林 | 镜头环绕 | 树林中男女演员相遇,背景树叶飘落 | | | | |\n| 15 | 特写 | 山峰 | 镜头聚焦 | 山峰上男女演员手牵手,表情坚定 | | | | |\n| 16 | 中景 | 大海 | 镜头跟随 | 大海中男女演员划船,表情平静 | | | | |\n| 17 | 大远景 | 树林 | 镜头拉远 | 树林中男女演员并肩行走,背景宁静 | | | | |\n| 18 | 近景 | 山峰 | 镜头推进 | 山峰上男女演员相视而笑,表情幸福 | | | | |\n| 19 | 全景 | 大海 | 镜头环绕 | 大海中男女演员拥抱,背景波涛汹涌 | | | | |\n| 20 | 特写 | 树林 | 镜头聚焦 | 树林中男女演员手牵手,表情坚定 | | | | |,"
  11. ]
  12. })
  13. const exportTable = () => {
  14. // 将Markdown转换为HTML
  15. const html = marked(markdownTable.data[0]);
  16. // 创建DOM元素来存放转换后的HTML
  17. const container = document.createElement('div');
  18. container.innerHTML = html;
  19. // 提取表格元素
  20. const table = container.querySelector('table');
  21. // 将表格转换为工作表
  22. const ws = xlsx.utils.table_to_sheet(table);
  23. // 创建工作簿并添加工作表
  24. const wb = xlsx.utils.book_new();
  25. xlsx.utils.book_append_sheet(wb, ws, 'Sheet1');
  26. // 生成Excel文件并导出
  27. const wbout = xlsx.write(wb, {bookType: 'xlsx', type: 'binary'});
  28. saveAs(new Blob([s2ab(wbout)], {type: 'application/octet-stream'}), 'table.xlsx');
  29. }
  30. // 将字符串转换为ArrayBuffer
  31. const s2ab = (s) => {
  32. const buf = new ArrayBuffer(s.length);
  33. const view = new Uint8Array(buf);
  34. for (let i = 0; i !== s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;
  35. return buf;
  36. }
  37. </script>
  38. <template>
  39. <div class="markdown">
  40. markdown
  41. <textarea v-model="markdownTable.data" rows="15" cols="15"></textarea>
  42. <button @click="exportTable">导出Excel</button>
  43. </div>
  44. </template>

效果图

  • 页面效果图
  • 导出后的excel效果图
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/984381
推荐阅读
相关标签
  

闽ICP备14008679号