Vue实现word导入
Vue 中实现 Word 文件导入的方法
使用文件上传组件
在 Vue 中可以通过 <input type="file"> 或第三方组件(如 Element UI 的 Upload 组件)实现文件上传功能。用户选择 Word 文件后,通过事件处理获取文件对象。
<template>
<input type="file" @change="handleFileUpload" accept=".doc,.docx" />
</template>
<script>
export default {
methods: {
handleFileUpload(event) {
const file = event.target.files[0];
if (file) {
this.parseWordFile(file);
}
}
}
};
</script>
使用 mammoth.js 解析 Word 文件
mammoth.js 是一个专门用于解析 .docx 文件的 JavaScript 库。它能将 Word 文档转换为 HTML 或其他格式。
安装 mammoth.js:
npm install mammoth
在 Vue 中使用:

import mammoth from "mammoth";
methods: {
parseWordFile(file) {
const reader = new FileReader();
reader.onload = (event) => {
const arrayBuffer = event.target.result;
mammoth.extractRawText({ arrayBuffer })
.then(result => {
console.log(result.value); // 获取纯文本内容
})
.catch(error => {
console.error(error);
});
};
reader.readAsArrayBuffer(file);
}
}
使用 docx-parser 解析 .doc 文件
对于旧版 .doc 文件,可以使用 docx-parser 或其他兼容库。注意 .doc 文件的解析兼容性较差,可能需要后端支持。
npm install docx-parser
示例代码:

import { parse } from "docx-parser";
methods: {
parseDocFile(file) {
parse(file).then(data => {
console.log(data); // 获取解析后的内容
});
}
}
后端解析方案
如果前端解析存在兼容性问题,可以将文件发送到后端处理。例如通过 Node.js + officeparser 等工具。
前端上传代码:
const formData = new FormData();
formData.append("wordFile", file);
axios.post("/api/parse-word", formData)
.then(response => {
console.log(response.data);
});
显示解析内容
将解析后的内容显示在页面中,可以通过 v-html 或自定义组件实现。
<template>
<div v-html="parsedContent"></div>
</template>
<script>
export default {
data() {
return {
parsedContent: ""
};
}
};
</script>






