动态添加excel的行的方法
以excel2010为例步骤如下:
1、数据表如下图,选择B列;
2、点击数据选项卡数据有效性命令;
3、允许修改为序列,来源下输入:优秀,良好,及格,点击确定;
小刚SEO为你解答。
在我的项目中遇到了两种动态增加表单项的场景,一种是对Form的添加,另外一种是对Table的添加。当初实现这两种时还有一点喜悦,现在回过头来看,发现这两种实际就是一种,以后就可以根据个人喜好选择了。
这里因为要添加的表单项存在着父子关系,要添加的子代很多,而父代属性又一致,用这种方式可以减少重复 *** 作。表单样式就不再赘述了,具体看图
这里 tab 就是我们每次添加子表单时要push进数组tabs的内容。
2、为添加要素按钮绑定一个 addTab() 方法,用于在每次添加子表单时,向数组中push一个元素
3、对表单项的编写与正常一样,只不过在数据绑定上不同,需绑定到tab中的元素
4、如果要删除多余tab,需要在 <div>中声明一个 removeTab() 的方法,来删除对应的tab,这点区别于 addTab() ,它是定义在 <div>之外的,每次新增的tab都会插到整个表单的末尾。
这里的table也是存在父子关系,只是展示形式的区别。因为后台的数据还有着展示的需要,所以才选用了表格这种形式来实现。
1、将table组件声明在一个 <template>标签下,用以根据后台数据进行动态加载。
2、对表格中需要编辑的内容,可以在 <template>标签下声明一个输入框,并使用插槽来实现数据的绑定。
3、与上面相同的,声明一个 addRow() 的方法,用于增加表格的行数。
4、删除不想要的行,需要对应增加一个 deleteRow() 方法
<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/htmlcharset=utf-8" />
<title></title>
<script src="js/Jquery1.7.js"></script>
<script src="js/MyAdd.js"></script>
<link href="css/MyPages.css" rel="stylesheet" />
</head>
<body>
<div >
<div id="divInsert">
<div id="divBtn">
<input id="btnDelete" type="button" value="删除行" />
<input id="btnData" type="button" value="插入行" />
<input id="btnInsert" type="button" value="添加行" />
</div>
</div>
<table id="tab" cellpadding="0" cellspacing="0">
<tr>
<td rowspan="2">姓名</td>
<td rowspan="2">年龄</td>
<td colspan="2">血压</td>
</tr>
<tr>
<td>高压</td>
<td>低压</td>
</tr>
</table>
</div>
<div id="mydiv"></div>
</body>
</html>
JS文档
/// <reference path="../WebService1.asmx" />
/// <reference path="../WebService1.asmx" />
$(function () {
//定义一个全局变量i,用来标识添加了几行
var row = 0
var strValue = ""
//将一行添加到table中去
$('#btnInsert').click(function () {
row++
//字符串拼接tr一行中的内容
var tr = "<tr>"
for (var i = 0i <3i++) {
tr += "<td><input id='" + row + "text'" + i + "+' type='text' value=" + row +""+ i + " /></td>"
}
tr += "<td><input class='txt' id='" + i + "text4'+ type='text' value=" + row + "" + 4 + " /><input id='Checkbox1' class='ck' name='ckb' type='checkbox' /></td></tr>"
$("#tab").append(tr)
})
//删除添加的行,先判断checkbox是否选中,然后删除
$('#btnDelete').click(function () {
$("input[name=ckb]:checked").each(function () { $(this).parent().parent().remove()})
})
//将i遍历,判断是否存有值,如果有将数据插入数据库
$('#btnData').click(function () {
$('table input').each(function () {
strValue += $(this).val() + ","
})
$.ajax({
type: 'post',
contentType: 'application/json',
url: "../WebService1.asmx/InsertInfo",
data: "{valuesStr:'" + strValue + "'}",
success: function (result) {
$('#mydiv').html(result.d)
}
})
})
})
CSS文档
table tr td{border:1px solid #eeetext-align:centerwidth:80px}
#divInsert{width:100%height:25px}
#btnInsert{width:50pxheight:25pxbackground-color:#eeeborder-style:noneposition:absoluteleft:185px}
#btnData{width:50pxheight:25pxbackground-color:#eeeborder-style:noneposition:absoluteleft:235px}
#btnDelete{width:50pxheight:25pxbackground-color:#eeeborder-style:noneposition:absoluteleft:285px}
input{width:70px}
.txt{width:35pxfloat:leftposition:relativeleft:5px}
.ck{width:10pxfloat:right}
PersonInfo类文件
namespace ASPOilfiled
{
public class PersonInfo
{
public string Name { getset}
public int Age { getset}
public int Hblood { getset}
public int Lblood { getset}
}
}
WebService1.asmx 文件
[System.Web.Script.Services.ScriptService]
public class WebService1 : System.Web.Services.WebService
{
public static string sqlstr = ConfigurationManager.ConnectionStrings["sqlstr"].ConnectionString
[WebMethod]
public string InsertInfo(string valuesStr)
{
string result = "插入失败!"
string asd = valuesStr.Replace("on,", "")
string[] str2 = System.Text.RegularExpressions.Regex.Split(asd, ",")
//for (int i = 0i <str2.Lengthi++)
//{
//result += str2[i] + "<br/>"
//}
for (int i = 0i <str2.Lengthi++)
{
PersonInfo info
if (i % 4 == 0)
{
info = new PersonInfo()
info.Name = str2[i]
info.Age = Convert.ToInt32(str2[i + 1])
info.Hblood = Convert.ToInt32(str2[i + 2])
info.Lblood = Convert.ToInt32(str2[i + 3])
result = InfoToSql(info).ToString()
}
}
return result
}
public int InfoToSql(PersonInfo info)
{
string instSql = "insert into PersonInfo values(@name,@age,@Hblood,@Lblood)"
SqlConnection con = new SqlConnection(sqlstr)
con.Open()
SqlCommand cmd = con.CreateCommand()
cmd.CommandText = instSql
cmd.Parameters.Add("@name", SqlDbType.VarChar, 32).Value = info.Name
cmd.Parameters.Add("@age", SqlDbType.Int).Value = info.Age
cmd.Parameters.Add("@Hblood", SqlDbType.Int).Value = info.Hblood
cmd.Parameters.Add("@Lblood", SqlDbType.Int).Value = info.Lblood
int i = cmd.ExecuteNonQuery()
cmd.Dispose()
con.Dispose()
return i
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)