利用Excel结合GridView进行数据导入/导出、编辑等功能,同时进行了扩展,好了下面简单列举实现的功能:)
原始数据表中数据:
Excel将要导入的数据:
导入后显示:
醒目/提示内容:
一键更新后显示(隐藏“一键更新”):
导入数据规则:
a. 如果编号不存在,则添加一条数据,同时状态显示黄色图标表示是“新增”;
b. 如果编号存在,则判断其他属性是否有更改,如果有更改则将字体加粗,同时鼠标放上时显示新值,状态显示为红色图标表示“有更新”;
c. 如果是有更改的数据,可以通过状态醒目标示,同时操作列加入一键“更新”功能,该功能会将所有的数据替换为最新的数值;
d. 新数据和旧数据都可在线编辑,更新后状态显示为绿色图标表示“已更新”(默认第一次打开时所有状态为“未更改”,显示图标同上)
数据库表结构:
关键代码+说明:
页面临时表/虚拟表结构
/// <summary>
/// Grid数据源
/// </summary>
private DataTable DataSource
{
get
{
if (ViewState["_dataSource"] == null )
{
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("BSRID", typeof(long )));
dt.Columns.Add(new DataColumn("编号" ));
dt.Columns.Add(new DataColumn("名称" ));
dt.Columns.Add(new DataColumn("new名称" ));
dt.Columns.Add(new DataColumn("备注" ));
dt.Columns.Add(new DataColumn("new备注" ));
dt.Columns.Add(new DataColumn("更改状态" ));
ViewState["_dataSource"] = dt;
}
return ViewState["_dataSource"] as DataTable;
}
set
{
ViewState[ "_dataSource"] = value;
}
}
上传Excel处理函数
用OleDB读取Excel数据
导出Excel和Word脚本
剩下的自己看实例代码:http://files.cnblogs.com/yizhuqing/ExcelGridViewSample.rar
对于Excel的导入/导出功能想必是目前企业业务系统中比较常见的功能模块,对于用户的易用性和功能完整性可能一般没有太多的关注和支持,本例目的在于提供一种新的对Excel导入/导出和GridView数据操作的功能实现和思路;本例技术含量不高,如果您有更好的建议请共享一二:)