【c#】Aspose打印到Excel模板已经合并单元格

/// <summary>
        /// 审核汇总
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void linkPsjg_Click(object sender, EventArgs e)
        {
            DataTable dt = SqlData.ExecuteDataset(DbConfig.GetSetting(), CommandType.Text, BuildSQL()).Tables[0];
            if (dt.Rows.Count <= 0) 
            {
                PageCtrl.ShowMessage1(this,"提示:暂无数据!");
                return;
            }
            dt=PageCtrl.AddSeriNumToDataTable(dt,"xuh");
            dt.TableName = "yddt";
            Aspose.Cells.WorkbookDesigner designer = new Aspose.Cells.WorkbookDesigner();
            string path = Server.MapPath("../ExcelCells/jxj_xyjxj_pshzb.xls");
            designer.Open(path); //打开Excel模板

            Workbook workbook = designer.Workbook; //工作簿 
            //for (int i = 0; i < dt.Rows.Count; i++)
            //{
            //    for (int k = 0; k < dt.Columns.Count; k++)
            //    {
            //        string column = dt.Columns[k].ColumnName;
            //        workbook.Worksheets[0].Replace("$" + column + "$", dt.Rows[i][column].ToString());
            //    }
            //}


            designer.SetDataSource("sqnd", dt.Rows[0]["sqnd"].ToString());
            designer.SetDataSource("yxmc", dt.Rows[0]["yxmc"].ToString());
            designer.SetDataSource("dyrq", DateTime.Now.ToString("yyyy年MM月mm日"));

            workbook.Worksheets[0].Replace("$sqnd$", drpnd.SelectedItem.Text.Trim());
            workbook.Worksheets[0].Replace("$yxmc$", SearchXyZy1.yxText);
            workbook.Worksheets[0].Replace("$dyrq$", DateTime.Now.ToString("yyyy年MM月mm日"));


            designer.SetDataSource(dt);//设置数据源
            designer.Process();//自动赋值



            string filename = "学业奖学金评审结果汇总表.xls";
            if (System.IO.File.Exists(filename))
            {
                System.IO.File.Delete(filename);
            }

            designer.Save(System.Web.HttpUtility.UrlEncode(System.Text.Encoding.UTF8.GetBytes(filename)), Aspose.Cells.SaveType.OpenInExcel, Aspose.Cells.FileFormatType.Excel2003, HttpContext.Current.Response);
            Response.End();

        }

/// <summary>
        /// 申报材料
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void linkSbcl_Click(object sender, EventArgs e)
        {
            string sql = @"select ROW_NUMBER()over(order by a.id) id,b.xm,b.xh,yxmc=(select c.XSMC from py_xs c where c.XSBH=b.Yxsh),
            d.zzsx,d.kcjqcj,a.cgmc,a.sm,a.sj,a.kw,a.jb,hbhs=(select COUNT(*) from jxj_xyjxj_kycg e where e.xh=a.xh and e.sqnd=a.sqnd)
             from jxj_xyjxj_kycg a left join xj b on a.xh=b.xh
             left join jxj_xyjxj d on d.xh=a.xh and d.sqnd=a.sqnd  where 1=1 ";


            if (drpnj.SelectedValue.ToString() != "")
                sql += " and b.nj='" + drpnj.SelectedValue.ToString() + "'";
            if (drpxslb.SelectedValue != "")
                sql += " and b.xslb='" + drpxslb.SelectedValue + "'";
            if (txth.Text.Trim() != "")
                sql += " and (b.xh='" + txth.Text.Trim() + "' or b.xm like '" + txth.Text.Trim() + "')";

            if (drpnd.SelectedValue != "")
                sql += " and a.sqnd='" + drpnd.SelectedValue + "'";

            if (SearchXyZy1.yxValue != "")
                sql += " and b.yxsh='" + SearchXyZy1.yxValue + "'";
            if (SearchXyZy1.zyValue != "")
                sql += " and b.zydm='" + SearchXyZy1.zyValue + "'";

            sql += "  order by case d.jxjjb when '一' then 1 when '二' then '2' when '三' then '3' else '4' end  asc";


            DataTable dt = SqlData.ExecuteDataset(DbConfig.GetSetting(), CommandType.Text, sql).Tables[0];
            if (dt.Rows.Count <= 0)
            {
                PageCtrl.ShowMessage1(this, "提示:暂无数据!");
                return;
            }
            dt.TableName = "yddt";
            Aspose.Cells.WorkbookDesigner designer = new Aspose.Cells.WorkbookDesigner();
            string path = Server.MapPath("../ExcelCells/jxj_xyjxj_sbcl.xls");
            designer.Open(path); //打开Excel模板
            designer.SetDataSource(dt);//设置数据源
            designer.Process();//自动赋值


            Workbook wk = designer.Workbook;
            Aspose.Cells.Worksheet sheet = designer.Workbook.Worksheets[0];
            Cells cel = sheet.Cells;

            //DataRow[] dataRows = dt.Select("条件");
            int j = 1;
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                cel.Merge(i + 3, 0, Convert.ToInt32(dt.Rows[i]["hbhs"].ToString().Trim()), 1);
                cel[i + 3, 0].PutValue(j);
                cel.Merge(i + 3, 1, Convert.ToInt32(dt.Rows[i]["hbhs"].ToString().Trim()), 1);
                cel[i + 3, 1].PutValue(dt.Rows[i]["xm"].ToString().Trim());
                cel.Merge(i + 3, 2, Convert.ToInt32(dt.Rows[i]["hbhs"].ToString().Trim()), 1);
                cel[i + 3, 2].PutValue(dt.Rows[i]["xh"].ToString().Trim());
                cel.Merge(i + 3, 3, Convert.ToInt32(dt.Rows[i]["hbhs"].ToString().Trim()), 1);
                cel[i + 3, 3].PutValue(dt.Rows[i]["yxmc"].ToString().Trim());
                cel.Merge(i + 3, 4, Convert.ToInt32(dt.Rows[i]["hbhs"].ToString().Trim()), 1);
                cel[i + 3, 4].PutValue(dt.Rows[i]["zzsx"].ToString().Trim());
                cel.Merge(i + 3, 5, Convert.ToInt32(dt.Rows[i]["hbhs"].ToString().Trim()), 1);
                cel[i + 3, 5].PutValue(dt.Rows[i]["kcjqcj"].ToString().Trim());
                i = i + Convert.ToInt32(dt.Rows[i]["hbhs"].ToString().Trim()) - 1;
                j++;
            }




            //int j = 1;
            //int row = 0;
            //int Addrow = 2;
            //int rowindex = 1;
            //string tex = cel[1, 2].Value.ToString().Trim();
            //for (int i = 1; i < dt.Rows.Count; i++)
            //{
            //    if (i != 0 && dt.Rows[i]["xh"].ToString().Trim() != dt.Rows[i - 1]["xh"].ToString().Trim())
            //    {
            //        rowindex = 1;
            //    }
            //    if (rowindex == 1)
            //    {
            //        j = i + 1;
            //        row = 1;
            //        tex = dt.Rows[i]["xh"].ToString().Trim();
            //        while (j < dt.Rows.Count && dt.Rows[j]["xh"].ToString().Trim() == dt.Rows[j - 1]["xh"].ToString().Trim())
            //        {
            //            row++;
            //            j++;
            //        }
            //        j = i + Addrow;
            //        i = i + row - 1;
            //        //if (j != 1)
            //        //{
            //        //    cel.InsertRows(j - 1, 1);  //在j-1插入1行
            //        //}
            //        cel.Merge(j, 2, row, 1);
            //        cel[j, 2].PutValue(tex);
            //        rowindex = 0;
            //        Addrow++;

            //    }
            //}




            string filename = "学业奖学金申报材料汇总表.xls";
            if (System.IO.File.Exists(filename))
            {
                System.IO.File.Delete(filename);
            }

            designer.Save(System.Web.HttpUtility.UrlEncode(System.Text.Encoding.UTF8.GetBytes(filename)), Aspose.Cells.SaveType.OpenInExcel, Aspose.Cells.FileFormatType.Excel2003, HttpContext.Current.Response);
            Response.End();
            
            
            //string path = Server.MapPath("../ExcelCells/jxj_xyjxj_sbcl.xls");
            //Workbook workbook = new Workbook();
            //workbook.Open(path);
            //Cells cells = workbook.Worksheets[0].Cells;
            //for (int i = 0; i < xsdt.Rows.Count; i++)
            //{
            //    for (int j = 0; j < 6; j++)
            //    {
            //        //合并单元格cells.Merge(1, 0, 3, 1) 参数1代表当前行,参数0代表当前行当前列即第一行第一列,参数3合并的行数,参数4合并的列数
            //        cells.Merge(i, j, Convert.ToInt32(xsdt.Rows[i]["hbhs"].ToString()), 1);
            //        //填充值
            //        cells[i, j].PutValue(xsdt.Rows[i]["id"].ToString());
            //    }
            //}

            //string filename = "学业奖学金申报材料汇总表.xls";
            //if (System.IO.File.Exists(filename))
            //{
            //    System.IO.File.Delete(filename);
            //}

            //workbook.Save(System.Web.HttpUtility.UrlEncode(System.Text.Encoding.UTF8.GetBytes(filename)), Aspose.Cells.SaveType.OpenInExcel, Aspose.Cells.FileFormatType.Excel2003, HttpContext.Current.Response);
            //Response.End();
        }

猜你喜欢

转载自blog.csdn.net/u012949335/article/details/54972926