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 @@
Skip to content

404

PAGE NOT FOUND

But if you don't change your direction, and if you keep looking, you may end up where you are heading.
- diff --git a/examples/docs/assets/config_index.md.5eca9ef5.js b/examples/docs/assets/config_index.md.a6d3b89c.js similarity index 92% rename from examples/docs/assets/config_index.md.5eca9ef5.js rename to examples/docs/assets/config_index.md.a6d3b89c.js index b22525e..78e51e7 100644 --- a/examples/docs/assets/config_index.md.5eca9ef5.js +++ b/examples/docs/assets/config_index.md.a6d3b89c.js @@ -1,5 +1,6 @@ -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

文档地址,文件在CDN或服务器上的地址,或者是通过FileReader读取的文件ArrayBuffer或者Blob格式。

request-options

如果属性src是个文件地址,组件内部会通过window.fetch进行请求,对应window.fetch的请求参数,可以用来设置header等请求信息。

options

预览需要的一些特殊配置,不同预览组件可配置项各不相同。

excel相关的配置,目前支持配置项很少。

minColLength: excel最少渲染多少列,如果想实现xlsx文件内容有几列,就渲染几列,可以将此值设置为0.

widthOffset:在默认渲染的列表宽度上再加10px宽

heightOffset:在默认渲染的列表高度上再加10px高

transformData:在预览之前可以通过transformData对即将渲染数据及样式进行修改

javascript
{
-  "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}; +}

staticFileUrl [pdf特有属性]

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 @@
Skip to content
跳转到

事件

rendered

渲染完成事件,可以在该事件中处理关闭loading操作等。

首次渲染完成及每次src变化之后渲染完成都会触发该事件。

error

失败事件,各种失败都会触发该事件,包括网络请求失败,渲染失败等

- 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 @@ - + -
Skip to content
跳转到

属性

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.

widthOffset:在默认渲染的列表宽度上再加10px宽

heightOffset:在默认渲染的列表高度上再加10px高

transformData:在预览之前可以通过transformData对即将渲染数据及样式进行修改

javascript
{
-  "minColLength": 20,
+    
Skip to content
跳转到

属性

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){
@@ -42,7 +43,7 @@
     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/

- diff --git a/examples/docs/guide/contact.html b/examples/docs/guide/contact.html index 84e4cc9..fe5affc 100644 --- a/examples/docs/guide/contact.html +++ b/examples/docs/guide/contact.html @@ -15,7 +15,7 @@
Skip to content
跳转到

联系我

提Issue

如果您遇到了问题,欢迎提Issue,同时请您尽可能详细的描述您遇到的问题,包括不限于

  • 您使用的是哪个库: @vue-office/docx、@vue-office/excel、@vue-office/pdf
  • 您使用的环境:APP or Web,PC or 移动端,如果是浏览器兼容问题,请提供您的浏览器版本
  • 如果有错误,请粘贴详细的报错信息

详细的描述有助于我尽快定位问题,因为平时工作很忙,时间很有限,感谢理解

赞助和微信交流

如果该项目确实帮助到了您,欢迎赞助,以鼓励我将更多的休息时间,投入到该项目的优化中,也欢迎赞助后添加微信交流:_hit757_

赞助二维码

跪求一赞

如果您觉得该项目帮助了您,还请伸出贵手帮忙点赞支持,万分感谢~~

- diff --git a/examples/docs/guide/faq.html b/examples/docs/guide/faq.html index fe13878..0892a2f 100644 --- a/examples/docs/guide/faq.html +++ b/examples/docs/guide/faq.html @@ -40,7 +40,7 @@ "vue": "2.6.10", "vue-template-compiler": "2.6.10" }

删除 package-lock.json 文件 和 node_modules中的全部包。

重新安装所有依赖,然后运行查看效果。

- diff --git a/examples/docs/guide/index.html b/examples/docs/guide/index.html index e54c234..c9b045b 100644 --- a/examples/docs/guide/index.html +++ b/examples/docs/guide/index.html @@ -128,7 +128,7 @@ } } </script> - diff --git a/examples/docs/guide/js-preview.html b/examples/docs/guide/js-preview.html index 66f39a9..8eb509c 100644 --- a/examples/docs/guide/js-preview.html +++ b/examples/docs/guide/js-preview.html @@ -78,7 +78,7 @@ CMapReaderFactory?: Object; useSystemFonts?: boolean; }

preview方法

调用preview方法进行文件的预览。

preview方法接收参数支持三种: 文件url地址、文件ArrayBuffer格式数据、文件blob格式。

ts
preview: (src: string | ArrayBuffer | Blob) => Promise<any>

url格式适合有文件静态地址的情况,ArrayBuffer格式适合文件上传前的预览。

save方法

调用save进行文件下载,参数名为下载的文件名称,可不传。

ts
save: (fileName?: string) => void;

destroy方法

卸载方法,可以在组件销毁前调用预览对象的卸载方法,避免长期使用造成内存泄露。

如果该项目帮助了您,还请您不吝点赞

- diff --git a/examples/docs/guide/preview-docx.html b/examples/docs/guide/preview-docx.html index 950a0eb..4270134 100644 --- a/examples/docs/guide/preview-docx.html +++ b/examples/docs/guide/preview-docx.html @@ -121,7 +121,7 @@ } } </script> - diff --git a/examples/docs/guide/preview-pdf.html b/examples/docs/guide/preview-pdf.html index cbe182d..9fa682c 100644 --- a/examples/docs/guide/preview-pdf.html +++ b/examples/docs/guide/preview-pdf.html @@ -45,7 +45,7 @@ } } </script>

上传文件预览

和docx的上传文件预览一样,获取文件的ArrayBuffer,传给组件的src属性。

- diff --git a/examples/docs/guide/preview-xlsx.html b/examples/docs/guide/preview-xlsx.html index 0902a26..ef9daff 100644 --- a/examples/docs/guide/preview-xlsx.html +++ b/examples/docs/guide/preview-xlsx.html @@ -48,7 +48,7 @@ } } </script>

上传文件预览

和docx的上传文件预览一样,获取文件的ArrayBuffer,传给组件的src属性。

- diff --git a/examples/docs/hashmap.json b/examples/docs/hashmap.json index b505b39..03695bf 100644 --- a/examples/docs/hashmap.json +++ b/examples/docs/hashmap.json @@ -1 +1 @@ -{"config_event.md":"cbedfdd0","guide_preview-xlsx.md":"0de0ac4e","guide_preview-docx.md":"747caaea","index.md":"2dfe7e9d","guide_contact.md":"10c84e73","guide_preview-pdf.md":"9bd426ea","guide_index.md":"59f780b1","config_index.md":"5eca9ef5","guide_js-preview.md":"d8c75dcf","guide_faq.md":"fc7d1e4f"} +{"config_index.md":"a6d3b89c","guide_preview-pdf.md":"9bd426ea","guide_preview-xlsx.md":"0de0ac4e","guide_preview-docx.md":"747caaea","guide_contact.md":"10c84e73","guide_js-preview.md":"d8c75dcf","config_event.md":"cbedfdd0","index.md":"2dfe7e9d","guide_index.md":"59f780b1","guide_faq.md":"fc7d1e4f"} diff --git a/examples/docs/index.html b/examples/docs/index.html index ea791c5..7e2c483 100644 --- a/examples/docs/index.html +++ b/examples/docs/index.html @@ -15,7 +15,7 @@
Skip to content

vue-office

更易用的文件预览

支持docx、xlsx、pdf文件预览

一站式

提供docx、xlsx、pdf 3种文档的在线预览方案

使用简单

只需提供文档的src即可完成文档预览,支持远程地址、ArrayBuffer、Blob多种格式

支持样式

不仅能预览内容,也支持文档样式,最大限度还原office文件内容

-