IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 电子表格工具 -> 正文阅读

[JavaScript知识库]电子表格工具

电子表格工具SheetJS,可用于解析、生成Excel等。

官方文档:SheetJS中文文档SheetJS官方文档

下边案例参考自:csdn

引用

npm下载:

npm install xlsx

cdn引入:

<script lang="javascript" src="https://unpkg.com/xlsx"></script>

解析excel

使用SheetJs将excel中的数据转换为json对象。(数据保存在数组中)

elementUI组件,选择excel文件:

<el-upload :on-change="fileChange2" :show-file-list="false" :auto-upload="false" action="#"
	style="display: inline-block;">
	<el-button type="primary"
		style="border:0;font-size: 3.25rem!important;width: 100vw;height: 100%;padding: 1.625rem 4.25rem;">
		选择文件
	</el-button>
</el-upload>

函数fileChange2如下:

//读取excel
fileChange2(file) {
	var _vue = this;
	var reader = new FileReader();
	reader.onload = function(e) {
		var data = e.target.result;
		var workbook = XLSX.read(data, {
			type: 'binary'
		});
		/* 业务代码 */
		workbook.SheetNames.forEach(sheetName => {
			//遍历excel中的工作表
			var XL_row_object = XLSX.utils.sheet_to_row_object_array(workbook.Sheets[
				sheetName]); //将数据转换为json对象(发在数组中)
			if (XL_row_object.length > 0) {
				_vue.handelData(XL_row_object); //处理数据
				return; //只处理第一个工作表中的数据
			}
		})
	};
	reader.readAsBinaryString(file.raw);
},
//对数据进行处理
handelData(data) {
	console.log(data);
    /* 数据处理 */
}

//表格样式会影响解析出来的数据格式。可以提供一个excel模板用于填写数据。

生成excel

使用json数据生成excel文件。

//生成excel
toExcel() {
	var _vue = this;
	//数据为 _vue.datas
	
	// 设置表头(列名)
	//unshift 将新项添加到数组的开头,并返回新的长度。
	_vue.datas.unshift({
		user_name: '姓名',//key : value
		user_code: '账号',
		duty: '职务',
		r: '序号'
	});

	var worksheet = XLSX.utils.json_to_sheet(_vue.datas, {
		header: ['r', 'user_name', 'user_code', 'duty'], // 自定义表头(列名)顺序(使用key),若不设置则按默认顺序
		skipHeader: true // 隐藏key(可自行改成false下载后对比差异)
	});

	// begin,把每个单元格格式都设置为文本,如果不需要修改单元格格式可省略此处代码
	var range = XLSX.utils.decode_range(worksheet['!ref']);
	for (var row = range.s.r; row <= range.e.r; row++) {
		for (var columns = range.s.c; columns <= range.e.c; columns++) {
			var cellName = XLSX.utils.encode_cell({
				c: columns,
				r: row
			});
			worksheet[cellName].z = '@';
		}
	}
	// end

	var new_workbook = XLSX.utils.book_new();
	XLSX.utils.book_append_sheet(new_workbook, worksheet, 'Sheet1');
	// 设置文件名,自动执行下载
	XLSX.writeFile(new_workbook, '财务部拥有角色的账号.xlsx');
}

除了可以生成excel文件,还支持:

XLSX.utils.sheet_to_csv:生成CSV格式

XLSX.utils.sheet_to_txt:生成纯文本格式

XLSX.utils.sheet_to_html:生成HTML格式

XLSX.utils.sheet_to_json:输出JSON格式

等等

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-09-30 00:43:36  更:2022-09-30 00:48:31 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/17 18:29:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码