protected void Bt_Export_Click(object sender, EventArgs e) { QueryASPxGridView(); GV_PART.ExportXlsxToResponse("渗透实验_" + System.DateTime.Now.ToString("yyyyMMdd"), new DevExpress.XtraPrinting.XlsxExportOptionsEx { ExportType = DevExpress.Export.ExportType.WYSIWYG }); //导出到Excel }
public void QueryASPxGridView() { string sql = @"exec Report_ST '{0}','{1}'"; sql = string.Format(sql, txt_ym.Text, txt_jq.Text); DataTable dt = SQLHelper.Query(sql).Tables[0]; GV_PART.DataSource = dt; GV_PART.DataBind(); }
protected void GV_PART_CustomCellMerge(object sender, DevExpress.Web.ASPxGridViewCustomCellMergeEventArgs e) { /* *在这种情况下,可以处理CustomCellMerge事件来手动实现单元格合并。该事件对列中的每对相邻单元格激发。 *事件参数属性提供有关已处理列(列)、包含已处理单元格的行的可见索引(RowVisibleIndex1和RowVisibleIndex2)及其值(Value1和Value2)的信息。 * 若要提供自定义合并逻辑,请将Handled属性设置为true,并使用Merge属性指定是否应合并当前处理的单元格。如 果合并单元格,则结果单元格值等于Value1。 * *注意:行合并后,会无法选定焦点行,焦点行失效,不出现焦点行,也无法选定当前行上屏修改数据 */ string sFiledName = ""; //当前单元格所在列的列名定义 sFiledName = e.Column.FieldName; // ((GridViewEditDataColumn)e.Column).FieldName;//由于e.Column继承GridViewEditDataColumn父类,所以强转成父类然后调用FieldName即可获取列名 if (lMergeFileds.Contains(sFiledName) == true) //lMergeFileds:List集合,即需要合并列的列名集合,sFiledName:当前单元格所在列名 { int iFirst_Row = e.RowVisibleIndex1; //当前行的行号 int iSecond_Row = e.RowVisibleIndex2; //下一行的行号 object oFirst_Value = e.Value1; //当前行单元格的值 object oSecond_Value = e.Value2; //下一行单元格的值 object oYwbh_First = GV_PART.GetRowValues(iFirst_Row, sMergeByKey); //获取当前行关键列的单元格的值,注:关键列是指依据哪列进行合并的列名(字符型) object oYwbh_Second = GV_PART.GetRowValues(iSecond_Row, sMergeByKey); //获取第二行关键列的单元格的值,注:关键列是指依据哪列进行合并的列名(字符型) object oYwbh_First2 = GV_PART.GetRowValues(iFirst_Row, sMergeByKey2); object oYwbh_Second2 = GV_PART.GetRowValues(iSecond_Row, sMergeByKey2); if (oYwbh_First.Equals(oYwbh_Second) && oYwbh_First2.Equals(oYwbh_Second2)) //当第一行业务编号与第二行业务编号相同时 { if (oFirst_Value.Equals(oSecond_Value)) //当第一行单元格的值与第二行单元格的值相同时 { e.Merge = true; //合并 } else//当第一行单元格的值与第二行单元格的值不相同时 { e.Merge = false;//不合并 } } else//当第一行业务编号与第二行业务编号不相同时 { e.Merge = false; } } e.Handled = true;//关键代码:此句负责执行上面的合并,刷新客户端的表格中的合并情况 }