この記事の例では、JavaScript を使用して Excel をエクスポートする方法について説明します。皆さんの参考に共有してください。具体的な実装方法は以下の通りです。
<頭>
WEB ページを EXCEL ドキュメントにエクスポートする方法
WEB ページを EXCEL ドキュメントにエクスポートする方法
|
列ヘッダー 1 |
列ヘッダー 2 |
列ヘッダー 3 |
列ヘッダー 4 |
列ヘッダー 5 |
ああ |
bbb |
ccc |
ddd |
ええ |
AAA |
BBB |
CCC |
DDD |
EEE |
FFF |
GGG |
HHH |
III |
JJJ |
テーブル>
<スクリプト言語="javascript">
function method1(tableid) {//テーブル全体を EXCEL
にコピーします
var curTbl = document.getElementByIdx_x_x(tableid);
var oXL = new ActiveXObject("Excel.Application");
//AX オブジェクト Excel を作成します
var owB = oXL.Workbooks.Add();
//ワークブックオブジェクトを取得します
var oSheet = owB.ActiveSheet;
// 現在のシートをアクティブ化します
var sel = document.body.createTextRange();
sel.moveToElementText(curTbl);
//テーブル内のコンテンツを TextRange
に移動します
sel.select();
//TextRange
内のすべてのコンテンツを選択します
sel.execCommand("コピー");
//TextRange
の内容をコピーします
oSheet.Paste();
// アクティブな EXCEL に貼り付けます
oXL.Visible = true;
// Excel の表示属性を設定します
}
function method2(tableid) //テーブル内の各セルを EXCEL
に読み込みます
{
var curTbl = document.getElementByIdx_x_x(tableid);
var oXL = new ActiveXObject("Excel.Application");
//AX オブジェクト Excel を作成します
var owB = oXL.Workbooks.Add();
//ワークブックオブジェクトを取得します
var oSheet = owB.ActiveSheet;
// 現在のシートをアクティブ化します
var Lenr = curTbl.rows.length;
//テーブルの行数を取得します
for (i = 0; i
{
var Lenc = curTbl.rows(i).cells.length;
//各行の列数を取得します
for (j = 0; j
{
oSheet.Cells(i 1, j 1).value = curTbl.rows(i).cells(j).innerText;
//値を代入
}
}
oXL.Visible = true;
// Excel の表示属性を設定します
}
function getXlsFromTbl(inTblId, inWindow) {
{
を試してください
var allStr = "";
var curStr = "";
//alert("getXlsFromTbl");
if (inTblId != null && inTblId != "" && inTblId != "null") {
curStr = getTblData(inTblId, inWindow);
}
if (curStr != null) {
allStr = curStr;
}
他 {
alert("エクスポートしたいテーブルは存在しません!");
戻る;
}
var fileName = getExcelFileName();
doFileExport(fileName, allStr);
}
catch(e) {
alert("エクスポート例外が発生しました:" e.name "->" e.description "!");
}
}
function getTblData(inTbl, inWindow) {
var 行 = 0;
//alert("getTblData は " inWindow);
var tblDocument = ドキュメント;
if (!!inWindow && inWindow != "") {
if (!document.all(inWindow)) {
null を返す;
}
他 {
tblDocument = eval_r(inWindow).document;
}
}
var curTbl = tbldocument.getElementByIdx_x_x(inTbl);
var outStr = "";
if (curTbl != null) {
for (var j = 0; j
//alert("j は " j);
for (var i = 0; i
//alert("i は " i);
if (i == 0 && rows > 0) {
outStr = " ";
行 -= 1;
}
outStr = curTbl.rows[j].cells[i].innerText " ";
if (curTbl.rows[j].cells[i].colSpan > 1) {
for (var k = 0; k
outStr = " ";
}
}
if (i == 0) {
if (rows == 0 && curTbl.rows[j].cells[i].rowSpan > 1) {
行 = curTbl.rows[j].cells[i].rowSpan - 1;
}
}
}
outStr = " ";
}
}
他 {
outStr = null;
alert(inTbl "存在しません!");
}
outStr;
を返します
}
関数 getExcelFileName() {
var d = 新しい日付();
var curyear = d.getyear();
var curMonth = "" (d.getMonth() 1);
var curDate = "" d.getDate();
var curHour = "" d.getHours();
var curMinute = "" d.getMinutes();
var curSecond = "" d.getSeconds();
if (curMonth.length == 1) {
curMonth = "0" curMonth;
}
if (curDate.length == 1) {
curDate = "0" curDate;
}
if (curHour.length == 1) {
curHour = "0" curHour;
}
if (curMinute.length == 1) {
curMinute = "0" curMinute;
}
if (curSecond.length == 1) {
curSecond = "0" curSecond;
}
var fileName = "leo_zhang" "_" curyear curMonth curDate "_"
curHour curMinute curSecond ".csv";
//alert(ファイル名);
ファイル名を返します;
}
関数 doFileExport(inName, inStr) {
var xlsWin = null;
if (!!document.all("glbHideFrm")) {
xlsWin = glbHideFrm;
}
else {
var width = 6;
var height = 4;
var openPara = "left=" (window.screen.width / 2 - width / 2)
",top= (window.screen.height / 2 - height / 2)
",scrollbars=no,width=" 幅 ",height=" 高さ;
xlsWin = window.open("", "_blank", openPara);
}
xlsWin.document.write(inStr);
xlsWin.document.close();
xlsWin.document.execCommand('Saveas', true, inName);
xlsWin.close();
}