当前位置: 首页 > news >正文

纯前端js中使用sheetjs导出excel,并且合并标题

先定义变量----用的是Vue2 ,以下在vue的data:{}中定义--------------//空格占位符 ''headerTopTitle: ['患者信息', '', '', '', '', '', '', '', '', '入出院信息', '', '', '', '', '', '', '病案首页中的出院主要诊断', '','出院其他诊断(病案首页中原始信息)', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '手术记录(病案首页中原始信息)', ''],headerTitle: ['患者姓名', '性别', '年龄', '民族', '出生日期', '身份证号', '联系人姓名', '联系人电话', '主要医疗付费方式', '住院号', '入院途径', '住院日期', '出院日期','住院天数', '离院方式', '住院总费用', '主要诊断名称', '主要诊断编码', '其他诊断名称1', '其他诊断编码1', '其他诊断名称2', '其他诊断编码2', '其他诊断名称3', '其他诊断编码3','其他诊断名称4', '其他诊断编码4','其他诊断名称5', '其他诊断编码5', '其他诊断名称6', '其他诊断编码6', '其他诊断名称7', '其他诊断编码7', '其他诊断名称8', '其他诊断编码8','其他诊断名称9', '其他诊断编码9', '其他诊断名称10', '其他诊断编码10', '其他诊断名称11', '其他诊断编码11', '其他诊断名称12', '其他诊断编码12', '其他诊断名称13', '其他诊断编码13','其他诊断名称14', '其他诊断编码14', '其他诊断名称15', '其他诊断编码15', '手术及操作名称1', '手术及操作编码1', '手术日期1', '手术及操作名称2', '手术及操作编码2', '手术日期2','手术及操作名称3', '手术及操作编码3', '手术日期3', '手术及操作名称4', '手术及操作编码4', '手术日期4', '手术及操作名称5', '手术及操作编码5', '手术日期5', '手术及操作名称6','手术及操作编码6', '手术日期6'],merges: [{s: {c: 0, r: 0}, e: {c: 8, r: 0}}, //合并第一行 第1个至第3个{s: {c: 9, r: 0}, e: {c: 15, r: 0}},// 合并第一行  第9个至第15个{s: {c: 16, r: 0}, e: {c: 17, r: 0}},// 合并第一行  第4个至第6个{s: {c: 18, r: 0}, e: {c: 47, r: 0}},// 合并第一行  第4个至第6个{s: {c: 48, r: 0}, e: {c: 65, r: 0}},// 合并第一行  第4个至第6个],cols: [{wch: 15}, {wch: 10}, {wch: 10}, {wch: 20}, {wch: 20}, {wch: 20}, {wch: 15}, {wch: 15}, {wch: 20},{wch: 15}, {wch: 10}, {wch: 15}, {wch: 15}, {wch: 10},{wch: 12}, {wch: 12}, {wch: 12}],rows: [{hpx: 35}, {hpx: 35}],fileName: "卒中患者.",alignment: {//对齐方式horizontal: 'center',  //水平居中vertical: 'center',     //竖直居中wrapText: true,       //自动换行},font: {bold: false,sz: 12,},----------------以下为方法---------------
/*** @Description: 执行下载excle文件* */downingExcel() {//每个合并的开始位置,也就是s的c位置要有数据let headers = [me.data.headerTopTitle,me.data.headerTitle]let data = [{"患者姓名": "John", "性别": "Seattle"},{"患者姓名": "John", "性别": "Seattle"},];exportXslxExcel(me.data.merges, me.data.cols, me.data.rows, data, headers, me.data.fileName, me.data.alignment, me.data.font)},function s2ab(s) {//如果存在ArrayBuffer对象(es6) 最好采用该对象if (typeof ArrayBuffer !== 'undefined') {//1、创建一个字节长度为s.length的内存区域var buf = new ArrayBuffer(s.length);//2、创建一个指向buf的Unit8视图,开始于字节0,直到缓冲区的末尾var view = new Uint8Array(buf);//3、返回指定位置的字符的Unicode编码for (var i = 0; i != s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;return buf;} else {var buf = new Array(s.length);for (var i = 0; i != s.length; ++i) buf[i] = s.charCodeAt(i) & 0xFF;return buf;}
}//dukang  下载excel
function exportXslxExcel(merges, cols, rows, data, headers, fileName, alignment, font) {const ws = XLSX.utils.book_new();//datamerges 数组表示对行和列进行合并,c表示column(列),r表示row(行),s表示start(开始),e表示end(结束),索引从0开始ws["!merges"] = merges;// 设置列宽行高ws['!cols'] = cols; // 将cols添加到sheet中ws['!rows'] = rows; // 将rows添加到sheet中,设置行高XLSX.utils.sheet_add_aoa(ws, headers);XLSX.utils.sheet_add_json(ws, data, {origin: 'A' + (headers.length + 1),skipHeader: true});//这里遍历单元格给单元格对象设置属性,s为控制样式的属性Object.keys(ws).forEach((key) => {if (key.indexOf('!') < 0) {//只对标题行操作 第一行标题 和第二行标题if (key.indexOf('1') !== -1 || key.indexOf('2') !== -1) {ws[key].s = {alignment: alignment,}ws[key].s.font = {font: font}}}})let workBook = {SheetNames: ['Sheet1'],Sheets: {'Sheet1': ws},Props: {}};let wopts = {bookType: 'xlsx',bookSST: false,type: 'binary',};saveAs(new Blob([s2ab(XLSX.write(workBook, wopts))], {type: "application/octet-stream"}), fileName + (wopts.bookType == "biff2" ? "xls" : wopts.bookType));//xlsx.full.min.js 是一个完整的js库,它可以用来读取和写入Excel文件,但是它不能用来设置单元格。

---------------------结束-------------------


相关文章:

纯前端js中使用sheetjs导出excel,并且合并标题

先定义变量----用的是Vue2 &#xff0c;以下在vue的data&#xff1a;{}中定义--------------//空格占位符 headerTopTitle: [患者信息, , , , , , , , , 入出院信息, , , , , , , 病案首页中的出院主要诊断, ,出院其他诊断&#xff08;病案首页中原始信息&#xff09;, , , , ,…...

猫眼 校园招聘_1面

&#xff08;1&#xff09;打包和构建工具 vite 和 webpack 功能 1. 构建原理&#xff1a; Webpack 是一个静态模块打包器&#xff0c;通过对项目中的JavaScript、css、Image 等文件进行分析&#xff0c;生成对应的静态资源&#xff0c;并且通过一些插件和加载器来实现各种功…...

博弈论——博弈信息结构

博弈信息结构 0 引言 在一个博弈构成中&#xff0c;博弈信息结构是不可或缺要素。博弈信息&#xff0c;顾名思义&#xff0c;就是在博弈中&#xff0c;博弈方对于信息的了解。知己知彼&#xff0c;百战不殆。和短兵相接的战争一样&#xff0c;只有充分了解自己的优劣势&#x…...

求二叉树的高度——函数递归的思想

二叉树的高度&#xff1a;左右两个数最高的那个的1 int TreeHight(BTNode* root) {if (root NULL){return 0;}int lefhightTreeHight(root->left);int righthight TreeHight(root->right);return lefhight > righthight ? TreeHight(root->left) 1 : TreeHight…...

ue5蓝图请求接口

安装与使用 1、在虚幻商城搜索 VaRest 插件 2、选择自己项目的对应版本安装 3、查看是否安装成功 4、进入项目后&#xff0c;分别启动VaRest、JSON Blueprint Utilities两个插件&#xff08;勾选后会提示重启项目&#xff09; 5、基本用法&#xff1a;打开关卡蓝图使用&#xf…...

windows server 2012 查看已打了哪些补丁

打开控制面板 点击卸载程序 点击 查看已安装的更新 下图是已安装的补丁...

参加CSP-J第一轮后的感受

本人现在初二。作为一名学了4年多c的人&#xff0c;我一直都挺想考过CSP。于是&#xff0c;去年我就去考了。 当时初一&#xff0c;感觉自己实力不够&#xff0c;就只报了J组的。果不其然&#xff0c;63分&#xff0c;没过。 经过1年的苦练&#xff0c;今年又去考了。 J组78分&…...

rust 智能指针

智能指针 Box Box 的使用场景 由于 Box 是简单的封装&#xff0c;除了将值存储在堆上外&#xff0c;并没有其它性能上的损耗。而性能和功能往往是鱼和熊掌&#xff0c;因此 Box 相比其它智能指针&#xff0c;功能较为单一&#xff0c;可以在以下场景中使用它&#xff1a; 特…...

CentOS 7系统安装配置Zabbix 5.0LTS 步骤

目录 一、查看Zabbix官方教程&#xff08;重点&#xff09; 二、安装 Docker 创建 Mysql 容器 安装 Docker 依赖包 添加 Docker 官方仓库 安装 Docker 引擎 启动 Docker 服务并设置开机自启 验证 Docker 是否成功安装 拉取 MySQL 镜像 查看本地镜像 运行容器 停止和启…...

【学习之路】Multi Agent Reinforcement Learning框架与代码

【学习之路】Multi Agent Reiforcement Learning框架与代码 Introduction 国庆期间&#xff0c;有个客户找我写个代码&#xff0c;是强化学习相关的&#xff0c;但我没学过&#xff0c;心里那是一个慌&#xff0c;不过好在经过详细的调研以及自身的实力&#xff0c;最后还是解…...

android 13.0 SystemUI导航栏添加虚拟按键功能(二)

1.概述 在13.0的系统产品开发中,对于在SystemUI的原生系统中默认只有三键导航,想添加其他虚拟按键就需要先在构建导航栏的相关布局 中分析结构,然后添加相关的图标xml就可以了,然后添加对应的点击事件,就可以了,接下来先分析第二步关于导航栏的相关布局情况 然后实现功能…...

Java8 新特性之Stream(二)-- Stream的中间操作

目录 1.filter(Predicate) 2.map(Function) 3.flatMap(Function) 4.distinct() 5.sorted([Comparator]) 6.limit(n) 7.skip(n) 8.peek(Consumer)...

CA与区块链之数字签名详解

CA与区块链验证本质上都是数字签名&#xff0c;首先&#xff0c;我们看一下什么是数字签名&#xff01; 数字签名 数字签名是公钥密码学中的一种技术&#xff0c;用于验证信息的完整性和发送者的身份。简而言之&#xff0c;数字签名是一种确认信息来源和信息完整性的手段。它通…...

一文解读如何应用 REST 对资源进行访问?

文章目录 一、REST 简介二、涉及注解2.1 RequestMapping2.2 PathVariable2.3 RestController2.4 GetMapping、PostMapping、PutMapping、DeleteMapping补充&#xff1a;PathVariable、RequestBody、RequestParam 区别与应用 三、REST风格案例 一、REST 简介 REST (Representat…...

使用JAVA发送邮件

这里用java代码编写发送邮件我采用jar包&#xff0c;需要先点击这里下载三个jar包&#xff1a;这三个包分别为&#xff1a;additionnal.jar&#xff1b;activation.jar&#xff1b;mail.jar。这三个包缺一不可&#xff0c;如果少添加或未添加均会报下面这个错误&#xff1a; C…...

【JavaEE】_servlet程序的编写方法

目录 1. 创建项目 2. 引入依赖 3. 创建目录结构 3.1 在main目录下创建一个webapp目录 3.2 在webapp目录下创建一个WEB-INF目录 3.3 在WEB-INF目录下创建一个web.xml文件 3.4 在web.xml中进行代码编写 4. 编写代码 4.1 在java目录下创建类 4.2 打印"hello world&…...

美国市场三星手机超苹果 中国第一属华为

报告显示&#xff0c;截至5月份的三个月&#xff0c;iOS系统在美国、澳大利亚以及日本表现不俗。Android系统份额则在英国、德国以及法国实现增长。在中国城市地区&#xff0c;iOS份额同比基本持平&#xff0c;而Android份额则达到80.5%&#xff0c;同比增长1个百分点。 三星在…...

nodejs+vue+elementui医院挂号预约管理系统4n9w0

前端技术&#xff1a;nodejsvueelementui 前端&#xff1a;HTML5,CSS3、JavaScript、VUE 1、 node_modules文件夹(有npn install Express 框架于Node运行环境的Web框架, 开发语言 node.js 框架&#xff1a;Express 前端:Vue.js 数据库&#xff1a;mysql 数据库工具&#xff…...

调试技巧(课件图解)

...

react中获取input输入框内容的两种方法

一.通过event对象信息的方式 <input onChange{(e)>this.inputChange(e)}/> <button onClick{()>this.getInputValue} >获取input的值</button>inputChange(e){alert(e.target.value)this.setState({username:e.target.value}) } getInputValue(){aler…...

comsol仿真建模 由于结构本身的复杂性,很难对实际多孔结构中的流动进行建模。 在实际应用中...

comsol仿真建模 由于结构本身的复杂性&#xff0c;很难对实际多孔结构中的流动进行建模。 在实际应用中&#xff0c;详细求解流场不可行。 因此&#xff0c;使用了利用多孔结构平均物理量 &#xff08;如孔隙率和渗透率&#xff09;的宏观方法。 本例详细分析孔隙尺度的流场&am…...

Windows 11 + Ubuntu 20.04双系统安装避坑指南(附分区方案)

Windows 11与Ubuntu 20.04双系统安装全流程精解 对于想要在现有Windows 11系统上体验Ubuntu的用户来说&#xff0c;双系统安装是最佳选择。这种方式既能保留熟悉的Windows环境&#xff0c;又能探索Linux世界的无限可能。本文将详细解析从准备到安装的完整流程&#xff0c;特别针…...

如何提升网盘下载效率:直链解析工具使用指南

如何提升网盘下载效率&#xff1a;直链解析工具使用指南 【免费下载链接】Online-disk-direct-link-download-assistant 可以获取网盘文件真实下载地址。基于【网盘直链下载助手】修改&#xff08;改自6.1.4版本&#xff09; &#xff0c;自用&#xff0c;去推广&#xff0c;无…...

老旧Mac硬件解锁:用OpenCore Legacy Patcher实现Monterey系统焕新指南

老旧Mac硬件解锁&#xff1a;用OpenCore Legacy Patcher实现Monterey系统焕新指南 【免费下载链接】OpenCore-Legacy-Patcher 体验与之前一样的macOS 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 随着macOS版本迭代&#xff0c;许多经典…...

HAT:突破效率与精度瓶颈的图像超分辨率解决方案

HAT&#xff1a;突破效率与精度瓶颈的图像超分辨率解决方案 【免费下载链接】HAT CVPR2023 - Activating More Pixels in Image Super-Resolution Transformer Arxiv - HAT: Hybrid Attention Transformer for Image Restoration 项目地址: https://gitcode.com/gh_mirrors/h…...

如何快速掌握Sionna:下一代无线通信仿真的终极指南

如何快速掌握Sionna&#xff1a;下一代无线通信仿真的终极指南 【免费下载链接】sionna Sionna: An Open-Source Library for Next-Generation Physical Layer Research 项目地址: https://gitcode.com/gh_mirrors/si/sionna Sionna是一个基于TensorFlow的开源Python库&…...

Swin Transformer生产部署与性能调优:从环境适配到架构优化的全周期解决方案

Swin Transformer生产部署与性能调优&#xff1a;从环境适配到架构优化的全周期解决方案 【免费下载链接】Swin-Transformer This is an official implementation for "Swin Transformer: Hierarchical Vision Transformer using Shifted Windows". 项目地址: http…...

避坑指南:用STM32CubeMX配置SPI驱动MAX7219数码管的几个关键细节

STM32CubeMX实战&#xff1a;避开MAX7219数码管驱动的5个致命配置误区 第一次用STM32CubeMX配置SPI驱动MAX7219数码管时&#xff0c;我盯着屏幕上闪烁不定的数字差点崩溃——明明按照教程一步步操作&#xff0c;为什么显示总是错乱&#xff1f;后来才发现&#xff0c;那些看似简…...

3步解锁AI视频增强:让低清视频秒变4K的开源方案

3步解锁AI视频增强&#xff1a;让低清视频秒变4K的开源方案 【免费下载链接】video2x A lossless video/GIF/image upscaler achieved with waifu2x, Anime4K, SRMD and RealSR. Started in Hack the Valley II, 2018. 项目地址: https://gitcode.com/GitHub_Trending/vi/vid…...

Phaser游戏中的布料模拟:高级物理效果终极指南

Phaser游戏中的布料模拟&#xff1a;高级物理效果终极指南 【免费下载链接】phaser Phaser is a fun, free and fast 2D game framework for making HTML5 games for desktop and mobile web browsers, supporting Canvas and WebGL rendering. 项目地址: https://gitcode.co…...