Ⅰ 如何设计Excel动态表头
软件版本:Office2013
方法如下:
1. 先设置动态表头实现条件,这里通过一个组合框的选择来实现表头的变化,组合框设置如下图所示:
Ⅱ dojo grid动态设置字段可编辑
在实际工作中我们经常要使用程序实现一些较复杂的表格,这些表格,不但表头是多层的,而且要求列数也是不确定的。例如表1的表格,表头分两层,其科室的数量越多、表的列数也越多。FOXPRO的GRID控件是一个非常有用,而且功能强大的控件,使用它实现一个单层表头的表格是非常容易的。当然如果科室较少,你可以使用Line和Label画一个固定的表头,但如果科室较多或不确定,固定的表头显然在表单上放不下,所以要实现以上的表格,就需要使用GRID控件的嵌套功能。以实现以上表格为例,假设表头的科室名称存储在一个单表ks-table中,其中字段name存放科室的名称。首先创建一个表单,在表单的load方法中创建二个临时表。
Ⅲ 在Excel表格中,要保持表头不动,表内数据可拉动,要怎样设置。
冻结首行就可以了。
1、电脑打开Excel表格。
Ⅳ 关于jquery easyui的datagrid组件,如何动态加载表头及其数据
你看一下easyui的API就知道这里面是什么格式了 比如data在后台看来就是一个map里面有两个数据一个是rows就是你的数据一个是total是总数量是用于分页的 当然不用分页不用传 columns则是对每一列的定义他是一个list套list 里面的list包含着一个个的map每一个map的参数都是定义这个列的属性 比如title列名field是对应数据里面的key还有一些其他的属性等等。 研究下API就明白了。
Ⅳ Excel如何制作动态表头
Excel如何制作动态表头,做一个动态表头,可将所有标题需要变动的部分做成单元格的引用,只要改动一处,所有的标题将一起跟着改变,也就可以解决这样的用Excel来管理各种各样的表格,这些表格的标题基本上是由单位名称加年份、月份和表格名称组成的。每隔一段时间打印这些表格时,都要将所有表格标题中的部分内容(如单位名称、年份或月份)重新进行更改,操作时不仅繁琐,而且容易出错的问题了。后来经过尝试实现了这个目标:
1.
制作表格标题初始化界面
为了操作方便,我们先插入一张新工作表,命名为“初始化”。在C7单元格中输入“请输入单位名称:”的文字提示,这样D7单元格可用于输入单位名称。
接下来右击工具栏,选择“窗体”命令,打开“窗体”工具栏。在C9单元格中输入“时间:”,D9单元格用于显示标题中的年份。单击“窗体”工具栏中的〔微调框〕按钮,在紧靠着D9单元格后绘制一个微调框对象。类似地,在紧靠着F9单元格后面再绘制一个微调框用于调整表格标题中的月份。
在E9和G9单元格中分别输入“年”和“月”字,并设为右对齐。
右击“微调框1”,选择“设置控制格式”命令,此时会打开“对象格式”对话框,切换到其中的“控制”选项卡。在“当前值”框中输入一个默认的年份如“2005”,在“最小值”和“最大值”框中输入年份的上限和下限,“步长”为“1”,在“单元格链接”框中输入要显示年份单元格的绝对地址如“$D$9”,设置完成后,单击〔确定〕按钮,这样微调框1和D9单元格就链接好了。类似地,可以将“微调框2”和F9单元格链接起来,要注意的是最大值和最小值受到月份本身的限制。
2.
设置表格标题
打开“加班记录”工作表,在表格标题位置处输入公式“=初始化!D7&&初始化!D9&&"年"&&初始化!F9&&"月份"&&"加班记录"”,按回车键(此时还不能看到最终效果),设置好标题的格式。类似地,只要稍作改变就可以将其他表格的标题一一制作好。
3.
调试表格标题
以上操作完成后我们就可以来调试了。回到“初始化”表中,输入学校名称并选择某年某月,此时返回到其他工作表中,我们就可以看到完整的表格标题了。
需要注意的是,用日期函数也可以让标题根据系统时间自动改变,但不方便调整到之前的某个年份或月份。
Ⅵ vue框架iview中Table动态表头可编辑内容的jsx写法
有时候会出现以下需求,类似这样
其中不确定有几个分组,可能是A,B两个, 也可能是 A, B, C,D四个,因为是后台配置出来的(且分组下面的展示都一样:如这里的 A1,A2,A3,A4)
在分组数量不确定的时候,如是后台配增或减了分组之后,前端也要相对应的在页面进行修改。而且每新增一个组,对应组下面的A1,A2,A3,A4都得重新写一次,还要保证表格内容是可编辑的。这个时候表格需要动态处理表头信息。如果用官方提供的写法,整个页面会变得超长,且大部分都是重复的,所以这里我使用JSX试了一下,发现效果还不错,下面是实现过程
因为是模拟的,所以一些demo中写死但可以异步加载数据的地方会备注
那么我们要做的第一步就是要先初始化表头信息。从而保证数据的正确性
在表头处理完成后就可以去请求数据了,这里也模拟了一下,最终效果如下
Ⅶ 怎么在TableView中动态设置表头和添加新行
您好,您这样:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
GridView1.DataSource = FormatDT();
GridView1.DataBind();
}
}
protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{
switch (e.Row.RowType)
{
//页头
case DataControlRowType.Header:
//第一行表头
TableCellCollection tcHeader = e.Row.Cells;
tcHeader.Clear();
tcHeader.Add(new TableHeaderCell());
tcHeader[0].Attributes.Add("bgcolor", "#8E8E8E");
tcHeader[0].Attributes.Add("rowspan", "0"); //跨Row
tcHeader[0].Attributes.Add("colspan", "9"); //跨Column
tcHeader[0].Text = "全部信息</tr><tr>";
//第二行表头
tcHeader.Add(new TableHeaderCell());
tcHeader[1].Attributes.Add("bgcolor", "#008A23");
tcHeader[1].Text = "身份证号码";
tcHeader.Add(new TableHeaderCell());
tcHeader[2].Text = "基本信息";
tcHeader[2].Attributes.Add("bgcolor", "#005EBB");
tcHeader[2].Attributes.Add("colspan", "3");
tcHeader.Add(new TableHeaderCell());
tcHeader[3].Text = "福利";
tcHeader[3].Attributes.Add("bgcolor", "#008A23");
tcHeader[3].Attributes.Add("colspan", "2");
tcHeader.Add(new TableHeaderCell());
tcHeader[4].Text = "应发合计";
tcHeader[4].Attributes.Add("bgcolor", "#008A23");
tcHeader.Add(new TableHeaderCell());
tcHeader[5].Text = "联系方式</tr><tr>";
tcHeader[5].Attributes.Add("bgcolor", "#005EBB");
tcHeader[5].Attributes.Add("colspan", "2");
//第三行表头
tcHeader.Add(new TableHeaderCell());
tcHeader[6].Text = "身份证号码";
tcHeader.Add(new TableHeaderCell());
tcHeader[7].Text = "姓名";
tcHeader.Add(new TableHeaderCell());
tcHeader[8].Text = "出生日期";
tcHeader.Add(new TableHeaderCell());
tcHeader[9].Text = "性别";
tcHeader.Add(new TableHeaderCell());
tcHeader[10].Text = "基本工资";
tcHeader.Add(new TableHeaderCell());
tcHeader[11].Text = "奖金";
tcHeader.Add(new TableHeaderCell());
tcHeader[12].Text = "应发合计";
tcHeader.Add(new TableHeaderCell());
tcHeader[13].Text = "家庭住址";
tcHeader.Add(new TableHeaderCell());
tcHeader[14].Text = "邮政编码";
break;
//数据行 内容自适应 不换行
case DataControlRowType.DataRow:
TableCellCollection cells1 = e.Row.Cells;
for (int i = 0; i < cells1.Count; i++)
{
cells1[i].Wrap = false; //设置此项切记 不要设置前台GridView宽度
}
break;
}
}
//创建DataTable
protected DataTable CreateDT()
{
DataTable tblDatas = new DataTable("Datas");
//序号列
//tblDatas.Columns.Add("ID", Type.GetType("System.Int32"));
//tblDatas.Columns[0].AutoIncrement = true;
//tblDatas.Columns[0].AutoIncrementSeed = 1;
//tblDatas.Columns[0].AutoIncrementStep = 1;
//数据列
tblDatas.Columns.Add("身份证号码", Type.GetType("System.String"));
tblDatas.Columns.Add("姓名", Type.GetType("System.String"));
tblDatas.Columns.Add("出生日期", Type.GetType("System.String"));
tblDatas.Columns.Add("性别", Type.GetType("System.String"));
tblDatas.Columns.Add("基本工资", Type.GetType("System.Decimal"));
tblDatas.Columns.Add("奖金", Type.GetType("System.Decimal"));
//统计列开始
tblDatas.Columns.Add("应发合计", Type.GetType("System.String"), "基本工资+奖金");
//统计列结束
tblDatas.Columns.Add("家庭住址", Type.GetType("System.String"));
tblDatas.Columns.Add("邮政编码", Type.GetType("System.String"));
tblDatas.Rows.Add(new object[] { null, "张三", "1982", "0", 3000, 1000, null, "深圳市", "518000" });
tblDatas.Rows.Add(new object[] { null, "李四", "1983", "1", 3500, 1200, null, "深圳市", "518000" });
tblDatas.Rows.Add(new object[] { null, "王五", "1984", "1", 4000, 1300, null, "深圳市", "518000" });
tblDatas.Rows.Add(new object[] { null, "赵六", "1985", "0", 5000, 1400, null, "深圳市", "518000" });
tblDatas.Rows.Add(new object[] { null, "牛七", "1986", "1", 6000, 1500, null, "深圳市", "518000" });
return tblDatas;
}
//转换DataTable中的数据 用于逻辑处理相应的数据 显示
protected DataTable FormatDT()
{
DataTable dt1 = CreateDT();
//容错处理 用于不确定 自动产生的列
if (dt1.Columns.Contains("性别"))
{
foreach (DataRow dr in dt1.Rows)
{
dr["性别"] = (dr["性别"].ToString() == "0") ? "女" : "男";
}
}
return dt1;
}
Ⅷ vb datagrid 控件使用 如何才能让显示出来的数据可以编辑
第一、Datagrid要有updata属性,使之可以编辑更新。这个可以跳过,没有问题的。
第二、我试验过AllowNewAdd,这个属性非常不容易控制,建议不使用。
第三、以程序动态建立数据源,使用ADO为例,创建一个recordset对象rs,需要DataGrid1.DataSource = rs 。更新以后用rs.updateBatch ,然后刷新DataGrid。DataGrid1.refresh。
第四、如果需要指定显示列,有两个方法
一个是控制DataGrid列可见性。示范代码如下:
Dim w As Integer
w = CInt(DataGrid1.Width * 0.9)
Dim c As Column
For Each c In DataGrid1.Columns
Select Case c.DataField
Case "id"
c.Visible = False
c.Width = 0
Case "联系人"
c.Visible = True
c.Width = CInt(w * 0.1)
Case "联系电话"
c.Visible = True
c.Width = CInt(w * 0.15)
Case "公司名称"
c.Visible = True
c.Width = CInt(w * 0.3)
Case "地址"
c.Visible = True
c.Width = CInt(w * 0.4)
End Select
Next c
这段代码同时设定了列宽。
方法二、你干脆直接就在rs查询里面指定列,如下
"select lie1,lie2,lie3 from table1"
第五、需要重新加载数据显示到DataGrid,需要如下步骤操作
停用enable属性 DataGrid1.enable = false
关闭 recordSet对象 rs.close
重新填充数据集合
rs.open sqls……
刷性数据 rs.updatabatch
DataGrid1.refresh