Javascript导出Excel的方法
1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
<html xmlns="http://www.w3.org/1999/xhtml">
4
<head>
5
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"/>
6
<title>WEB页面导出为EXCEL文档的方法</title>
7
</head>
8
<body>
9
<table id="tableExcel" width="100%" border="1" cellspacing="0" cellpadding="0">
10
<tr>
11
<td colspan="5" align="center">WEB页面导出为EXCEL文档的方法</td>
12
</tr>
13
<tr>
14
<td>列标题1</td>
15
<td>列标题2</td>
16
<td>列标题3</td>
17
<td>列标题4</td>
18
<td>列标题5</td>
19
</tr>
20
<tr>
21
<td>aaa</td>
22
<td>bbb</td>
23
<td>ccc</td>
24
<td>ddd</td>
25
<td>eee</td>
26
</tr>
27
<tr>
28
<td>AAA</td>
29
<td>BBB</td>
30
<td>CCC</td>
31
<td>DDD</td>
32
<td>EEE</td>
33
</tr>
34
<tr>
35
<td>FFF</td>
36
<td>GGG</td>
37
<td>HHH</td>
38
<td>III</td>
39
<td>JJJ</td>
40
</tr>
41
</table>
42
<input type="button" onclick="javascript:method1('tableExcel');" value="第一种方法导入到EXCEL">
43
<input type="button" onclick="javascript:method2('tableExcel');" value="第二种方法导入到EXCEL">
44
<input type="button" onclick="javascript:getXlsFromTbl('tableExcel',null);" value="第三种方法导入到EXCEL">
45
<SCRIPT LANGUAGE="javascript">
46
function method1(tableid) {//整个表格拷贝到EXCEL中
47
var curTbl = document.getElementById(tableid);
48
var oXL = new ActiveXObject("Excel.Application");
49
//创建AX对象excel
50
var oWB = oXL.Workbooks.Add();
51
//获取workbook对象
52
var oSheet = oWB.ActiveSheet;
53
//激活当前sheet
54
var sel = document.body.createTextRange();
55
sel.moveToElementText(curTbl);
56
//把表格中的内容移到TextRange中
57
sel.select();
58
//全选TextRange中内容
59
sel.execCommand("Copy");
60
//复制TextRange中内容
61
oSheet.Paste();
62
//粘贴到活动的EXCEL中
63
oXL.Visible = true;
64
//设置excel可见属性
65
}
66
function method2(tableid) //读取表格中每个单元到EXCEL中
67
{
68
var curTbl = document.getElementById(tableid);
69
var oXL = new ActiveXObject("Excel.Application");
70
//创建AX对象excel
71
var oWB = oXL.Workbooks.Add();
72
//获取workbook对象
73
var oSheet = oWB.ActiveSheet;
74
//激活当前sheet
75
var Lenr = curTbl.rows.length;
76
//取得表格行数
77
for (i = 0; i < Lenr; i++)
78
{
79
var Lenc = curTbl.rows(i).cells.length;
80
//取得每行的列数
81
for (j = 0; j < Lenc; j++)
82
{
83
oSheet.Cells(i + 1, j + 1).value = curTbl.rows(i).cells(j).innerText;
84
//赋值
85
}
86
}
87
oXL.Visible = true;
88
//设置excel可见属性
89
}
90
function getXlsFromTbl(inTblId, inWindow) {
91
try {
92
var allStr = "";
93
var curStr = "";
94
//alert("getXlsFromTbl");
95
if (inTblId != null && inTblId != "" && inTblId != "null") {
96
curStr = getTblData(inTblId, inWindow);
97
}
98
if (curStr != null) {
99
allStr += curStr;
100
}
101
else {
102
alert("你要导出的表不存在!");
103
return;
104
}
105
var fileName = getExcelFileName();
106
doFileExport(fileName, allStr);
107
}
108
catch(e) {
109
alert("导出发生异常:" + e.name + "->" + e.description + "!");
110
}
111
}
112
function getTblData(inTbl, inWindow) {
113
var rows = 0;
114
//alert("getTblData is " + inWindow);
115
var tblDocument = document;
116
if (!!inWindow && inWindow != "") {
117
if (!document.all(inWindow)) {
118
return null;
119
}
120
else {
121
tblDocument = eval(inWindow).document;
122
}
123
}
124
var curTbl = tblDocument.getElementById(inTbl);
125
var outStr = "";
126
if (curTbl != null) {
127
for (var j = 0; j < curTbl.rows.length; j++) {
128
//alert("j is " + j);
129
for (var i = 0; i < curTbl.rows[j].cells.length; i++) {
130
//alert("i is " + i);
131
if (i == 0 && rows > 0) {
132
outStr += " \t";
133
rows -= 1;
134
}
135
outStr += curTbl.rows[j].cells[i].innerText + "\t";
136
if (curTbl.rows[j].cells[i].colSpan > 1) {
137
for (var k = 0; k < curTbl.rows[j].cells[i].colSpan - 1; k++) {
138
outStr += " \t";
139
}
140
}
141
if (i == 0) {
142
if (rows == 0 && curTbl.rows[j].cells[i].rowSpan > 1) {
143
rows = curTbl.rows[j].cells[i].rowSpan - 1;
144
}
145
}
146
}
147
outStr += "\r\n";
148
}
149
}
150
else {
151
outStr = null;
152
alert(inTbl + "不存在!");
153
}
154
return outStr;
155
}
156
function getExcelFileName() {
157
var d = new Date();
158
var curYear = d.getYear();
159
var curMonth = "" + (d.getMonth() + 1);
160
var curDate = "" + d.getDate();
161
var curHour = "" + d.getHours();
162
var curMinute = "" + d.getMinutes();
163
var curSecond = "" + d.getSeconds();
164
if (curMonth.length == 1) {
165
curMonth = "0" + curMonth;
166
}
167
if (curDate.length == 1) {
168
curDate = "0" + curDate;
169
}
170
if (curHour.length == 1) {
171
curHour = "0" + curHour;
172
}
173
if (curMinute.length == 1) {
174
curMinute = "0" + curMinute;
175
}
176
if (curSecond.length == 1) {
177
curSecond = "0" + curSecond;
178
}
179
var fileName = "leo_zhang" + "_" + curYear + curMonth + curDate + "_"
180
+ curHour + curMinute + curSecond + ".csv";
181
//alert(fileName);
182
return fileName;
183
}
184
function doFileExport(inName, inStr) {
185
var xlsWin = null;
186
if (!!document.all("glbHideFrm")) {
187
xlsWin = glbHideFrm;
188
}
189
else {
190
var width = 6;
191
var height = 4;
192
var openPara = "left=" + (window.screen.width / 2 - width / 2)
193
+ ",top=" + (window.screen.height / 2 - height / 2)
194
+ ",scrollbars=no,width=" + width + ",height=" + height;
195
xlsWin = window.open("", "_blank", openPara);
196
}
197
xlsWin.document.write(inStr);
198
xlsWin.document.close();
199
xlsWin.document.execCommand('Saveas', true, inName);
200
xlsWin.close();
201
}
202
</SCRIPT>
203
</body>
204
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 2
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 3
<html xmlns="http://www.w3.org/1999/xhtml"> 4
<head> 5
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"/> 6
<title>WEB页面导出为EXCEL文档的方法</title> 7
</head> 8
<body> 9
<table id="tableExcel" width="100%" border="1" cellspacing="0" cellpadding="0"> 10
<tr> 11
<td colspan="5" align="center">WEB页面导出为EXCEL文档的方法</td> 12
</tr> 13
<tr> 14
<td>列标题1</td> 15
<td>列标题2</td> 16
<td>列标题3</td> 17
<td>列标题4</td> 18
<td>列标题5</td> 19
</tr> 20
<tr> 21
<td>aaa</td> 22
<td>bbb</td> 23
<td>ccc</td> 24
<td>ddd</td> 25
<td>eee</td> 26
</tr> 27
<tr> 28
<td>AAA</td> 29
<td>BBB</td> 30
<td>CCC</td> 31
<td>DDD</td> 32
<td>EEE</td> 33
</tr> 34
<tr> 35
<td>FFF</td> 36
<td>GGG</td> 37
<td>HHH</td> 38
<td>III</td> 39
<td>JJJ</td> 40
</tr> 41
</table> 42
<input type="button" onclick="javascript:method1('tableExcel');" value="第一种方法导入到EXCEL"> 43
<input type="button" onclick="javascript:method2('tableExcel');" value="第二种方法导入到EXCEL"> 44
<input type="button" onclick="javascript:getXlsFromTbl('tableExcel',null);" value="第三种方法导入到EXCEL"> 45
<SCRIPT LANGUAGE="javascript"> 46
function method1(tableid) {//整个表格拷贝到EXCEL中 47
var curTbl = document.getElementById(tableid); 48
var oXL = new ActiveXObject("Excel.Application"); 49
//创建AX对象excel 50
var oWB = oXL.Workbooks.Add(); 51
//获取workbook对象 52
var oSheet = oWB.ActiveSheet; 53
//激活当前sheet 54
var sel = document.body.createTextRange(); 55
sel.moveToElementText(curTbl); 56
//把表格中的内容移到TextRange中 57
sel.select(); 58
//全选TextRange中内容 59
sel.execCommand("Copy"); 60
//复制TextRange中内容 61
oSheet.Paste(); 62
//粘贴到活动的EXCEL中 63
oXL.Visible = true; 64
//设置excel可见属性 65
} 66
function method2(tableid) //读取表格中每个单元到EXCEL中 67
{ 68
var curTbl = document.getElementById(tableid); 69
var oXL = new ActiveXObject("Excel.Application"); 70
//创建AX对象excel 71
var oWB = oXL.Workbooks.Add(); 72
//获取workbook对象 73
var oSheet = oWB.ActiveSheet; 74
//激活当前sheet 75
var Lenr = curTbl.rows.length; 76
//取得表格行数 77
for (i = 0; i < Lenr; i++) 78
{ 79
var Lenc = curTbl.rows(i).cells.length; 80
//取得每行的列数 81
for (j = 0; j < Lenc; j++) 82
{ 83
oSheet.Cells(i + 1, j + 1).value = curTbl.rows(i).cells(j).innerText; 84
//赋值 85
} 86
} 87
oXL.Visible = true; 88
//设置excel可见属性 89
} 90
function getXlsFromTbl(inTblId, inWindow) { 91
try { 92
var allStr = ""; 93
var curStr = ""; 94
//alert("getXlsFromTbl"); 95
if (inTblId != null && inTblId != "" && inTblId != "null") { 96
curStr = getTblData(inTblId, inWindow); 97
} 98
if (curStr != null) { 99
allStr += curStr; 100
} 101
else { 102
alert("你要导出的表不存在!"); 103
return; 104
} 105
var fileName = getExcelFileName(); 106
doFileExport(fileName, allStr); 107
} 108
catch(e) { 109
alert("导出发生异常:" + e.name + "->" + e.description + "!"); 110
} 111
} 112
function getTblData(inTbl, inWindow) { 113
var rows = 0; 114
//alert("getTblData is " + inWindow); 115
var tblDocument = document; 116
if (!!inWindow && inWindow != "") { 117
if (!document.all(inWindow)) { 118
return null; 119
} 120
else { 121
tblDocument = eval(inWindow).document; 122
} 123
} 124
var curTbl = tblDocument.getElementById(inTbl); 125
var outStr = ""; 126
if (curTbl != null) { 127
for (var j = 0; j < curTbl.rows.length; j++) { 128
//alert("j is " + j); 129
for (var i = 0; i < curTbl.rows[j].cells.length; i++) { 130
//alert("i is " + i); 131
if (i == 0 && rows > 0) { 132
outStr += " \t"; 133
rows -= 1; 134
} 135
outStr += curTbl.rows[j].cells[i].innerText + "\t"; 136
if (curTbl.rows[j].cells[i].colSpan > 1) { 137
for (var k = 0; k < curTbl.rows[j].cells[i].colSpan - 1; k++) { 138
outStr += " \t"; 139
} 140
} 141
if (i == 0) { 142
if (rows == 0 && curTbl.rows[j].cells[i].rowSpan > 1) { 143
rows = curTbl.rows[j].cells[i].rowSpan - 1; 144
} 145
} 146
} 147
outStr += "\r\n"; 148
} 149
} 150
else { 151
outStr = null; 152
alert(inTbl + "不存在!"); 153
} 154
return outStr; 155
} 156
function getExcelFileName() { 157
var d = new Date(); 158
var curYear = d.getYear(); 159
var curMonth = "" + (d.getMonth() + 1); 160
var curDate = "" + d.getDate(); 161
var curHour = "" + d.getHours(); 162
var curMinute = "" + d.getMinutes(); 163
var curSecond = "" + d.getSeconds(); 164
if (curMonth.length == 1) { 165
curMonth = "0" + curMonth; 166
} 167
if (curDate.length == 1) { 168
curDate = "0" + curDate; 169
} 170
if (curHour.length == 1) { 171
curHour = "0" + curHour; 172
} 173
if (curMinute.length == 1) { 174
curMinute = "0" + curMinute; 175
} 176
if (curSecond.length == 1) { 177
curSecond = "0" + curSecond; 178
} 179
var fileName = "leo_zhang" + "_" + curYear + curMonth + curDate + "_" 180
+ curHour + curMinute + curSecond + ".csv"; 181
//alert(fileName); 182
return fileName; 183
} 184
function doFileExport(inName, inStr) { 185
var xlsWin = null; 186
if (!!document.all("glbHideFrm")) { 187
xlsWin = glbHideFrm; 188
} 189
else { 190
var width = 6; 191
var height = 4; 192
var openPara = "left=" + (window.screen.width / 2 - width / 2) 193
+ ",top=" + (window.screen.height / 2 - height / 2) 194
+ ",scrollbars=no,width=" + width + ",height=" + height; 195
xlsWin = window.open("", "_blank", openPara); 196
} 197
xlsWin.document.write(inStr); 198
xlsWin.document.close(); 199
xlsWin.document.execCommand('Saveas', true, inName); 200
xlsWin.close(); 201
} 202
</SCRIPT> 203
</body> 204
</html>



浙公网安备 33010602011771号