亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

帶復雜表頭合并單元格的HtmlTable轉換成DataTable并導出Excel

2019-11-17 01:27:51
字體:
來源:轉載
供稿:網友

帶復雜表頭合并單元格的HtmlTable轉換成DataTable并導出Excel

步驟:

一、前臺JS取HtmlTable數據,根據設定的分隔符把數據拼接起來

<!--導出Excel--><script type="text/javascript">    //導出Excel    function exportExcel() {        var data = "";        $("#divRptTable").find("table").find("tr").each(function () {            var tr = $(this);            tr.find("td").each(function () {                var td = $(this);                var rowspan = td.attr("rowspan") ? td.attr("rowspan") : 1;                var colspan = td.attr("colspan") ? td.attr("colspan") : 1;                data = data + td.text() + "#{valueSeparater}" + rowspan + "#{valueSeparater}" + colspan + "#{columnSeparater}";            });            data = data + "#{rowSeparater}";        });        $("#hidTableData").val(data);        var year = $("select[name='year']").find("option[value='" + $("select[name='year']").val() + "']").text();        var sem = $("select[name='sem']").find("option[value='" + $("select[name='sem']").val() + "']").text();        var scl = $("select[name='school']").find("option[value='" + $("select[name='school']").val() + "']").text();        var grade = $("select[name='grade']").find("option[value='" + $("select[name='grade']").val() + "']").text();        var exam = $("select[name='exam']").find("option[value='" + $("select[name='exam']").val() + "']").text();        $("#hidTitle").val(scl + " " + grade + " " + year + " " + sem + " " + exam);        $("#frm").submit();    }</script>
View Code

二、后臺先把前臺傳過來的字符串轉換成HtmlTable實體,然后再轉換成DataTable實體

using System;using System.Collections.Generic;using System.Text;using System.Data;using System.Web.UI.HtmlControls;// 2014年4月2日namespace QuaEdu.Controller.Core.Utils{    /// <summary>    /// HtmlTable工具類    /// 提供字符串轉換成HtmlTable,HtmlTable轉換成DataTable    /// </summary>    public class HtmlTableUtil    {        #region 變量        /// <summary>        /// 行分隔        /// </summary>        public static readonly string rowSeparater = "|||||";        /// <summary>        /// 列分隔        /// </summary>        public static readonly string columnSeparater = "@@@@@";        /// <summary>        /// 值分隔        /// </summary>        public static readonly string valueSeparater = "$$$$$";        /// <summary>        /// 空值標識        /// </summary>        public static readonly string nullFlag = "HtmlTableUtil_NULL_FLAG";        #endregion        #region 字符串轉換成HtmlTable        /// <summary>        /// 字符串轉換成HtmlTable        /// </summary>        public static HtmlTable String2HtmlTable(string data)        {            HtmlTable htmlTable = new HtmlTable();            string[] rowArray = data.Split(new string[] { rowSeparater }, StringSplitOptions.RemoveEmptyEntries);            foreach (string row in rowArray)//遍歷行            {                HtmlTableRow htmlTableRow = new HtmlTableRow();                string[] colArray = row.Split(new string[] { columnSeparater }, StringSplitOptions.RemoveEmptyEntries);                foreach (string col in colArray)//遍歷列                {                    HtmlTableCell htmlTableCell = new HtmlTableCell();                    string[] valArr = col.Split(new string[] { valueSeparater }, StringSplitOptions.None);                    string val = valArr[0];                    int rowspan = int.Parse(valArr[1]);                    int colspan = int.Parse(valArr[2]);                    htmlTableCell.InnerText = val;                    htmlTableCell.RowSpan = rowspan;                    htmlTableCell.ColSpan = colspan;                    htmlTableRow.Cells.Add(htmlTableCell);                }                htmlTable.Rows.Add(htmlTableRow);            }            return htmlTable;        }        #endregion        #region HtmlTable轉換成DataTable        /// <summary>        /// HtmlTable轉換成DataTable        /// </summary>        public static DataTable HtmlTable2DataTable(HtmlTable htmlTable)        {            DataTable dataTable = new DataTable();            #region DataTable列數            int colCount = 0;            if (htmlTable.Rows.Count > 0)            {                foreach (HtmlTableCell htmlTableCell in htmlTable.Rows[0].Cells)                {                    colCount += htmlTableCell.ColSpan;                }            }            #endregion            #region DataTable行數            int rowCount = htmlTable.Rows.Count;            #endregion            #region 給DataTable添加列            for (int i = 0; i < colCount; i++)            {                dataTable.Columns.Add();            }            #endregion            #region 給DataTable添加行            for (int i = 0; i < rowCount; i++)//遍歷行            {                DataRow dataRow = dataTable.NewRow();                for (int j = 0; j < colCount; j++)//遍歷列                {                    dataRow[j] = null;                }                dataTable.Rows.Add(dataRow);            }            #endregion            #region 轉換            for (int i = 0; i < htmlTable.Rows.Count; i++)//遍歷HtmlTable行            {                HtmlTableRow htmlTableRow = htmlTable.Rows[i];                int delta = 0;//列增量                for (int j = 0; j < htmlTableRow.Cells.Count; j++)//遍歷HtmlTable列                {                    HtmlTableCell htmlTableCell = htmlTableRow.Cells[j];                    #region 計算delta                    for (int k = j + delta; k < colCount; k++)                    {                        string cellValue = dataTable.Rows[i][k].ToString();                        if (cellValue != null)                        {                            if (cellValue.IndexOf(nullFlag) == 0)                            {                                delta++;                                continue;                            }                        }                        break;                    }                    #endregion                    #region 填充DataTable                    dataTable.Rows[i][j + delta] = htmlTableCell.InnerText + valueSeparater + htmlTableCell.RowSpan + valueSeparater + htmlTableCell.ColSpan;                    if (htmlTableCell.RowSpan > 1 || htmlTableCell.ColSpan > 1)                    {                        for (int m = 0; m < htmlTableCell.RowSpan; m++)                        {                            for (int n = 0; n < htmlTableCell.ColSpan; n++)                            {                                if (!(m == 0 && n == 0))                                {                                    int ii = i + m;                                    int jj = j + delta + n;                                    dataTable.Rows[ii][jj] = nullFlag + valueSeparater + "1" + valueSeparater + "1";                                }                            }                        }                    }                    #endregion                }            }            #endregion            return dataTable;        }        #endregion    }}
View Code

三、將DataTable導出到Excel

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品福利视频导航| 久久在线视频在线| 欧美成年人视频网站欧美| 狠狠躁夜夜躁人人躁婷婷91| 一二美女精品欧洲| 国产美女搞久久| 国产日韩欧美视频| 在线视频日韩精品| 日韩av网站导航| 秋霞av国产精品一区| 国产亚洲精品综合一区91| 2019中文字幕免费视频| 久久男人的天堂| 中文字幕日韩欧美精品在线观看| 久久久噜噜噜久噜久久| 亚洲一区二区在线播放| 亚洲91av视频| 亚洲色图五月天| 98精品在线视频| 久久伊人91精品综合网站| 精品视频在线观看日韩| 日韩视频免费在线观看| 国产91免费观看| 亚洲国产欧美一区| 69av成年福利视频| 国产日韩av在线播放| 亚洲精品久久久久中文字幕欢迎你| 久久亚洲精品一区二区| 亚洲一区二区三区香蕉| 国产一区二区av| 日本久久中文字幕| 日韩电影免费观看在线| 一区二区亚洲精品国产| 精品国产欧美成人夜夜嗨| 精品久久久香蕉免费精品视频| 久久久www成人免费精品张筱雨| 欧美国产亚洲精品久久久8v| 久久精品青青大伊人av| 精品日韩中文字幕| 成人欧美一区二区三区在线| 538国产精品视频一区二区| 精品高清一区二区三区| 91在线免费看网站| 欧美在线精品免播放器视频| 国产91久久婷婷一区二区| 日韩女在线观看| 国产a∨精品一区二区三区不卡| 欧美性高潮床叫视频| 欧美在线视频观看免费网站| 国产成人一区二| 日本精品性网站在线观看| 高清欧美性猛交| 亚洲老板91色精品久久| 亚洲一级免费视频| 狠狠躁夜夜躁人人爽天天天天97| 中文日韩电影网站| 91在线视频免费| 中文国产成人精品久久一| 在线观看日韩专区| 国产精品欧美一区二区三区奶水| 精品二区三区线观看| 在线成人中文字幕| 成人国产精品免费视频| 日韩中文娱乐网| 一区二区三区日韩在线| 亚洲女人天堂av| 97视频在线观看视频免费视频| 久热精品在线视频| 久久久久久久久久久亚洲| 欧美国产精品人人做人人爱| 久久久久日韩精品久久久男男| 国产精品久久久久久久午夜| 日韩免费观看av| 亚洲一区二区三区视频| 欧美成人午夜激情在线| 91亚洲国产成人久久精品网站| 96sao精品视频在线观看| 清纯唯美亚洲激情| 国产精品三级久久久久久电影| 亚洲国产欧美自拍| 欧美另类第一页| 欧美大成色www永久网站婷| 国产免费一区二区三区在线能观看| 久久精品视频中文字幕| 久久久久亚洲精品国产| 久久久久成人网| 日韩欧美极品在线观看| 国产丝袜视频一区| 国产亚洲日本欧美韩国| 日韩在线观看视频免费| 欧美丰满少妇xxxxx做受| 国产精品一区av| 国产精品丝袜久久久久久高清| 欧美另类极品videosbest最新版本| 高清一区二区三区四区五区| 亚洲午夜未满十八勿入免费观看全集| 亚洲国产精品va在线看黑人| 色婷婷综合久久久久中文字幕1| 国产成人精品久久| 国产精品一二三视频| 97精品在线观看| 国内久久久精品| 亚洲第一精品电影| 精品日本美女福利在线观看| 中文字幕亚洲图片| 亚洲r级在线观看| 欧美国产欧美亚洲国产日韩mv天天看完整| 国产在线拍揄自揄视频不卡99| 国产伦精品一区二区三区精品视频| 日韩一区二区精品视频| 亚洲一级一级97网| 国产一区二区三区中文| 在线观看欧美视频| 日韩在线精品视频| 欧美超级免费视 在线| 永久免费看mv网站入口亚洲| 久久人91精品久久久久久不卡| 亚洲精品久久久久久久久| 精品日韩美女的视频高清| 97色在线视频观看| 91在线网站视频| 中文字幕欧美精品日韩中文字幕| 日本精品视频在线观看| 国产精品jizz在线观看麻豆| 最新国产精品亚洲| 日韩av电影手机在线| 国产中文字幕91| 国产精品第二页| 美女撒尿一区二区三区| 91经典在线视频| 欧美一级高清免费播放| 日韩欧美精品免费在线| 91精品久久久久| 亚洲日韩欧美视频一区| 26uuu亚洲伊人春色| 国产精品你懂得| 国产精品久久久久久久久久东京| 国产精品入口尤物| 国产成人精品最新| 日韩成人久久久| 97久久精品视频| 欧美日韩国产一中文字不卡| 久久视频中文字幕| 69久久夜色精品国产69乱青草| 中文字幕亚洲图片| 日韩有码视频在线| 日韩在线观看高清| 国产成人拍精品视频午夜网站| 国产精品免费久久久久影院| 国产精品一区av| 亚洲日韩中文字幕在线播放| 欧美人成在线视频| 日韩高清电影免费观看完整| 欧美激情区在线播放| 国产成人av在线| 久久99国产精品自在自在app| 国产精品视频自拍| 91精品国产乱码久久久久久蜜臀| 91探花福利精品国产自产在线| 精品久久久久久中文字幕| 久久99精品久久久久久青青91| 亚洲一区二区在线播放| 亚洲欧美在线看| 成人做爽爽免费视频|