@excel-report/vue

ExcelReport 前端预览组件的 Vue 3 适配层
Install
npm install @excel-report/vue
Latest Version:0.1.1
Vue:3
License:MIT
Last Updated:Oct 12, 2026
Links: Gitee  ·  npm
Maintainer: mengfly

@excel-report/vue

ExcelReport 前端预览组件的 Vue 3 适配层 —— 一个 <ExcelViewer> 组件, 把后端 WebJsonExporter 导出的结构化 JSON 像素级还原成 Excel 表格。

基于 @excel-report/core,本包已把它作为依赖带上。


安装

pnpm add @excel-report/vue
# 或 npm i @excel-report/vue

vue 是 peer 依赖(>=3.3),由你的项目提供。

样式需显式引入一次:

import '@excel-report/core/style.css';

快速开始

<script setup lang="ts">
import { ExcelViewer } from '@excel-report/vue';
import '@excel-report/core/style.css';
import type { WebExcel } from '@excel-report/core';

defineProps<{ data: WebExcel }>();
</script>

<template>
  <ExcelViewer
    :data="data"
    :height="600"
    theme="light"
    readonly
    @cell-click="(e) => console.log(e.row, e.col, e.value)"
    @parse-warning="(w) => console.warn('[excel]', w.code, w.message)"
  />
</template>

全局注册

import { createApp } from 'vue';
import ExcelReportViewer from '@excel-report/vue';
import '@excel-report/core/style.css';

createApp(App).use(ExcelReportViewer).mount('#app');

Props

与 React 版一一对应:

Prop 类型 默认 说明
data WebExcel | string — 后端导出对象或其 JSON 字符串
height / width number | string '100%' 容器尺寸
readonly boolean true 只读预览 / 可编辑
theme 'light' | 'dark' | Theme 'light' 主题
virtual boolean | VirtualOptions 'auto' 虚拟滚动开关与参数
columns ColumnOverride[] — 列级覆盖(宽度 / 隐藏 / 对齐)
chartRenderer ContentRenderer<'chart'> 内置 Canvas 图表渲染器,见下

事件

kebab-case:cell-click、cell-dblclick、cell-hover、cell-contextmenu、change、parse-warning

interface CellEvent {
  row: number;
  col: number;
  cell: ParsedCell;
  value: string | number | null;   // 文本值;非文本内容为 null
}

命令式滚动通过组件暴露的 scrollToRow / scrollToCell / getState(配合模板 ref 使用)。


图表

不装任何第三方库也能看到图表 —— core 内置零依赖 Canvas 渲染器(bar/line/area/scatter/pie)。

需要 tooltip / 缩放 / 动画时,加装 @excel-report/chart-echarts 并注入(整表替换,无法逐图切换):

pnpm add @excel-report/chart-echarts echarts
<script setup lang="ts">
import { echartsChartRenderer } from '@excel-report/chart-echarts';
</script>

<template>
  <ExcelViewer :data="data" :chart-renderer="echartsChartRenderer" />
</template>

从 @excel-report/core 再导出的内容

只装本包也能拿到解析层与核心类型:

import { parseWebExcel } from '@excel-report/vue';
import type { WebExcel, ParsedSheet, ParsedCell, ParseWarning, CellEvent, ThemeInput } from '@excel-report/vue';

相关包

包 说明
@excel-report/core 框架无关渲染内核(本包依赖)
@excel-report/react React 适配层
@excel-report/chart-echarts ECharts 图表渲染适配器(可选)

完整文档、数据契约与已知限制见 仓库 README。

License

MIT

Related Packages

gridjs-vue

A Vue.js wrapper component for Grid.js

65,492 99
@jspreadsheet/vue

Jspreadsheet is a lightweight, vanilla javascript plugin to create amazing web-b...

49,168
@jspreadsheet-ce/vue

Jspreadsheet CE is a lightweight, vanilla JavaScript plugin for creating powerfu...

29,243
@evansun/excel-designer

基于 Canvas + Vue 3 的在线 Excel 表格组件(单元格合并、行高列宽拖拽、公式引擎、...

1,691
holysheetjs

Extensible JavaScript spreadsheet

751 1

Version History

Version Released Vue License
0.1.1 >=3.3 MIT
0.1.0 >=3.3 MIT
Pre-releases (1)
Version Released License
0.0.0-stage