sa-file-previewer
集成VueOffice的文件预览组件
1,265
| Install | |
|---|---|
npm install sa-file-previewer |
|
| Latest Version: | 0.2.1 |
| Vue: | 3 |
| License: | MIT |
| Last Updated: | Oct 9, 2026 |
| Links: | npm |
Maintainer: lazerching
SaFilePreviewer
一款基于vue-office 和 vue-pdf-embed对 Vue3 项目中预览docx,xlsx,pdf文件的组件,支持 ts 代码提示,使用方式简单快捷。
安装
yarn add sa-file-previewer
使用
// main.ts
import SaFilePreviewer from "sa-file-previewer";
import "sa-file-previewer/dist/style.css";
...
app.use(SaFilePreviewer);
<!-- example.vue -->
<template>
<FilePreviewer :fileUrl="xxxx.docx"></FilePreviewer>
</template>
<script setup lang="ts">
import { FilePreviewer } from "sa-file-previewer";
<script>
说明
如果fileUrl的链接包含文件后缀格式,即只需传递fileUrl参数即可,组件会根据链接地址推断文件格式,若文件地址不包含文件后缀格式,需显式传递fileType参数(string),目前支持格式为:
docxxlsxpdf
当然,也可在业务侧先判断文件格式是否受支持,再做后续处理,例如:
<!-- example.vue -->
<template>
<el-upload
:on-preview="handleFilePreview"
...
</el-upload>
<FilePreviewer :fileUrl="xxxx.docx"></FilePreviewer>
</template>
<script setup lang="ts">
import { FilePreviewer, isFileSupported } from "sa-file-previewer";
const fileUrl = ref('xxx.xx')
const handleFilePreview = (file: UploadFile) => {
const fileType = file.url.split(".").pop();
if (isFileSupported(fileType)) {
fileUrl.value = file.url;
filePreviewDlg.openDialog();
} else {
ElMessage.error("不支持预览该格式文件");
}
};
<script>
组件提供了rendered和error事件,可以做业务的loding处理
参数接口
export interface BaseProps {
/**
* 文件url地址,需包含后缀
*/
fileUrl: string;
/**
* 文件类型,默认根据url获取
*/
fileType?: string;
/**
* 预览高度
*
* @default '800px'
*/
height?: string;
}
export interface ExcelProps extends BaseProps {
/**
* Excel预览配置
* 如果预览的文件是excel文件,则可以配置如下参数
*
* @example
* options:{
minColLength?: number; //excel最少渲染多少列,如果想实现xlsx文件内容有几列,就渲染几列,可以将此值设置为0.
showContextmenu?: boolean; //是否显示右键菜单,默认false
},
@reference https://501351981.github.io/vue-office/examples/docs/guide/js-preview.html
*/
excelOptions?: any;
}
export interface PdfOptions {
/**
* 是否使用iframe预览pdf文件,默认使用`vue-pdf-embed`
*
* @default false
*/
useIframe?: boolean;
}
export interface PdfProps extends BaseProps {
pdfOptions?: PdfOptions;
}
export interface Props extends BaseProps, ExcelProps, PdfProps {}
基于
Related Packages
@work-zhanguo/light-file-preview
Lightweight file preview component for Vue 3, Vue 2, and standalone usage / 轻量...
3,209
@icjia/pdf-search-index
Full-text PDF, DOCX, PPTX, XLSX search for static sites — Apache Solr for client...
3,487
0
@l1yp/file-viewer
In-browser file viewer for 60+ formats (office / archives / images / code / …) a...
1,383
0
Version History
| Version | Released | Vue | License |
|---|---|---|---|
| 0.2.1 | ^3.4.21 | MIT | |
| 0.2.0 | ^3.4.21 | MIT | |
| 0.1.43 | ^3.4.21 | MIT | |
| 0.1.42 | ^3.4.21 | MIT | |
| 0.1.41 | ^3.4.21 | MIT | |
| 0.1.40 | ^3.4.21 | MIT | |
| 0.1.39 | ^3.4.21 | MIT | |
| 0.1.38 | ^3.4.21 | MIT | |
| 0.1.37 | ^3.4.21 | MIT | |
| 0.1.36 | ^3.4.21 | MIT | |
| 0.1.35 | ^3.4.21 | MIT | |
| 0.1.34 | ^3.4.21 | MIT | |
| 0.1.33 | ^3.4.21 | MIT | |
| 0.1.32 | ^3.4.21 | MIT | |
| 0.1.31 | ^3.4.21 | MIT | |
| 0.1.30 | ^3.4.21 | MIT | |
| 0.1.29 | ^3.4.21 | MIT | |
| 0.1.28 | ^3.4.21 | MIT | |
| 0.1.27 | ^3.4.21 | MIT | |
| 0.1.26 | ^3.4.21 | MIT | |
| 0.1.25 | ^3.4.21 | MIT | |
| 0.1.24 | ^3.4.21 | MIT | |
| 0.1.23 | ^3.4.21 | MIT | |
| 0.1.22 | ^3.4.21 | MIT | |
| 0.1.21 | ^3.4.21 | MIT | |
| 0.1.20 | ^3.4.21 | MIT | |
| 0.1.19 | ^3.4.21 | MIT | |
| 0.1.18 | ^3.4.21 | MIT | |
| 0.1.17 | ^3.4.21 | MIT | |
| 0.1.16 | ^3.4.21 | MIT |
Showing the latest 30 of 45. See every release on npm