テーブルを Excel にエクスポートする純粋な JS メソッド

テーブルを Excel にエクスポートする純粋な JS メソッド

html

<div> 要素
    <button type="button" onclick="getXlsFromTbl('tableExcel','myDiv')">IE エクスポート Excel メソッド</button>
    <button type="button" onclick="method5('tableExcel')">Chrome から Excel にエクスポート</button>
</div>
<div id="myDiv">
    <テーブル id="tableExcel" 幅="100%" 境界線="1" セル間隔="0" セルパディング="0">
        <tr>
            <td colspan="5" align="center">HTML テーブルを Excel にエクスポート</td>
        </tr>
        <tr>
            <td>列見出し 1</td>
            <td>列見出し 2</td>
            <td>クラスタイトル 3</td>
            <td>列見出し 4</td>
            <td>列見出し 5</td>
        </tr>
        <tr>
            <td>ああ</td>
            <td>bbb</td>
            <td>ccc</td>
            <td>ddd</td>
            <td>えー</td>
        </tr>
        <tr>
            <td>AAA</td>
            <td>BBB</td>
            <td>CCC</td>
            <td>DDD</td>
            <td>ええ</td>
        </tr>
        <tr>
            <td>FFF</td>
            <td>GGG</td>
            <td>はぁ</td>
            <td>III</td>
            <td>ジェイジェイ</td>
        </tr>
    </テーブル>
</div>

js

<スクリプト言語="JavaScript" タイプ="text/javascript">
        //IE メソッド関数 getXlsFromTbl(inTblId, inWindow){

            試す {
                var allStr = "";
                var curStr = "";
                inTblId != null && inTblId != "" && inTblId != "null") {

                    curStr = getTblData(inTblId、inWindow);

                }
                (curStr != null)の場合{
                    allStr + = curStr;
                }

                それ以外 {

                    alert("エクスポートしたいテーブルが存在しません");
                    戻る;
                }
                var ファイル名 = getExcelFileName();
                doFileExport(ファイル名、allStr);

            }

            キャッチ(e) {

                alert("エクスポート例外:" + e.name + "->" + e.description + "!");

            }

        }
        関数 getTblData(inTbl, inWindow) {

            var 行 = 0;
            var tblDocument = ドキュメント;
            if (!!inWindow && inWindow != "") {

                ドキュメントがすべてウィンドウ内にある場合
                    null を返します。
                }

                それ以外 {
                    tblDocument = eval(inWindow).document;
                }

            }

            var curTbl = tblDocument.getElementById(inTbl);
            var outStr = "";
            (curTbl != null) の場合 {
                (var j = 0; j < curTbl.rows.length; j++) の場合 {
                    (var i = 0; i < curTbl.rows[j].cells.length; i++) {

                        i == 0 && 行数 > 0 の場合
                            outStr + = " t";
                            行数 -= 1;
                        }

                        outStr += curTbl.rows[j].cells[i].innerText + "t";
                        (curTbl.rows[j].cells[i].colSpan > 1)の場合{
                            (var k = 0; k < curTbl.rows[j].cells[i].colSpan - 1; k++) {
                                outStr + = " t";
                            }
                        }
                        (i == 0) の場合 {
                            行数 == 0 && curTbl.rows[j].cells[i].rowSpan > 1 の場合 {
                                行 = curTbl.rows[j].cells[i].rowSpan - 1;
                            }
                        }
                    }
                    outStr + = "rn";
                }
            }

            それ以外 {
                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();
            (現在の月の長さ == 1) の場合 {
                現在の月 = "0" + 現在の月;
            }

            (curDate.length == 1)の場合{
                curDate = "0" + curDate;
            }

            (curHour.length == 1)の場合{
                curHour = "0" + curHour;
            }

            (現在の分の長さ == 1) の場合 {
                curMinute = "0" + curMinute;
            }

            (curSecond.length == 1)の場合{
                curSecond = "0" + curSecond;
            }
            var ファイル名 = "table" + "_" + curYear + curMonth + curDate + "_"
                    + curHour + curMinute + curSecond + ".csv";
            ファイル名を返します。

        }
        関数doFileExport(inName, inStr) {
            var xlsWin = null;
            (!!document.all("glbHideFrm"))の場合{
                xlsWin = glbHideFrm;
            }
            それ以外 {
                var 幅 = 6;
                var 高さ = 4;
                var openPara = "left=" + (window.screen.width / 2 - width / 2)
                        + ",top=" + (window.screen.height / 2 - height / 2)
                        + ",スクロールバー=いいえ,幅=" + 幅 + ",高さ=" + 高さ;
                xlsWin = window.open("", "_blank", openPara);
            }
            xlsWin.document.write(inStr);
            xlsWin.document.close();
            xlsWin.document.execCommand('Saveas', true, inName);
            xlsWin.close();

        }

        //Chrome メソッド var idTmr;
        関数 getExplorer() {
            var エクスプローラー = window.navigator.userAgent;
            //つまり  
            (explorer.indexOf("MSIE")> = 0)の場合{
                'ie' を返します。
            }
            //ファイアフォックス  
            そうでない場合 (explorer.indexOf("Firefox") >= 0) {
                'Firefox' を返します。
            }
            //クロム  
            そうでない場合 (explorer.indexOf("Chrome") >= 0) {
                'Chrome' を返します。
            }
            //オペラ  
            そうでない場合 (explorer.indexOf("Opera") >= 0) {
                'Opera' を返します。
            }
            //サファリ  
            そうでない場合 (explorer.indexOf("Safari") >= 0) {
                'Safari' を返します。
            }
        }
        関数メソッド5(テーブルID) {
            getExplorer() = = 'ie'の場合
            {
                var curTbl = document.getElementById(テーブルID);
                var oXL = 新しい ActiveXObject("Excel.Application");
                var oWB = oXL.Workbooks.Add();
                var xlsheet = oWB.ワークシート(1);
                var sel = document.body.createTextRange();
                sel.moveToElementText(curTbl);
                sel.select();
                sel.execCommand("コピー");
                xlsheet.貼り付け();
                oXL.Visible = true;

                試す {
                    var fname = oXL.Application.GetSaveAsFilename("Excel.xls", "Excel スプレッドシート (*.xls), *.xls");
                } キャッチ (e) {
                    print("ネストされた catch がキャッチされました " + e);
                ついに
                    oWB.SaveAs(名前)
                    oWB.Close(変更を保存 = false);
                    XL.Quit();
                    oXL = ヌル;
                    idTmr = window.setInterval("クリーンアップ();", 1);
                }

            }
            それ以外
            {
                tableToExcel(テーブルID)
            }
        }
        関数クリーンアップ() {
            ウィンドウのクリア間隔(idTmr);
            ゴミを収集します();
        }
        var tableToExcel = (関数() {
            var uri = 'data:application/vnd.ms-excel;base64,',
                    テンプレート = '<html><head><meta charset="UTF-8"></head><body><table>{table}</table></body></html>',
                    base64 = 関数 { return window.btoa(unescape(encodeURIComponent(s))) },
                    フォーマット = 関数(s, c) {
                        s.replace(/{(\w+)}/g, を返す
                                関数(m, p) { 戻り値 c[p]; }) }
            関数(テーブル、名前)を返す{
                if (!table.nodeType) テーブル = document.getElementById(テーブル)
                var ctx = {ワークシート: name || 'ワークシート', テーブル: table.innerHTML}
                window.location.href = uri + base64(format(template, ctx))
            }
        })()

    </スクリプト>

これで、純粋な JS を使用してテーブルを Excel にエクスポートする方法に関するこの記事は終了です。JS を使用してテーブルを Excel にエクスポートする方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • JavaScript を使用して csv ファイル (Excel) をエクスポートする方法の例
  • JS 対応ブラウザ用に Excel (CSV) ファイルをエクスポートする方法
  • テーブルを Excel にエクスポートし、JS に基づいてスタイルを保持する
  • js を使用してデータを EXCEL にエクスポートします (大量のデータのエクスポートをサポートします)
  • JS を使って Excel をエクスポートする 5 つの方法を詳しく解説 [ソースコードのダウンロードあり]
  • jsフロントエンドからExcelをエクスポートする方法
  • JSはExcelとCSVファイルのエクスポートを実装します

<<:  3分でUbuntu 16.04を初期化し、Java、Maven、Docker環境をデプロイする

>>:  画像とテキストでHTTPヘッダーのあらゆる側面を理解する

推薦する

MySQL のロックとトランザクションの簡単な分析

MySQL 自体はファイルシステムに基づいて開発されましたが、ロックの存在が異なります。データベース...

nginx のロケーションで URI の傍受を実装する方法

例:場所のルートとエイリアスルートディレクティブは、ルートによって設定されたディレクトリに検索ルート...

js のマクロタスクとマイクロタスクについての簡単な説明

目次1. JavaScriptについて2. JavaScript イベントループ3. マクロタスクと...

MySQLのバッファプールの詳細な説明

MySQL のデータはディスクに書き込む必要があることは誰もが知っています。ディスクの読み取りと書き...

各 Nginx プロセスで開くことができるファイルの最大数を設定する方法

1. システム内で開いているファイルの最大数を確認する #現在のリソース制限設定を表示する ulim...

Nest.js 環境変数の設定とシリアル化の詳細な説明

環境変数の設定の簡単な説明プログラムは、環境によって異なる環境変数を必要とします。たとえば、実稼働環...

Vueはシンプルなショッピングカートの例を実装します

この記事では、参考までに、Vue の具体的なコードを共有して、簡単なショッピングカートを実装します。...

vue+echarts で中国地図のフロー効果を実現する (詳細な手順)

@vue+echarts は中国地図のフロー効果を実現します#レンダリングを見てみましょう手順:コ...

TypeScript での関数オーバーロード

目次1. 関数シグネチャ2. 関数のオーバーロード2.1 オーバーロードされたシグネチャは呼び出し可...

非表示のフォームテキストを表示するJavaScript

この記事では、フォームの隠しテキストを表示するためのJavaScriptの具体的なコードを参考までに...

Nexus をベースに Alibaba Cloud プロキシ ウェアハウスを構成するプロセスの分析

Nexus のデフォルトのリモートリポジトリは https://repo1.maven.org/ma...

Vue でバイナリ ファイル ストリームを受信して​​ PDF プレビューを実現する方法

バックグラウンド コントローラー @RequestMapping("/getPDFStre...

uniappとvueの違いの詳細な説明

目次1. シンプルなページの例2.uni-appはvueコンポーネントとミニプログラムネイティブコン...

MacでのMySQL5.7.22のインストール手順

1. インストールパッケージを使用してMySQLをインストールします(オンラインダウンロードは遅すぎ...