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

实现excle表上传生成echarts图

代码如下

```html
<!--这是一个网上关于读取Excel最经典的代码-->
<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>ECharts</title><!-- 引入 echarts.js --><!-- <script src="newjs/js/incubator-echarts-4.8.0/dist/echarts.min.js"></script> --><script src="./echarts.min.js"></script><script src="https://blog-static.cnblogs.com/files/xieyongbin/xlsx.full.min.js"></script><script src="https://cdn.staticfile.org/jquery/2.0.0/jquery.min.js"></script>
</head><body><form><input type="file" name="file" onchange="readWorkbookFromLocalFile(this.files[0])" /></form><div id="main" style="width: 800px;height:350px;"></div><script type="text/javascript">// 读取本地excel文件 function readWorkbookFromLocalFile(file) {var reader = new FileReader();reader.onload = function (e) {var data = e.target.result;var workbook = XLSX.read(data, { type: 'binary' });handle(workbook);};reader.readAsBinaryString(file);}// 处理excel文件var date1 = [];var date2 = [];function handle(workbook) {// workbook.SheetNames[0] excel第一个sheetvar datas = XLSX.utils.sheet_to_json(workbook.Sheets[workbook.SheetNames[0]]);var title = [];if (datas.length > 0) {// 获取列名是汇总列名,避免某行某个字段没有值,会缺少字段// 标题// 获取每行数据// first:for (var index in datas) { // datas数组,index为索引// second:for (var key in datas[index]) { // datas[index]对象,key为键if (-1 === title.indexOf(key)) {title.push(key);}}}for (var i = 0; i < datas.length; i++) {var a = datas[i].time * 24;//time为第一列的名字var b = (a - parseInt(a)) * 60;var c = (b - parseInt(b)) * 60;date1[i] = parseInt(a).toString() + ":" + parseInt(b).toString() + ":" + parseInt(c).toString();date2[i] = datas[i].sum1;//sum1为第二列的名字}aaa();}}function aaa() {var myChart = echarts.init(document.getElementById('main'));option = {tooltip: {trigger: 'axis',position: function (pt) {return [pt[0], '10%'];}},title: {left: 'center',text: '大数据量面积图',},xAxis: {type: 'category',boundaryGap: false,data: date1},yAxis: {type: 'value',},dataZoom: [{type: 'inside',start: 0,end: 100}],series: [{name: '人流量',type: 'line',smooth: true,symbol: 'none',itemStyle: {color: 'rgb(255, 70, 131)'},data: date2}]};myChart.setOption(option);}</script>
</body></html>

此处的excle表内容如下

注意,需要自己更改echarts.min.js的引入路径

最终效果图如下

http://www.lryc.cn/news/36685.html

相关文章:

  • python代码如何打包
  • MyBatis学习笔记(十二) —— MyBatis的逆向工程
  • 4.Elasticsearch深入了解
  • 【HashSet】| 深度剥析Java SE 源码合集Ⅲ
  • 你了解线程的状态转换吗
  • MyBatis-Plus联表查询的短板,该如何解决呢
  • 吲哚菁绿-巯基,ICG-SH,科研级别试剂,吲哚菁绿可用于测定心输出量、肝脏功能、肝血流量,和对于眼科血管造影术。
  • 深度剖析JavaOptional类
  • 平面设计软件Corel CDR2023又开始放大招啦,CorelDRAW Graphics Suite 2023有哪些新增功能?
  • 初学torch【报错:expected scalar type double but found float、rmse】
  • 金三银四、金九银十 面试宝典 JAVASE八股文面试题 超级无敌全的面试题汇总(接近3万字的面试题,让你的JAVA语法基础无可挑剔)
  • 数据结构:链式二叉树初阶
  • 公式编写1000问9-12
  • C++11:类的新功能和可变参数模板
  • 【Java学习笔记】15.Java 日期时间(1)
  • 在ROS2中,通过MoveIt2控制Gazebo中的自定义机械手
  • Java-线程池 原子性 类
  • 力扣sql简单篇练习(二十五)
  • 计算机网络:OSPF协议和链路状态算法
  • 利用表驱动法+策略模式优化switch-case
  • SpringBoot创建和使用
  • which、whereis、locate文件查找命令
  • Uipath Excel 自动化系列14-SaveExcelFile(保存Excel)
  • MyBatis学习
  • 高速PCB设计指南系列(二)
  • uniapp项目打包上线流程
  • 垃圾回收:垃圾数据如何自动回收
  • 苹果笔不用原装可以吗?Apple Pencil平替笔推荐
  • uniCloud基础使用-杂文
  • vector的模拟实现