您的位置:首页 > 编程语言 > ASP

ASP.NET 把EXCEL复制的内容粘贴到Gridview(非导入,是粘贴)

2012-11-12 17:07 483 查看
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script type="text/javascript">
function insertTable(col, row) {
if (event.ctrlKey && event.keyCode == 86) {
insertTableOnpaste(col, row);
}
}

function insertTableOnpaste(col, row) {
var table4 = document.getElementById("GridView1");
var txtObj = window.clipboardData.getData("Text");
if (txtObj.indexOf("\r\n") != -1) {
event.keyCode = 0;

var sheetrows = txtObj.split("\r\n");
for (var i = 0; i < sheetrows.length - 1; i++) {
var sheetcols = sheetrows[i].split("\t");
for (var j = 0; j < sheetcols.length; j++) {
if (row + i <= table4.rows.length - 1 && col + j <= table4.rows[i].cells.length - 1) {
var value1 = table4.rows[row + i].cells[col + j];
var aInput = value1.getElementsByTagName("input");
aInput[0].value = sheetcols[j];
}
}
}
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField HeaderText="Test1">
<ItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" onpaste="insertTableOnpaste(this.parentNode.cellIndex,this.parentNode.parentNode.rowIndex)" onKeyDown="insertTable(this.parentNode.cellIndex,this.parentNode.parentNode.rowIndex)" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Test2">
<ItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" onpaste="insertTableOnpaste(this.parentNode.cellIndex,this.parentNode.parentNode.rowIndex)" onKeyDown="insertTable(this.parentNode.cellIndex,this.parentNode.parentNode.rowIndex)" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Test3">
<ItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" onpaste="insertTableOnpaste(this.parentNode.cellIndex,this.parentNode.parentNode.rowIndex)" onKeyDown="insertTable(this.parentNode.cellIndex,this.parentNode.parentNode.rowIndex)" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Test4">
<ItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" onpaste="insertTableOnpaste(this.parentNode.cellIndex,this.parentNode.parentNode.rowIndex)" onKeyDown="insertTable(this.parentNode.cellIndex,this.parentNode.parentNode.rowIndex)" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Test5">
<ItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" onpaste="insertTableOnpaste(this.parentNode.cellIndex,this.parentNode.parentNode.rowIndex)" onKeyDown="insertTable(this.parentNode.cellIndex,this.parentNode.parentNode.rowIndex)" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</form>
</body>
</html>

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
IList<int> list = new List<int>();
for (int i = 0; i < 20; i++)
{
list.Add(i);
}

GridView1.DataSource = list;
GridView1.DataBind();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: