.net 后端创建table表格

报表图示展示:

 

 

 

前端:

<div style="overflow-x:scroll;width: 100%">
<table id="htblResult" style="width:101%" runat="server" rules="all" class="table_con list-table">
</table>

 

 

后端:

    //初始化加载该方法

        private void BindData()
        {
            HtmlAddHeader();
            HtmlAddRow();
        }

        /// <summary>
        /// 添加标题
        /// </summary>
        /// <param name="CellNameList"></param>
        /// <param name="RowNameList"></param>
        private void HtmlAddHeader()
        {
            HtmlTableRow HeaderRow1 = new HtmlTableRow();
            HeaderRow1.AddHeaderCell("A", "", 1, 3);
            HeaderRow1.AddHeaderCell("B", "", 6);
            HeaderRow1.AddHeaderCell("C", "", 12);
            HeaderRow1.AddHeaderCell("D", "", 1, 3);
            htblResult.Rows.Add(HeaderRow1);
            HeaderRow1 = new HtmlTableRow();
            HeaderRow1.AddHeaderCell("1", "", 3);
            HeaderRow1.AddHeaderCell("2", "", 3);
            HeaderRow1.AddHeaderCell("3", "", 3);
            HeaderRow1.AddHeaderCell("4", "", 3);
            HeaderRow1.AddHeaderCell("5", "", 3);
            HeaderRow1.AddHeaderCell("6", "", 3);
            htblResult.Rows.Add(HeaderRow1);
            HeaderRow1 = new HtmlTableRow();
            HeaderRow1.AddHeaderCell("累计完成");
            HeaderRow1.AddHeaderCell("目标");
            HeaderRow1.AddHeaderCell("完成率");
            HeaderRow1.AddHeaderCell("累计完成");
            HeaderRow1.AddHeaderCell("目标");
            HeaderRow1.AddHeaderCell("完成率");
            HeaderRow1.AddHeaderCell("累计完成");
            HeaderRow1.AddHeaderCell("目标");
            HeaderRow1.AddHeaderCell("完成率");
            HeaderRow1.AddHeaderCell("累计完成");
            HeaderRow1.AddHeaderCell("目标");
            HeaderRow1.AddHeaderCell("完成率");
            HeaderRow1.AddHeaderCell("累计完成");
            HeaderRow1.AddHeaderCell("目标");
            HeaderRow1.AddHeaderCell("完成率");
            HeaderRow1.AddHeaderCell("累计完成");
            HeaderRow1.AddHeaderCell("目标");
            HeaderRow1.AddHeaderCell("完成率");
            htblResult.Rows.Add(HeaderRow1);
        }

        /// <summary>
        /// 添加数据行
        /// </summary>
        private void HtmlAddRow()
        {

            double length = 0;
            double FinishCount = 0;
            HtmlTableRow tableRow = new HtmlTableRow();
            foreach (var region in regionList)
            {
                if (!IsProvinceRegion)
                {
                    if (region != user.Region)
                        continue;
                }
                tableRow = new HtmlTableRow();
                tableRow.AddCell(region.GetShortName());

                BindRowData(length, FinishCount, tableRow, itemListByRegion, ResourceItemListByRegion);
            }
            #region 合计
            tableRow = new HtmlTableRow();
            tableRow.AddCell("合计");
            BindRowData(length, FinishCount, tableRow, taskItemList, resourceItemList);
            #endregion



            //导出功能:
            Workbook workbook;
            Cells cells;
            Aspose.Cells.Style style;
            Common.Instance.SetExcelStyle(out workbook, out cells, out style);
            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 20; j++)
                {
                    if (i == 0)
                    {
                        if (j == 0)
                            cells[i, j].PutValue("A");
                        if (j == 19)
                            cells[i, j].PutValue("B");
                        if (j > 0 && j < 7)
                            cells[i, j].PutValue("C");
                        if (j > 6 && j < 19)
                            cells[i, j].PutValue("D");
                    }
                    if (i == 1)
                    {
                        if (j == 0)
                            cells[i, j].PutValue("A");
                        if (j >= 1 && j <= 3)
                        {
                            cells[i, j].PutValue("1");
                            cells.SetColumnWidth(j, 20);
                        }
                        if (j >= 4 && j <= 6)
                        {
                            cells[i, j].PutValue("2");
                            cells.SetColumnWidth(j, 20);
                        }
                        if (j >= 7 && j <= 9)
                        {
                            cells[i, j].PutValue("3");
                            cells.SetColumnWidth(j, 20);
                        }
                        if (j >= 10 && j <= 12)
                        {
                            cells[i, j].PutValue("4");
                            cells.SetColumnWidth(j, 20);
                        }
                        if (j >= 13 && j <= 15)
                        {
                            cells[i, j].PutValue("5");
                            cells.SetColumnWidth(j, 20);
                        }
                        if (j >= 16 && j <= 18)
                        {
                            cells[i, j].PutValue("6");
                            cells.SetColumnWidth(j, 20);
                        }
                    }
                    if (i == 2)
                    {
                        if (j == 0)
                            cells[i, j].PutValue("A");
                        if (j == 1 || j == 4 || j == 7 || j == 10 || j == 13 || j == 16)
                            cells[i, j].PutValue("累计完成");
                        if (j == 2 || j == 5 || j == 8 || j == 11 || j == 14 || j == 17)
                            cells[i, j].PutValue("目标");
                        if (j == 3 || j == 6 || j == 9 || j == 12 || j == 15 || j == 18)
                            cells[i, j].PutValue("完成率");
                        //if (j == 13)
                        //    cells[i, j].PutValue("季度");

                    }
                    cells[i, j].SetStyle(style);
                }
                cells.SetRowHeight(i, 30);
            }
            //Merge(cells, 3);
            cells.Merge(0, 0, 3, 1);
            cells.Merge(0, 19, 3, 1);
            cells.Merge(0, 1, 1, 6);
            cells.Merge(0, 7, 1, 12);
            cells.Merge(1, 1, 1, 3);
            cells.Merge(1, 4, 1, 3);
            cells.Merge(1, 7, 1, 3);
            cells.Merge(1, 10, 1, 3);
            cells.Merge(1, 13, 1, 3);
            cells.Merge(1, 16, 1, 3);
            for (int i = 3; i < htblResult.Rows.Count; i++)
            {
                for (int j = 0; j < htblResult.Rows[i].Cells.Count; j++)
                {
                    cells[i, j].PutValue(htblResult.Rows[i].Cells[j].InnerText);
                    style = workbook.Styles[workbook.Styles.Add()];
                    style.Borders[BorderType.LeftBorder].LineStyle = CellBorderType.Thin;
                    style.Borders[BorderType.RightBorder].LineStyle = CellBorderType.Thin;
                    style.Borders[BorderType.TopBorder].LineStyle = CellBorderType.Thin;
                    style.Borders[BorderType.BottomBorder].LineStyle = CellBorderType.Thin;
                    cells[i, j].SetStyle(style);
                    cells.SetColumnWidth(j, 10);
                }
                cells.SetRowHeight(i, 20);
            }
            Response.ContentType = "application/vnd.ms-excel";
            Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode("共享资源获取应用率统计.xls"));
            workbook.Save(Response.OutputStream, FileFormatType.Excel97To2003);
            Response.End();

 

posted @ 2020-03-26 15:44  suqq小白  阅读(682)  评论(1编辑  收藏  举报