废话俺就少说了,直接进入正题!!单纯的JS能够导出Excel的不多见,一般都需要调用客户端所安装的Office
Excel组件来完成这个工作。这里我主要讲EasyUI内的DataGrid如何结合JS导出Excel文件
一、
导出Excel的核心代码段如下所示
function
Exproter()
{
//获取Datagride的列
var
rows
=
$('#test').datagrid('getRows');
var
oXL
=
new
ActiveXObject("Excel.Application");
//创建AX对象excel
var
oWB
=
oXL.Workbooks.Add();
//获取workbook对象
var
oSheet
=
oWB.ActiveSheet;
//激活当前sheet
for
(var
i
=
0;
i
<
rows.length;
i++)
{
oSheet.Cells(i
+
1,
1).value
=
rows[i].O_NAME;
}
oXL.Visible
=
true;
//设置excel可见属性
}
二、以上JS方法能够顺利执行的大前提就是
1.机器上Excel已经安装.
2.Internet
选项=>安全=>Internet
\"对没有标记为安全的ActiveX控件进行初始化和脚本运行,设定为启用\"
//EasyUI
datagrid
动态导出Excel
function
ExporterExcel()
{
//获取Datagride的列
var
rows
=
$('#tt').datagrid('getRows');
var
columns
=
$("#tt").datagrid("options").columns[0];
var
oXL
=
new
ActiveXObject("Excel.Application");
//创建AX对象excel
var
oWB
=
oXL.Workbooks.Add();
//获取workbook对象
var
oSheet
=
oWB.ActiveSheet;
//激活当前sheet
//设置工作薄名称
oSheet.name
=
"导出Excel报表";
//设置表头
for
(var
i
=
0;
i
<
columns.length;
i++)
{
oSheet.Cells(1,
i+1).value
=
columns[i].title;
}
//设置内容部分
for
(var
i
=
0;
i
<
rows.length;
i++)
{
//动态获取每一行每一列的数据值
for
(var
j
=
0;
j
<
columns.length;
j++)
{
oSheet.Cells(i
+
2,
j+1).value
=
rows[i][columns[j].field];
}
}
oXL.Visible
=
true;
//设置excel可见属性
}
以上就是小编为大家带来的EasyUI
结合JS导出Excel文件的实现方法全部内容了,希望大家多多支持脚本之家~
Ⅱ vue项目中如何把表格导出excel表格
有一个项目需求,要求在前端项目中导出Excel表格,经过查找代码,Vue.js确实可以实现,具体实现步骤为:
1. 安装依赖
//npm npm install -S file-saver xlsx
npm install -D script-loader
或者
//yarnyarn add file-saver
yarn add xlsx
yarn add script-loader --dev
2.导入两个JS
下载Blob.js和Export2Excel.js,在src目录下新建Excel文件夹,里面放入Blob.js和Export2Excel.js两个JS文件
image
**3.在main.js引入这两个JS文件 **
import Blob from './excel/Blob'import Export2Excel from './excel/Export2Excel.js'
4.在组件中使用
//导出的方法exportExcel() {
require.ensure([], () => {
const { export_json_to_excel } = require('../excel/Export2Excel');
const tHeader = ['序号', '昵称', '姓名'];
// 上面设置Excel的表格第一行的标题
const filterVal = ['index', 'nickName', 'name'];
// 上面的index、nickName、name是tableData里对象的属性
const list = this.tableData; //把data里的tableData存到list
const data = this.formatJson(filterVal, list);
export_json_to_excel(tHeader, data, '列表excel');
})
},
formatJson(filterVal, jsonData) {
return jsonData.map(v => filterVal.map(j => v[j]))
}
tHeader是表头,filterVal 中的数据是表格的字段,tableData中存放表格里的数据,类型为数组,里面存放对象,表格的每一行为一个对象。
tableData 中的值为:
data () {
return {
tableData: [
{'index':'0',"nickName": "沙滩搁浅我们的旧时光", "name": "小明"},
{'index':'1',"nickName": "女人天生高贵", "name": "小红"},
{'index':'2',"nickName": "海是彩色的灰尘", "name": "小兰"}
]
}
}
最后实现的效果图:
image
如果运行时,报如下所示的错误:
image
这是因为Export2Excel.js的设置需要改下:
image
注: 把require('script-loader!vendor/Blob')改为 require('./Blob.js')
demo 地址:https://github.com/dt8888/exportExcel
Ⅲ react--使用js-xlsx实现excel文件的导入导出及预览
最近公司项目要求对之前后端excel操作做优化,需要放到前端来做。讲道理,我觉得没啥子必要,尤其是当我在官网导入一张5k+的excel时浏览器卡死后更是觉得需求之智障。但是没法子,还是要先自己做出来看看实际效果才行,我直接原地6个点......
导出
安装依赖
cnpm i xlsx --save
实现
定义公共组件Excel,该组件需要提供导出按钮,当点击时触发相应逻辑
组件可接收的参数如下
默认值如下
根据传入的type类型决定到底是显示导入、导出、预览按钮还是都显示
当点击导出按钮,触发回调
引入xlsx
导出逻辑
首先要做的就是校验是否用户自己实现了导出函数,以及传入的数据是否为数据且是否为空,由于不止导出要用,故放到untils中作公共函数,其他的辅助函数也从中导出
isVoid函数
getTable函数
getSheetHead函数
format函数
getCharCol函数
导出结果如下
改进
可能你也发现了,导出的结果是没有样式信息的,那么如何增加样式呢?答案是xlsx-style
安装依赖
cnpm i xlsx-style --save
npm install file-saver --save
xlsx-style导入报错
将报错文件一份,修改后放到assets目录下
找到umijs的webpack配置文件,新增如下配置
增加文字颜色和首行高亮处理
增加辅助函数calculateWidth
增加辅助函数addHeadlineStyle
导出方式使用filesave
效果如下
导入
现在,我们来完成导入功能,并且导入后需要使用表格进行分页预览
新增modal弹窗,用作预览界面
对应函数renderBody如下
对应函数renderButton如下
对应函数onPageChange如下
点击导入按钮,回调处理如下
新增的辅助函数如下
新增组件状态如下
导入预览效果如下
文档
https://www.npmjs.com/package/xlsx-style
https://github.com/eligrey/FileSaver.js
https://www.npmjs.com/package/xlsx?activeTab=readme
如有问题,欢迎评论指正哦~~
最后,还有个很重要的事情,点个赞再走吧,客官~~
Ⅳ javaScript 原生 提取excel文件 需要学习那些知识或者哪方面的,不要插件。最好有例子。
JavaScript is a versatile platform that allows easy customization of client-side scripting tools. In some applications, it's useful to have some sort of spreadsheet interface that is easy to code and maintain. TheSpreadJS client-side JavaScript spreadsheet component, part of the SpreadJS package, is perfect for this.
A JavaScript export to Excel
You can import and export Excel files, and provide users with an interface to interact with those files -- all in pure JavaScript. In this tutorial, I'll show you how easy it is to add a SpreadJS component to an HTML page and import an Excel file into it.
Set Up the JavaScript Spreadsheet Project
Create a new HTML page and add references to the Spread.Sheets script and the CSS files that are included in your SpreadJS download:
<!DOCTYPE html> <html> <head>
<title>SpreadJS ExcelIO</title>
<script src="http://code.jquery.com/jquery-2.1.3.min.js" type="text/javascript"></script>
<script src="http://code.jquery.com/ui/1.11.4/jquery-ui.min.js" type="text/javascript"></script>
<link href="http://cdn.grapecity.com/spreadjs/hosted/css/gc.spread.sheets.excel2013white.10.1.0.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="http://cdn.grapecity.com/spreadjs/hosted/scripts/gc.spread.sheets.all.10.1.0.min.js"></script>
<script type="text/javascript" src="http://cdn.grapecity.com/spreadjs/hosted/scripts/interop/gc.spread.excelio.10.1.0.min.js"></script> </head> <body>
<div id="ss" style="height:600px ; width :100%; "></div> </body> </html>
Then add a script to the page that initializes the Spread.Sheets component, and a div element to contain it (since the SpreadJS spreadsheet component utilizes a canvas, this is necessary to initialize the component):
<script type="text/javascript">
$(document).ready(function () {
var workbook = new GC.Spread.Sheets.Workbook(document.getElementById("ss"));
});
</script> </head> <body>
<div id="ss" style="height:600px ; width :100%; "></div> </body>
Add Excel Import Code
We need to create an instance of the client-side ExcelIO component that we can use to actually open the file:
var excelIO = new GC.Spread.Excel.IO();
Then we need to add a function to import a file. In this example, we import a local file, but you can do the same thing with a file on a server. If you’re importing a file from a server, you need to reference the location. The following is an example of an input element where the user can enter the location of the file:
<input type="text" id="importUrl" value="http://www.testwebsite.com/files/TestExcel.xlsx" style="width:300px" />
Once you have that, you can directly access that value in script code:
var excelUrl = $("#importUrl").val();
The following code for the import function just uses a local file for the "excelUrl" variable:
function ImportFile() {
var excelUrl = "./test.xlsx";
var oReq = new XMLHttpRequest();
oReq.open('get', excelUrl, true);
oReq.responseType = 'blob';
oReq.onload = function () {
var blob = oReq.response;
excelIO.open(blob, LoadSpread, function (message) {
console.log(message);
});
};
oReq.send(null);
}
function LoadSpread(json) {
jsonData = json;
workbook.fromJSON(json);
workbook.setActiveSheet("Revenues (Sales)");
}
Regardless of whether you're referencing a file on a server or locally, you'll need to add the following to your script inside the$(document).readyfunction:
$(document).ready(function () {
$.support.cors = true;
workbook = new GC.Spread.Sheets.Workbook(document.getElementById("ss"));
//... });
你可以搜寻 黑体字 , 如果需要更详细的介绍
Ⅳ vue2.0 + element UI 中 el-table 数据导出Excel的方法
1、安装相关依赖
主要是两个依赖
npm
install
--save
xlsx
file-saver
如果想详细看着两个插件使用,请移步github。
https://github.com/SheetJS/js-xlsx
https://github.com/eligrey/FileSaver.js
2、组件里头引入
import
FileSaver
from
'file-saver'
import
XLSX
from
'xlsx'
3、组件methods里写一个方法
exportExcel
()
{
/*
generate
workbook
object
from
table
*/
var
wb
=
XLSX.utils.table_to_book(document.querySelector('#out-table'))
/*
get
binary
string
as
output
*/
var
wbout
=
XLSX.write(wb,
{
bookType:
'xlsx',
bookSST:
true,
type:
'array'
})
try
{
FileSaver.saveAs(new
Blob([wbout],
{
type:
'application/octet-stream'
}),
'sheetjs.xlsx')
}
catch
(e)
{
if
(typeof
console
!==
'undefined')
console.log(e,
wbout)
}
return
wbout
},
注意:XLSX.uitls.table_to_book(
放入的是table
的DOM
节点
)
,sheetjs.xlsx
即为导出表格的名字,可修改!
4、点击导出按钮执行
exportExcel
的方法即可
。
组件里头代码截图:
实现效果图如下:
导出如下表格的数据到excel。
导出到excel
表格,结果如下:
相关链接:
该工具的其他使用场景(
如react
、jQ、angular
)
http://sheetjs.com/
以上这篇vue2.0
+
element
UI
中
el-table
数据导出Excel的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
您可能感兴趣的文章:Vue2.0实现将页面中表格数据导出excel的实例vue
+
element-ui实现简洁的导入导出功能详解vue2.0的Element
UI的表格table列时间戳格式化Element-ui
table中过滤条件变更表格内容的方法
Ⅵ JS 下载/导出 csv、excel、txt 、img等文件的方法总结
1. 调用后端接口导出文件
示例下载接口url https://gold-cdn.xitu.io/extension/0.3.9/package.crx
1.1 window.open(url)
会打开一个新窗口,开始下载后会自动关闭新窗口。Safair 下载后没有关闭新窗口。
Chrome、IE、Safair支持,貌似火狐不支持
1.2 window.location=url
在当前窗口下载
Chrome、Safair支持
1.3 iframe
在HTML中,iframe 的属性用src,但在JS中,只有部份浏览器支持修改src(读是没问题),真正通用的是要修改对应框架的href值。
1.4 <a href="url" download="filename">点击链接下载</a>
HTML5中给a标签增加了一个download属性,只要有这个属性,点击这个链接时浏览器就不在打开链接指向的文件,而是改为下载,目前只有chrome、firefox、opera、Edge支持。常用此方法点击下载图片。
IE既不支持a标签的download属性也不允许js调用a 标签的click方法。
2. 前端直接导出文件到本地
2.1 将数据转成DataURI用<a>标签下载
<a href="DataURI" download="filename">点击链接下载</a>
Data URI Scheme
Data URI Scheme是指可以在Web 页面中包含图片但无需任何额外的HTTP 请求的一类URI。 Data URI Scheme一般用于将经过base64编码的数据嵌入网页中,从而减少请求资源的链接数。IE8 之前的版本都不支持 data URI scheme。
DataURI的格式:
生成DataURI的方式
1. encodeURIComponent
使用这种方式,当数据过多时,URI长度容易超出浏览器限制。 encodeURIComponent常用来转码接口参数,为了避免服务器收到不可预知的请求,对任何用户输入的作为URI部分的内容都需要用encodeURIComponent进行转义。
2. URL.createObjectURL
URL.createObjectURL的参数是File对象或者Blob对象
IE10以下不支持URL.createObjectURL
2.2 windows.navigator.msSaveBlob IE10~Edge 专用
msSaveBlob 是IE10~Edge 私有方法。
2.3 execCommand
有的资料有提到IE9可以使用execCommand方法来保存数据到本地文件,但是我自己没有验证过,不知道是否可行。而且MDN文档中execCommand没有查到SaveAs命令。这块只是做个小记录。
js数据直接导出/下载数据到本地到方法总结
本文转载自:https://juejin.im/post/5cd00253518825418f6f2a8c?utm_source=gold_browser_extension
Ⅶ 怎么使用数据库筛选js文件的数据并导出到excel
大家在使用数据库的时候经常会用到数据库中的数据,小编今天分享一个简单的数据库数据,导出的教程。经常使用数据库的导出功能,能够对数据库中的数据进行很好的备份,在数据库安全中备份也是数据库安全必不可少的安全策略之一。读者掌握了数据库的导出备份,对数据的收集、分析和整理将大有益处。
开启分步阅读模式
工具材料:
SQLyogEnt
操作方法
01
首先我们使用SQLyogEnt工具,连接到mysql数据库。
02
连接成功后在左侧的目录位置,找到需要的表,右键打开表
03
也可以直接在sql执行器中输入:
select * from datetable name
打开这个表
04
在sql执行器的下方,结果下方,最左侧的位置,如下图,有一个小图标,鼠标移动上面会浮出文字“导出为....”点击这个图标
05
点击后会弹出一个名为“导出为”的弹出窗口,选择需要导出的文件格式:如csv、html、xnl等,在右侧选择导出的字段
06
在界面的最下方有一个输入框,框中是程序默认的一个导出的路径,也可以点击路径旁的按钮,进行自定义导出文件路径。
07
最后点击【导出】按钮,点击后会有一个小的提示窗,提示信息为“date exporet successfully”点击【确定】按钮,完成导出操作
08
最后就是在导出目录中找到导出的文件,查看导出是否成功。
09
这里需要注意一下,csv格式的文件,如果用excel打开会出现乱码,因为编码不同,如果使用txt打开则不会有这样的问题。
方法/步骤2
01
在方法步骤1中第二个步骤也可以选择,备份导出,这样也能够导出数据,但是这种数据由于没有进行sql的筛选,导出的是整张表的数据,读者需要注意一下。
特别提示
读者可以先用sql对数据表中数据进行筛选,然后再导出
Ⅷ js如何导出exel文件
简单的办法:使用js生成一个table,可以直接复制到excel中,网上有很多表格插件。
复杂的办法:js传递数据到服务器,服务器生成表格后返回一个下载链接。