一站式
提供docx、xlsx、pdf 3种文档的在线预览方案
diff --git a/core/packages/js-excel/index.d.ts b/core/packages/js-excel/index.d.ts index 651aa1f..1a2e942 100644 --- a/core/packages/js-excel/index.d.ts +++ b/core/packages/js-excel/index.d.ts @@ -1,5 +1,6 @@ export interface Options { minColLength?: number; + minRowLength?: number; showContextmenu?: boolean; } diff --git a/core/packages/js-excel/package.json b/core/packages/js-excel/package.json index 9db1ef2..548a394 100644 --- a/core/packages/js-excel/package.json +++ b/core/packages/js-excel/package.json @@ -1,7 +1,7 @@ { "name": "@js-preview/excel", "type" :"module", - "version": "1.4.6", + "version": "1.4.7", "description": "", "main": "lib/index.js", "files": [ diff --git a/core/packages/vue-excel/index.d.ts b/core/packages/vue-excel/index.d.ts index 282ab96..db7ba58 100644 --- a/core/packages/vue-excel/index.d.ts +++ b/core/packages/vue-excel/index.d.ts @@ -1,7 +1,12 @@ +export interface Options { + minColLength?: number; + minRowLength?: number; + showContextmenu?: boolean; +} declare const VueOfficeExcel: { install?: (vue: any) => void; src: string|ArrayBuffer|Blob; requestOptions?: any; - options?: any + options?: Options; }; export default VueOfficeExcel; \ No newline at end of file diff --git a/core/packages/vue-excel/package.json b/core/packages/vue-excel/package.json index d00d84a..0596c76 100644 --- a/core/packages/vue-excel/package.json +++ b/core/packages/vue-excel/package.json @@ -1,6 +1,6 @@ { "name": "@vue-office/excel", - "version": "1.4.6", + "version": "1.4.7", "description": "", "main": "lib/index.js", "files": [ diff --git a/core/packages/vue-excel/src/excel.js b/core/packages/vue-excel/src/excel.js index 90ec50a..d838a09 100644 --- a/core/packages/vue-excel/src/excel.js +++ b/core/packages/vue-excel/src/excel.js @@ -353,7 +353,7 @@ function getStyle(cell){ export function transferExcelToSpreadSheet(workbook, options){ let workbookData = []; - console.log(workbook, 'workbook'); + // console.log(workbook, 'workbook'); let sheets = []; workbook.eachSheet((sheet) => { sheets.push(sheet); @@ -407,7 +407,9 @@ export function transferExcelToSpreadSheet(workbook, options){ } let tempRowsKeys = Object.keys(sheetData.rows); - sheetData.rows.len = Math.max(tempRowsKeys[tempRowsKeys.length-1] + 1, 100); + + sheetData.rows.len = Math.max(+tempRowsKeys[tempRowsKeys.length-1] + 1, + options.hasOwnProperty('minRowLength') ? options.minRowLength : 100); workbookData.push(sheetData); }); // console.log(workbookData, 'workbookData'); diff --git a/core/packages/vue-excel/src/main.vue b/core/packages/vue-excel/src/main.vue index ea5a7e1..c409dd1 100644 --- a/core/packages/vue-excel/src/main.vue +++ b/core/packages/vue-excel/src/main.vue @@ -27,7 +27,6 @@ export default defineComponent({ }, emits: ['rendered', 'error'], setup(props, {emit}) { - console.log(props.options.transformData) const wrapperRef = ref(null); const rootRef = ref(null); let workbookDataSource = { diff --git a/docs/config/index.md b/docs/config/index.md index 27b07c9..18d4747 100644 --- a/docs/config/index.md +++ b/docs/config/index.md @@ -24,6 +24,8 @@ excel相关的配置,目前支持配置项很少。 minColLength: excel最少渲染多少列,如果想实现xlsx文件内容有几列,就渲染几列,可以将此值设置为0. +minRowLength: excel最少渲染多少行,如果想实现根据xlsx实际函数渲染,可以将此值设置为0. + widthOffset:在默认渲染的列表宽度上再加10px宽 heightOffset:在默认渲染的列表高度上再加10px高 @@ -32,7 +34,8 @@ transformData:在预览之前可以通过transformData对即将渲染数据及 ```javascript { - "minColLength": 20, + "minColLength": 20, + "minRowLength": 100, "widthOffset": 0, //在默认渲染的列表宽度上再加10px宽 "heightOffset": 0, //在默认渲染的列表高度上再加10px高 "transformData": function (workbookData){ diff --git a/examples/docs/404.html b/examples/docs/404.html index c140b8a..4c54425 100644 --- a/examples/docs/404.html +++ b/examples/docs/404.html @@ -12,7 +12,7 @@
404
But if you don't change your direction, and if you keep looking, you may end up where you are heading.
文档地址,文件在CDN或服务器上的地址,或者是通过FileReader读取的文件ArrayBuffer或者Blob格式。
如果属性src是个文件地址,组件内部会通过window.fetch进行请求,对应window.fetch的请求参数,可以用来设置header等请求信息。
预览需要的一些特殊配置,不同预览组件可配置项各不相同。
excel相关的配置,目前支持配置项很少。
minColLength: excel最少渲染多少列,如果想实现xlsx文件内容有几列,就渲染几列,可以将此值设置为0.
widthOffset:在默认渲染的列表宽度上再加10px宽
heightOffset:在默认渲染的列表高度上再加10px高
transformData:在预览之前可以通过transformData对即将渲染数据及样式进行修改
{
- "minColLength": 20,
+import{_ as s,c as a,o as n,O as l}from"./chunks/framework.935eb42c.js";const d=JSON.parse('{"title":"属性","description":"","frontmatter":{},"headers":[],"relativePath":"config/index.md"}'),o={name:"config/index.md"},p=l(`属性
src
- 类型:String, ArrayBuffer, Blob
文档地址,文件在CDN或服务器上的地址,或者是通过FileReader读取的文件ArrayBuffer或者Blob格式。
request-options
- 类型:Object
如果属性src是个文件地址,组件内部会通过window.fetch进行请求,对应window.fetch的请求参数,可以用来设置header等请求信息。
options
- 类型: Object
预览需要的一些特殊配置,不同预览组件可配置项各不相同。
- excel预览
excel相关的配置,目前支持配置项很少。
minColLength: excel最少渲染多少列,如果想实现xlsx文件内容有几列,就渲染几列,可以将此值设置为0.
minRowLength: excel最少渲染多少行,如果想实现根据xlsx实际函数渲染,可以将此值设置为0.
widthOffset:在默认渲染的列表宽度上再加10px宽
heightOffset:在默认渲染的列表高度上再加10px高
transformData:在预览之前可以通过transformData对即将渲染数据及样式进行修改
javascript{
+ "minColLength": 20,
+ "minRowLength": 100,
"widthOffset": 0, //在默认渲染的列表宽度上再加10px宽
"heightOffset": 0, //在默认渲染的列表高度上再加10px高
"transformData": function (workbookData){
@@ -25,4 +26,4 @@ import{_ as s,c as a,o as n,O as l}from"./chunks/framework.935eb42c.js";const d=
httpHeaders: {}, //object, Basic authentication headers
password: '', //string, 加密pdf的密码
//更多配置参见 https://mozilla.github.io/pdf.js/api/draft/module-pdfjsLib.html
-}
staticFileUrl [pdf特有属性]
- 类型: String
pdf渲染时可能会请求一些bcmap文件,这些文件默认从 https://unpkg.com/pdfjs-dist@3.1.81/ 加载,但是可能存在网络不通问题,如果遇到这种问题,可以将这些文件放到自己静态目录,然后修改该属性,告诉组件去这里请求bcmap文件。
涉及的文件存放在当前github项目中examples/public/cmaps目录下,可将cmaps目录复制到你的静态服务目录下,然后修改staticFileUrl为cmaps文件夹对应的父地址,必须已http或https开头,如 http://yourdomain/static/
`,27),e=[p];function t(r,c,F,y,i,D){return n(),a("div",null,e)}const f=s(o,[["render",t]]);export{d as __pageData,f as default};
+}
pdf渲染时可能会请求一些bcmap文件,这些文件默认从 https://unpkg.com/pdfjs-dist@3.1.81/ 加载,但是可能存在网络不通问题,如果遇到这种问题,可以将这些文件放到自己静态目录,然后修改该属性,告诉组件去这里请求bcmap文件。
涉及的文件存放在当前github项目中examples/public/cmaps目录下,可将cmaps目录复制到你的静态服务目录下,然后修改staticFileUrl为cmaps文件夹对应的父地址,必须已http或https开头,如 http://yourdomain/static/
`,28),e=[p];function t(r,c,F,y,i,D){return n(),a("div",null,e)}const f=s(o,[["render",t]]);export{d as __pageData,f as default}; diff --git a/examples/docs/assets/config_index.md.5eca9ef5.lean.js b/examples/docs/assets/config_index.md.a6d3b89c.lean.js similarity index 81% rename from examples/docs/assets/config_index.md.5eca9ef5.lean.js rename to examples/docs/assets/config_index.md.a6d3b89c.lean.js index 1585f4a..4a26da3 100644 --- a/examples/docs/assets/config_index.md.5eca9ef5.lean.js +++ b/examples/docs/assets/config_index.md.a6d3b89c.lean.js @@ -1 +1 @@ -import{_ as s,c as a,o as n,O as l}from"./chunks/framework.935eb42c.js";const d=JSON.parse('{"title":"属性","description":"","frontmatter":{},"headers":[],"relativePath":"config/index.md"}'),o={name:"config/index.md"},p=l("",27),e=[p];function t(r,c,F,y,i,D){return n(),a("div",null,e)}const f=s(o,[["render",t]]);export{d as __pageData,f as default}; +import{_ as s,c as a,o as n,O as l}from"./chunks/framework.935eb42c.js";const d=JSON.parse('{"title":"属性","description":"","frontmatter":{},"headers":[],"relativePath":"config/index.md"}'),o={name:"config/index.md"},p=l("",28),e=[p];function t(r,c,F,y,i,D){return n(),a("div",null,e)}const f=s(o,[["render",t]]);export{d as __pageData,f as default}; diff --git a/examples/docs/config/event.html b/examples/docs/config/event.html index ce68938..fce46f3 100644 --- a/examples/docs/config/event.html +++ b/examples/docs/config/event.html @@ -15,7 +15,7 @@ - diff --git a/examples/docs/config/index.html b/examples/docs/config/index.html index 1601c92..7e63b80 100644 --- a/examples/docs/config/index.html +++ b/examples/docs/config/index.html @@ -10,12 +10,13 @@ - + - - -