angular xlsx-style,复杂表头样式导出

2024-08-28 18:12

本文主要是介绍angular xlsx-style,复杂表头样式导出,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 导出效果如下图所示:

下载xlsx

npm install xlsx

angular.json中引入:

 "node_modules/xlsx/dist/xlsx.full.min.js","src/assets/js/jszip.js","src/assets/js/xlsx.js"

 两个插件地址:

 上传中,等下更新

 typings.d.ts中需要加一下声明

ts代码:

export(){var wb = XLSX.utils.table_to_book(document.getElementById("tableDataId"), { sheet: "Sheet JS", raw: true });let range = XLSX.utils.decode_range(wb.Sheets['Sheet JS']['!ref']);// let borderStyle = {//   top: {//     style: "thin",//     color: { rgb: "000000" }//   },//   bottom: {//     style: "thin",//     color: { rgb: "000000" }//   },//   left: {//     style: "thin",//     color: { rgb: "000000" }//   },//   right: {//     style: "thin",//     color: { rgb: "000000" }//   }// }// wb.Sheets['Sheet JS']['!rows'] = [{ hpx: 150 }, { hpx: 50 }, { hpx: 50 }, { hpx: 50 }, { hpx: 50 }, { hpx: 50 }]const numColumns = 100;wb.Sheets['Sheet JS']['!cols'] = Array(numColumns).fill({ wpx: 160 });wb.Sheets['Sheet JS']["!merges"].forEach((item: any) => {if (item.e.r == item.s.r && item.e.c != item.s.c) {// 列合并let R = item.s.r;let countLength = item.e.c - item.s.c;for (let i = item.s.c; i <= item.e.c; i++) {let cell = { c: i, r: R };let cell_ref = XLSX.utils.encode_cell(cell);if (!wb.Sheets['Sheet JS'][cell_ref]) {wb.Sheets['Sheet JS'][cell_ref] = { t: "s", v: "" };}}} else if (item.e.c == item.s.c && item.e.r != item.s.r) {// 行合并let C = item.s.c;let countLength = item.e.r - item.s.r;for (let i = item.s.r; i <= item.e.r; i++) {let cell = { c: C, r: i };let cell_ref = XLSX.utils.encode_cell(cell);if (!wb.Sheets['Sheet JS'][cell_ref]) {wb.Sheets['Sheet JS'][cell_ref] = { t: "s", v: "" };}}}})console.log();for (let C = range.s.c; C <= range.e.c; ++C) {for (let R = range.s.r; R <= range.e.r; ++R) {let cell = { c: C, r: R };let cell_ref = XLSX.utils.encode_cell(cell);console.log(wb.Sheets['Sheet JS'][cell_ref]);wb.Sheets['Sheet JS'][cell_ref].s = {alignment: {horizontal: 'center', // 水平居中vertical: 'center', // 垂直居中wrapText: 1, // 文本自动换行},font: {name: "黑体",sz: "15",bold: true},// border: borderStyle,};}}var wopts = { bookType: 'xlsx', bookSST: false, type: 'binary' };var wbout = XLSXX.write(wb, wopts);// 使用xlsx-style 写入saveAs(new Blob([s2ab(wbout)], { type: "" }), this.selectTitle[this.selectTitle.length-1]+".xlsx")function s2ab(s: any) {var buf = new ArrayBuffer(s.length);var view = new Uint8Array(buf);for (var i = 0; i != s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;return buf;}
}

html:

<table id="tableDataId"><tr></tr>
<table>

这篇关于angular xlsx-style,复杂表头样式导出的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1115515

相关文章

Java实现Excel与HTML互转

《Java实现Excel与HTML互转》Excel是一种电子表格格式,而HTM则是一种用于创建网页的标记语言,虽然两者在用途上存在差异,但有时我们需要将数据从一种格式转换为另一种格式,下面我们就来看看... Excel是一种电子表格格式,广泛用于数据处理和分析,而HTM则是一种用于创建网页的标记语言。虽然两

Python实现将实体类列表数据导出到Excel文件

《Python实现将实体类列表数据导出到Excel文件》在数据处理和报告生成中,将实体类的列表数据导出到Excel文件是一项常见任务,Python提供了多种库来实现这一目标,下面就来跟随小编一起学习一... 目录一、环境准备二、定义实体类三、创建实体类列表四、将实体类列表转换为DataFrame五、导出Da

Python数据处理之导入导出Excel数据方式

《Python数据处理之导入导出Excel数据方式》Python是Excel数据处理的绝佳工具,通过Pandas和Openpyxl等库可以实现数据的导入、导出和自动化处理,从基础的数据读取和清洗到复杂... 目录python导入导出Excel数据开启数据之旅:为什么Python是Excel数据处理的最佳拍档

vue解决子组件样式覆盖问题scoped deep

《vue解决子组件样式覆盖问题scopeddeep》文章主要介绍了在Vue项目中处理全局样式和局部样式的方法,包括使用scoped属性和深度选择器(/deep/)来覆盖子组件的样式,作者建议所有组件... 目录前言scoped分析deep分析使用总结所有组件必须加scoped父组件覆盖子组件使用deep前言

VUE动态绑定class类的三种常用方式及适用场景详解

《VUE动态绑定class类的三种常用方式及适用场景详解》文章介绍了在实际开发中动态绑定class的三种常见情况及其解决方案,包括根据不同的返回值渲染不同的class样式、给模块添加基础样式以及根据设... 目录前言1.动态选择class样式(对象添加:情景一)2.动态添加一个class样式(字符串添加:情

Oracle Expdp按条件导出指定表数据的方法实例

《OracleExpdp按条件导出指定表数据的方法实例》:本文主要介绍Oracle的expdp数据泵方式导出特定机构和时间范围的数据,并通过parfile文件进行条件限制和配置,文中通过代码介绍... 目录1.场景描述 2.方案分析3.实验验证 3.1 parfile文件3.2 expdp命令导出4.总结

React实现原生APP切换效果

《React实现原生APP切换效果》最近需要使用Hybrid的方式开发一个APP,交互和原生APP相似并且需要IM通信,本文给大家介绍了使用React实现原生APP切换效果,文中通过代码示例讲解的非常... 目录背景需求概览技术栈实现步骤根据 react-router-dom 文档配置好路由添加过渡动画使用

java poi实现Excel多级表头导出方式(多级表头,复杂表头)

《javapoi实现Excel多级表头导出方式(多级表头,复杂表头)》文章介绍了使用javapoi库实现Excel多级表头导出的方法,通过主代码、合并单元格、设置表头单元格宽度、填充数据、web下载... 目录Java poi实现Excel多级表头导出(多级表头,复杂表头)上代码1.主代码2.合并单元格3.

使用Vue.js报错:ReferenceError: “Vue is not defined“ 的原因与解决方案

《使用Vue.js报错:ReferenceError:“Vueisnotdefined“的原因与解决方案》在前端开发中,ReferenceError:Vueisnotdefined是一个常见... 目录一、错误描述二、错误成因分析三、解决方案1. 检查 vue.js 的引入方式2. 验证 npm 安装3.

vue如何监听对象或者数组某个属性的变化详解

《vue如何监听对象或者数组某个属性的变化详解》这篇文章主要给大家介绍了关于vue如何监听对象或者数组某个属性的变化,在Vue.js中可以通过watch监听属性变化并动态修改其他属性的值,watch通... 目录前言用watch监听深度监听使用计算属性watch和计算属性的区别在vue 3中使用watchE