针对如何在Javascript/HTML5中解析Excel(XLS)文件和js解析excel展示这两个问题,本篇文章进行了详细的解答,同时本文还将给你拓展HTML表-使用SSRS与Java与JavaS
针对如何在 Javascript/HTML5 中解析 Excel (XLS) 文件和js 解析 excel 展示这两个问题,本篇文章进行了详细的解答,同时本文还将给你拓展HTML 表 - 使用 SSRS 与 Java 与 JavaScript 的 Excel 导出、html5 / Javascript – 如何获取Selected文件夹名称?、javascript - 有没有办法让HTML5 canvas显示/预览word/excel/powerpoint 文档?、javascript HTML5 Canvas实现圆盘抽奖功能_javascript技巧等相关知识,希望可以帮助到你。
本文目录一览:- 如何在 Javascript/HTML5 中解析 Excel (XLS) 文件(js 解析 excel 展示)
- HTML 表 - 使用 SSRS 与 Java 与 JavaScript 的 Excel 导出
- html5 / Javascript – 如何获取Selected文件夹名称?
- javascript - 有没有办法让HTML5 canvas显示/预览word/excel/powerpoint 文档?
- javascript HTML5 Canvas实现圆盘抽奖功能_javascript技巧
如何在 Javascript/HTML5 中解析 Excel (XLS) 文件(js 解析 excel 展示)
我可以通过读取 Excel 文件,FileReader
但它会输出文本以及奇怪的字符。我需要xls
逐行读取文件,读取每一列中的数据并将其转换为
JSON。
如何逐行读取xls文件?
答案1
小编典典下面的函数将 Excel 工作表(XLSX 格式)数据转换为 JSON。您可以向函数添加承诺。
<script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.8.0/jszip.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.8.0/xlsx.js"></script><script>var ExcelToJSON = function() { this.parseExcel = function(file) { var reader = new FileReader(); reader.onload = function(e) { var data = e.target.result; var workbook = XLSX.read(data, { type: ''binary'' }); workbook.SheetNames.forEach(function(sheetName) { // Here is your object var XL_row_object = XLSX.utils.sheet_to_row_object_array(workbook.Sheets[sheetName]); var json_object = JSON.stringify(XL_row_object); console.log(json_object); }) }; reader.onerror = function(ex) { console.log(ex); }; reader.readAsBinaryString(file); };};</script>
下面的帖子有 XLS 格式Excel 到 JSON javascript
代码的代码?
HTML 表 - 使用 SSRS 与 Java 与 JavaScript 的 Excel 导出
如何解决HTML 表 - 使用 SSRS 与 Java 与 JavaScript 的 Excel 导出?
我目前使用 Microsoft sql Server Reporting Services 来满足两个关键用户要求:
- 导出到 Excel
- 按计划将 Excel 版本的报告通过电子邮件发送给用户
这很好用。 SSRS 在导出到 Excel 方面做得很好……除了少数例外,Excel 导出看起来与 SSRS 报告完全一样。
但是有几个问题:
- 我使用 Java 作为服务器端技术,它必须将所有数据作为一个大型 XML 响应传递给 SSRS 报告。
- 与使用 JavaScript 技术(例如 jQuery 和其他 JS 框架)相比,SSRS 中的 UI 功能非常有限。
我看到 JS、各种 JS 框架和许多 JS UI 组件库现在都支持导出到 Excel。在Java服务器端,我知道Apache POI。
哪种方法(客户端 JS 或服务器端 Java,例如使用 Apache POI)可以满足我的用户需求?我需要对 Excel 导出的格式和样式以及计划功能进行大量控制。
我想与 SSRS 相比,使用 Apache POI 的几个缺点是
- 我只需要使用 SSRS 创建一个输出。使用 Apache POI,我必须创建 Excel 输出的代码和 HTML 表的代码。必须在两个地方进行更改。
- SSRS 是一种图形报告,因此没有开发经验的其他人可以更轻松地进行更改。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
html5 / Javascript – 如何获取Selected文件夹名称?
解决方法
<asp:FileUpload ID="FileUpload1" onchange="selectFolder(event)" webkitdirectory mozdirectory msdirectory odirectory directory AllowMultiple="true" runat="server" />
要么
<input type="file" id="FileUpload" onchange="selectFolder(event)" webkitdirectory mozdirectory msdirectory odirectory directory multiple />
JavaScript的:
<script type="text/javascript"> function selectFolder(e) { var theFiles = e.target.files; var relativePath = theFiles[0].webkitRelativePath; var folder = relativePath.split("/"); alert(folder[0]); } </script>
javascript - 有没有办法让HTML5 canvas显示/预览word/excel/powerpoint 文档?
目前想实现类似百度文库那样的在线文档预览,但是他们使用的一般都是flash,而html5 canvas可以在大多数情况下代替flash,那么有没有办法让canvas显示/预览
如果不用flash,目前唯一的方法是,用openoffice/libreoffice或者在线服务(比如七牛里面第三方提供的文档转换服务)转换成pdf,然后用mozilla的pdf.js来在线预览。
回复内容:
目前想实现类似百度文库那样的在线文档预览,但是他们使用的一般都是flash,而html5 canvas可以在大多数情况下代替flash,那么有没有办法让canvas显示/预览office文档?
如果不用flash,目前唯一的方法是,用openoffice/libreoffice或者在线服务(比如七牛里面第三方提供的文档转换服务)转换成pdf,然后用mozilla的pdf.js来在线预览。
这种需求,主要还是靠强大的后端处理了。
我之前找过,可以看看我这个https://segmentfault.com/q/1010000004959795
javascript HTML5 Canvas实现圆盘抽奖功能_javascript技巧
我们经常参加各种电商优惠活动,比如购买达到一定数额进行抽奖活动,在比如微信抽奖,淘宝抽奖,迅雷赚钱宝圆盘抽奖活动等。这些抽奖活动部分就是由HTML5的Canvas来制作的,今天就为大家分享一下如何使用HTML5的Canvas来制作圆盘抽奖功能。老规矩,先看下效果图吧:
再来看看canvas的几个主要api:
全部源代码如下:
<!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="UTF-8"> <title>HTML5 Canvas圆盘抽奖应用DEMO演示</title> <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"> <style> *{padding: 0px;margin: 0px;font-size: 16px;font-family: "Microsoft YaHei";} .xttblog_box{width: 300px;height: 300px;margin: 100px auto;position: relative; } .xttblog_box canvas{position: absolute;} #xttblog{background-color: white;border-radius: 100%;} #xttblog01,#xttblog03{left: 50px;top: 50px;z-index: 30;} #xttblog02{left: 75px;top: 75px;z-index: 20;} #xttblog{-o-transform: transform 6s;-ms-transform: transform 6s;-moz-transform: transform 6s; -webkit-transform: transform 6s;transition: transform 6s;-o-transform-origin: 50% 50%; -ms-transform-origin: 50% 50%;-moz-transform-origin: 50% 50%;-webkit-transform-origin: 50% 50%; transform-origin: 50% 50%;} .taoge_btn{width: 60px;height: 60px;left: 120px;top: 120px;border-radius: 100%; position: absolute;cursor: pointer;border: none;background: transparent; outline: none;z-index: 40;} </style> <script type="text/javascript" src="http://cdn.bootcss.com/jquery/1.11.3/jquery.min.js"></script> <script> $(document).ready(function(){ //旋转角度 var angles; //可抽奖次数 var clickNum = 5; //旋转次数 var rotNum = 0; //中奖公告 var notice = null; //转盘初始化 var color = ["#626262","#787878","rgba(0,0,0,0.5)","#DCC722","white","#FF4350"]; var info = ["谢谢参与"," 1000"," 10"," 500"," 100"," 4999"," 1"," 20"]; var info1 = [''再接再厉'','' 元'','' 元'','' 淘金币'','' 元'','' 淘金币'','' 元'','' 淘金币''] canvasRun(); $(''#tupBtn'').bind(''click'',function(){ if (clickNum >= 1) { //可抽奖次数减一 clickNum = clickNum-1; //转盘旋转 runCup(); //转盘旋转过程“开始抽奖”按钮无法点击 $(''#tupBtn'').attr("disabled", true); //旋转次数加一 rotNum = rotNum + 1; //“开始抽奖”按钮无法点击恢复点击 setTimeout(function(){ alert(notice); $(''#tupBtn'').removeAttr("disabled", true); },6000); } else{ alert("亲,抽奖次数已用光!"); } }); //转盘旋转 function runCup(){ probability(); var degValue = ''rotate(''+angles+''deg''+'')''; $(''#xttblog'').css(''-o-transform'',degValue); //Opera $(''#xttblog'').css(''-ms-transform'',degValue); //IE浏览器 $(''#xttblog'').css(''-moz-transform'',degValue); //Firefox $(''#xttblog'').css(''-webkit-transform'',degValue); //Chrome和Safari $(''#xttblog'').css(''transform'',degValue); } //各奖项对应的旋转角度及中奖公告内容 function probability(){ //获取随机数 var num = parseInt(Math.random()*(7 - 0 + 0) + 0); //概率 if ( num == 0 ) { angles = 2160 * rotNum + 1800; notice = info[0] + info1[0]; } //概率 else if ( num == 1 ) { angles = 2160 * rotNum + 1845; notice = info[7] + info1[7]; } //概率 else if ( num == 2 ) { angles = 2160 * rotNum + 1890; notice = info[6] + info1[6]; } //概率 else if ( num == 3 ) { angles = 2160 * rotNum + 1935; notice = info[5] + info1[5]; } //概率 else if ( num == 4 ) { angles = 2160 * rotNum + 1980; notice = info[4] + info1[4]; } //概率 else if ( num == 5 ) { angles = 2160 * rotNum + 2025; notice = info[3] + info1[3]; } //概率 else if ( num == 6 ) { angles = 2160 * rotNum + 2070; notice = info[2] + info1[2]; } //概率 else if ( num == 7 ) { angles = 2160 * rotNum + 2115; notice = info[1] + info1[1]; } } //绘制转盘 function canvasRun(){ var canvas=document.getElementById(''xttblog''); var canvas01=document.getElementById(''xttblog01''); var canvas03=document.getElementById(''xttblog03''); var canvas02=document.getElementById(''xttblog02''); var ctx=canvas.getContext(''2d''); var ctx1=canvas01.getContext(''2d''); var ctx3=canvas03.getContext(''2d''); var ctx2=canvas02.getContext(''2d''); createCircle(); createCirText(); initPoint(); //外圆 function createCircle(){ var startAngle = 0;//扇形的开始弧度 var endAngle = 0;//扇形的终止弧度 //画一个8等份扇形组成的圆形 for (var i = 0; i< 8; i++){ startAngle = Math.PI*(i/4-1/8); endAngle = startAngle+Math.PI*(1/4); ctx.save(); ctx.beginPath(); ctx.arc(150,150,100, startAngle, endAngle, false); ctx.lineWidth = 120; if (i%2 == 0) { ctx.strokeStyle = color[0]; }else{ ctx.strokeStyle = color[1]; } ctx.stroke(); ctx.restore(); } } //各奖项 function createCirText(){ ctx.textAlign=''start''; ctx.textBaseline=''middle''; ctx.fillStyle = color[3]; var step = 2*Math.PI/8; for ( var i = 0; i < 8; i++) { ctx.save(); ctx.beginPath(); ctx.translate(150,150); ctx.rotate(i*step); ctx.font = " 20px Microsoft YaHei"; ctx.fillStyle = color[3]; ctx.fillText(info[i],-30,-115,60); ctx.font = " 14px Microsoft YaHei"; ctx.fillText(info1[i],-30,-95,60); ctx.closePath(); ctx.restore(); } } function initPoint(){ //箭头指针 ctx1.beginPath(); ctx1.moveTo(100,24); ctx1.lineTo(90,62); ctx1.lineTo(110,62); ctx1.lineTo(100,24); ctx1.fillStyle = color[5]; ctx1.fill(); ctx1.closePath(); //中间小圆 ctx3.beginPath(); ctx3.arc(100,100,40,0,Math.PI*2,false); ctx3.fillStyle = color[5]; ctx3.fill(); ctx3.closePath(); //小圆文字 ctx3.font = "Bold 20px Microsoft YaHei"; ctx3.textAlign=''start''; ctx3.textBaseline=''middle''; ctx3.fillStyle = color[4]; ctx3.beginPath(); ctx3.fillText(''开始'',80,90,40); ctx3.fillText(''抽奖'',80,110,40); ctx3.fill(); ctx3.closePath(); //中间圆圈 ctx2.beginPath(); ctx2.arc(75,75,75,0,Math.PI*2,false); ctx2.fillStyle = color[2]; ctx2.fill(); ctx2.closePath(); } } }); </script> </head> <body> <div> <canvas id="xttblog" width="300px" height="300px">抱歉!浏览器不支持。</canvas> <canvas id="xttblog01" width="200px" height="200px">抱歉!浏览器不支持。</canvas> <canvas id="xttblog03" width="200px" height="200px">抱歉!浏览器不支持。</canvas> <canvas id="xttblog02" width="150px" height="150px">抱歉!浏览器不支持。</canvas> <button id="tupBtn"></button> </div> <!-- 更改系统默认弹窗 --> <script type="text/javascript"> window.alert = function(str) { var shield = document.createElement("DIV"); shield.id = "shield"; shield.style.position = "absolute"; shield.style.left = "50%"; shield.style.top = "50%"; shield.style.width = "280px"; shield.style.height = "150px"; shield.style.marginLeft = "-140px"; shield.style.marginTop = "-110px"; shield.style.zIndex = "25"; var alertFram = document.createElement("DIV"); alertFram.id="alertFram"; alertFram.style.position = "absolute"; alertFram.style.width = "280px"; alertFram.style.height = "150px"; alertFram.style.left = "50%"; alertFram.style.top = "50%"; alertFram.style.marginLeft = "-140px"; alertFram.style.marginTop = "-110px"; alertFram.style.textAlign = "center"; alertFram.style.lineHeight = "150px"; alertFram.style.zIndex = "300"; strHtml = "<ul style=\"list-style:none;margin:0px;padding:0px;width:100%\">\n"; strHtml += " <li style=\"background:#626262;text-align:left;padding-left:20px;font-size:14px;font-weight:bold;height:25px;line-height:25px;border:1px solid #F9CADE;color:white\">[中奖提醒]</li>\n"; strHtml += " <li style=\"background:#787878;text-align:center;font-size:12px;height:95px;line-height:95px;border-left:1px solid #F9CADE;border-right:1px solid #F9CADE;color:#DCC722\">"+str+"</li>\n"; strHtml += " <li style=\"background:#626262;text-align:center;font-weight:bold;height:30px;line-height:25px; border:1px solid #F9CADE;\"><input type=\"button\" value=\"确 定\" onclick=\"doOk()\" style=\"width:80px;height:20px;background:#626262;color:white;border:1px solid white;font-size:14px;line-height:20px;outline:none;margin-top: 4px\"/></li>\n"; strHtml += "</ul>\n"; alertFram.innerHTML = strHtml; document.body.appendChild(alertFram); document.body.appendChild(shield); this.doOk = function(){ alertFram.style.display = "none"; shield.style.display = "none"; } alertFram.focus(); document.body.onselectstart = function(){return false;}; } </script> </body> </html>
以上就是本文的全部内容,希望对大家的学习有所帮助。
原文地址:http://www.xttblog.com/?p=399
今天的关于如何在 Javascript/HTML5 中解析 Excel (XLS) 文件和js 解析 excel 展示的分享已经结束,谢谢您的关注,如果想了解更多关于HTML 表 - 使用 SSRS 与 Java 与 JavaScript 的 Excel 导出、html5 / Javascript – 如何获取Selected文件夹名称?、javascript - 有没有办法让HTML5 canvas显示/预览word/excel/powerpoint 文档?、javascript HTML5 Canvas实现圆盘抽奖功能_javascript技巧的相关知识,请在本站进行查询。
本文标签: